326ba6f5c269be2b9cffb09b441d2ac8f6a3ea34
[WebKit-https.git] / Source / WTF / ChangeLog
1 2018-06-27  Jonathan Bedard  <jbedard@apple.com>
2
3         Enable WebKit iOS 12 build
4         https://bugs.webkit.org/show_bug.cgi?id=187024
5         <rdar://problem/39759057>
6
7         Reviewed by David Kilzer.
8
9         * wtf/spi/darwin/XPCSPI.h: Add endpoint and connection declarations.
10
11 2018-06-25  David Fenton  <david_fenton@apple.com>
12
13         Unreviewed, rolling out r233120.
14
15         caused regression in ios API tests
16
17         Reverted changeset:
18
19         "[Cocoa] reduce unnecessary use of .mm source files in WTF,
20         spruce up some implementation details"
21         https://bugs.webkit.org/show_bug.cgi?id=186924
22         https://trac.webkit.org/changeset/233120
23
24 2018-06-25  Alicia Boya García  <aboya@igalia.com>
25
26         Fix ASAN_ENABLED in GCC
27         https://bugs.webkit.org/show_bug.cgi?id=186957
28
29         Reviewed by Michael Catanzaro.
30
31         ASAN_ENABLED used to rely on Clang-specific features for detection.
32         This patch enables ASAN_ENABLED to work on GCC too.
33
34         It also fixes compilation errors and warnings that were triggered when
35         compiling code guarded by ASAN_ENABLED in gcc.
36
37         * wtf/Compiler.h:
38         * wtf/Vector.h:
39         (WTF::VectorBuffer::endOfBuffer):
40
41 2018-06-22  Darin Adler  <darin@apple.com>
42
43         [Cocoa] Convert the small bit of Objective-C++ code in WTF to ARC
44         https://bugs.webkit.org/show_bug.cgi?id=186961
45
46         Reviewed by Anders Carlsson.
47
48         * Configurations/Base.xcconfig: Turn on ARC.
49
50         * wtf/cocoa/MemoryPressureHandlerCocoa.mm:
51         (WTF::MemoryPressureHandler::uninstall): Remove calls to dispatch_release.
52         (WTF::MemoryPressureHandler::holdOff): Ditto.
53
54         * wtf/mac/MainThreadMac.mm:
55         (WTF::initializeMainThreadPlatform): Remove call to retain.
56         (WTF::initializeWebThreadPlatform): Ditto.
57
58 2018-06-22  Yusuke Suzuki  <utatane.tea@gmail.com>
59
60         [WTF] Use Ref<> for the result type of non-failing factory functions
61         https://bugs.webkit.org/show_bug.cgi?id=186920
62
63         Reviewed by Darin Adler.
64
65         Use Ref<> instead of RefPtr<> if the `create` function do not return nullptr.
66
67         * wtf/AutomaticThread.cpp:
68         (WTF::AutomaticThreadCondition::create):
69         (WTF::AutomaticThread::AutomaticThread):
70         * wtf/AutomaticThread.h:
71         * wtf/ParallelHelperPool.cpp:
72         (WTF::ParallelHelperPool::Thread::Thread):
73         * wtf/ParallelHelperPool.h:
74         * wtf/WorkerPool.cpp:
75         (WTF::WorkerPool::WorkerPool):
76         * wtf/WorkerPool.h:
77         * wtf/win/WorkQueueWin.cpp:
78         (WTF::TimerContext::create):
79         (WTF::WorkQueue::dispatchAfter):
80
81 2018-06-23  Yusuke Suzuki  <utatane.tea@gmail.com>
82
83         [WTF] Add user-defined literal for ASCIILiteral
84         https://bugs.webkit.org/show_bug.cgi?id=186839
85
86         Reviewed by Darin Adler.
87
88         This patch adds user-defined literal for ASCIILiteral. We can create ASCIILiteral in the form of `"Hello World"_s`.
89         And we remove public ASCIILiteral constructor. This change ensures that ASCIILiteral is created from literal.
90
91         * WTF.xcodeproj/project.pbxproj:
92         * wtf/CMakeLists.txt:
93         * wtf/Indenter.h:
94         (WTF::Indenter::Indenter):
95         * wtf/Logger.h:
96         (WTF::LogArgument::toString):
97         * wtf/MediaTime.cpp:
98         (WTF::toJSONStringInternal):
99         (WTF::MediaTimeRange::toJSONString const):
100         * wtf/linux/MemoryFootprintLinux.cpp:
101         (WTF::memoryFootprint):
102         * wtf/text/ASCIILiteral.cpp: Copied from Source/WebCore/css/CSSUnsetValue.cpp.
103         (WTF::ASCIILiteral::dump const):
104         * wtf/text/ASCIILiteral.h: Copied from Source/WTF/wtf/Indenter.h.
105         (WTF::ASCIILiteral::operator const char* const):
106         (WTF::ASCIILiteral::fromLiteralUnsafe):
107         (WTF::ASCIILiteral::null):
108         (WTF::ASCIILiteral::characters const):
109         (WTF::ASCIILiteral::ASCIILiteral):
110         (WTF::StringLiterals::operator _s):
111         * wtf/text/WTFString.cpp:
112         (asciiDebug):
113         * wtf/text/WTFString.h:
114         (WTF::operator==):
115         (WTF::operator!=):
116         (WTF::ASCIILiteral::ASCIILiteral): Deleted.
117         (WTF::ASCIILiteral::operator const char*): Deleted.
118         * wtf/unix/LanguageUnix.cpp:
119         (WTF::platformLanguage):
120
121 2018-06-22  Darin Adler  <darin@apple.com>
122
123         [Cocoa] reduce unnecessary use of .mm source files in WTF, spruce up some implementation details
124         https://bugs.webkit.org/show_bug.cgi?id=186924
125
126         Reviewed by Anders Carlsson.
127
128         * WTF.xcodeproj/project.pbxproj: Update for file and directory renames, file type changes,
129         and deletions.
130
131         * wtf/MemoryPressureHandler.cpp:
132         (WTF::MemoryPressureHandler::holdOff): Deleted empty placeholder; this one is not needed.
133
134         * wtf/PlatformMac.cmake: Update for file and directory renames, file type changes,
135         and deletions.
136
137         * wtf/cocoa/CPUTimeCocoa.cpp: Renamed from Source/WTF/wtf/cocoa/CPUTimeCocoa.mm.
138         Reworked math to make better use of the Seconds class.
139
140         * wtf/text/WTFString.h: Added a new inline version of the constructor that takes an NSString.
141         This is identical to the one that takes a CFStringRef, so no need to keep both.
142
143         * wtf/text/cocoa/StringImplCocoa.mm: Renamed from Source/WTF/wtf/text/mac/StringImplMac.mm.
144         Also removed an unneeded include.
145
146         * wtf/text/cocoa/StringViewCocoa.mm: Renamed from Source/WTF/wtf/text/mac/StringViewObjC.mm.
147
148         * wtf/text/cocoa/TextBreakIteratorInternalICUCocoa.cpp: Renamed from
149         Source/WTF/wtf/text/mac/TextBreakIteratorInternalICUMac.mm.
150
151         * wtf/text/mac/StringMac.mm: Removed.
152
153 2018-06-21  Carlos Garcia Campos  <cgarcia@igalia.com>
154
155         [GLIB] improve get_type() fast path in WEBKIT_DEFINE_TYPE
156         https://bugs.webkit.org/show_bug.cgi?id=186885
157
158         Reviewed by Anders Carlsson.
159
160         This is a backport of glib commit
161         https://gitlab.gnome.org/GNOME/glib/commit/e924f777369710221c3e0a9d7bf40392a27d1fa4
162
163         "The -fstack-protector-strong used in many distributions by default has a
164         rather drastic slowdown of the fast path in generated _get_type()
165         functions using G_DEFINE_* macros. The amount can vary by architecture,
166         GCC version, and compiler flags.
167
168         To work around this, and ensure a higher probability that our fast-path
169         will match what we had previously, we need to break out the slow-path
170         (registering the type) into a secondary function that is not a candidate
171         for inlining.
172
173         This ensures that the common case (type registered, return the GType id)
174         is the hot path and handled in the prologue of the generated assembly even
175         when -fstack-protector-strong is enabled."
176
177         * wtf/glib/WTFGType.h:
178
179 2018-06-20  Yusuke Suzuki  <utatane.tea@gmail.com>
180
181         [GTK][WPE][Nicosia] Add name for Nicosia Painting Threads
182         https://bugs.webkit.org/show_bug.cgi?id=186836
183
184         Reviewed by Carlos Garcia Campos.
185
186         AutomaticThread can take a name for the generated threads now.
187         This patch adds the above ability to WorkerPool.
188
189         * wtf/WorkerPool.cpp:
190         (WTF::WorkerPool::WorkerPool):
191         * wtf/WorkerPool.h:
192         (WTF::WorkerPool::create):
193         (WTF::WorkerPool::name const):
194
195 2018-06-18  Jiewen Tan  <jiewen_tan@apple.com>
196
197         Add a graceful exit for AuthenticationManager::initializeConnection
198         https://bugs.webkit.org/show_bug.cgi?id=186632
199         <rdar://problem/41041033>
200
201         Reviewed by Brent Fulgham.
202
203         * wtf/spi/darwin/XPCSPI.h:
204
205 2018-06-18  Carlos Alberto Lopez Perez  <clopez@igalia.com>
206
207         [WTF] Remove workarounds needed to support libstdc++-4
208         https://bugs.webkit.org/show_bug.cgi?id=186762
209
210         Reviewed by Michael Catanzaro.
211
212         Revert r226299, r226300 r226301 and r226302-
213
214         * wtf/StdLibExtras.h:
215
216 2018-06-12  Darin Adler  <darin@apple.com>
217
218         [Cocoa] Make some RetainPtr refinements to get more ready for ARC
219         https://bugs.webkit.org/show_bug.cgi?id=186526
220
221         Reviewed by Anders Carlsson.
222
223         * wtf/RetainPtr.h: Improved the definition of autorelease so it does
224         the right thing for both Objective-C types and non-Objective-C types.
225         Also added bridgingAutorelease for when we want to autorelease as
226         part of converting from a CF type to an Objective-C type. The two
227         advantages of bridgingAutorelease are that it does not require an
228         additional explicit __bridge cast and that it does not prevent the
229         ARC objc_autoreleaseReturnValue optimization the way that doing an
230         autorelease on the CF type would.
231
232         * wtf/text/mac/StringImplMac.mm:
233         (WTF::StringImpl::operator NSString *): Use bridgingAutorelease.
234
235 2018-06-15  Basuke Suzuki  <Basuke.Suzuki@sony.com>
236
237         [WinCairo] Move unrelated features of WorkQueueWin into IPC::Connection
238         https://bugs.webkit.org/show_bug.cgi?id=186582
239
240         Remove unrelated feature from WorkQueueWin.
241
242         Reviewed by Brent Fulgham.
243
244         * wtf/PlatformWin.cmake: Remove WorkItemContext.*
245         * wtf/WorkQueue.cpp:
246         * wtf/WorkQueue.h:
247         * wtf/win/Win32Handle.h:
248         * wtf/win/WorkItemContext.cpp: Removed.
249         * wtf/win/WorkItemContext.h: Removed.
250         * wtf/win/WorkQueueWin.cpp:
251         (WTF::WorkQueue::handleCallback): Deleted.
252         (WTF::WorkQueue::registerHandle): Deleted.
253         (WTF::WorkQueue::unregisterAndCloseHandle): Deleted.
254         (WTF::WorkQueue::unregisterWaitAndDestroyItemSoon): Deleted.
255         (WTF::WorkQueue::unregisterWaitAndDestroyItemCallback): Deleted.
256
257 2018-06-13  Keith Miller  <keith_miller@apple.com>
258
259         AutomaticThread should have a way to provide a thread name
260         https://bugs.webkit.org/show_bug.cgi?id=186604
261
262         Reviewed by Filip Pizlo.
263
264         AutomaticThread now has a virtual method to get a name, which can be
265         overridden to provide a custom name to the thread.
266
267         * wtf/AutomaticThread.cpp:
268         (WTF::AutomaticThread::start):
269         * wtf/AutomaticThread.h:
270         * wtf/WorkerPool.cpp:
271
272 2018-06-11  Saam Barati  <sbarati@apple.com>
273
274         The NaturalLoops algorithm only works when the list of blocks in a loop is de-duplicated
275         https://bugs.webkit.org/show_bug.cgi?id=184829
276
277         Reviewed by Michael Saboff.
278
279         This patch switches NaturalLoops to walking over a block's predecessors
280         instead of successors when building the initial list of loops and their
281         headers. The algorithm broke down when we had a footer block with multiple
282         control flow edges pointing to the same header. This made the loop data
283         structure contain multiple entries for the same basic block. The algorithm
284         breaks down when we end up in this state, since it means our way of detecting
285         what loop is more inner is broken, since that check uses a loop's size.
286
287         * wtf/NaturalLoops.h:
288         (WTF::NaturalLoop::addBlock):
289         (WTF::NaturalLoops::NaturalLoops):
290
291 2018-06-11  Keith Rollin  <krollin@apple.com>
292
293         Add logging around internalError(const URL&)
294         https://bugs.webkit.org/show_bug.cgi?id=186369
295         <rdar://problem/40872046>
296
297         Reviewed by Brent Fulgham.
298
299         There are times when we receive bug reports where the user says that
300         they are simply shown a page saying an internal error occurred. To
301         help understand the circumstances of that error, add some logging to
302         internalError() in WebErrors.cpp. This logging logs at the Error level
303         that internalError() was called and then logs a backtrace.
304
305         * wtf/Assertions.cpp:
306         * wtf/Assertions.h:
307
308 2018-06-11  Michael Saboff  <msaboff@apple.com>
309
310         JavaScriptCore: Disable 32-bit JIT on Windows
311         https://bugs.webkit.org/show_bug.cgi?id=185989
312
313         Reviewed by Mark Lam.
314
315         Fixed the CLOOP so it can work when COMPUTED_GOTOs are not supported.
316
317         * wtf/Platform.h:
318
319 2018-06-09  Dan Bernstein  <mitz@apple.com>
320
321         [Xcode] Clean up and modernize some build setting definitions
322         https://bugs.webkit.org/show_bug.cgi?id=186463
323
324         Reviewed by Sam Weinig.
325
326         * Configurations/Base.xcconfig: Removed definition for macOS 10.11.
327         * Configurations/DebugRelease.xcconfig: Ditto.
328
329 2018-06-08  Darin Adler  <darin@apple.com>
330
331         [Cocoa] Remove all uses of NSAutoreleasePool as part of preparation for ARC
332         https://bugs.webkit.org/show_bug.cgi?id=186436
333
334         Reviewed by Anders Carlsson.
335
336         * WTF.xcodeproj/project.pbxproj: Added FoundationSPI.h.
337
338         * wtf/AutodrainedPool.h: Streamlined header a bit, added some comments.
339
340         * wtf/PlatformMac.cmake: Added FoundationSPI.h.
341
342         * wtf/cocoa/AutodrainedPool.cpp: Moved here from AutodrainedPoolMac.mm.
343         (WTF::AutodrainedPool::AutodrainedPool): Use objc_autoreleasePoolPush/Pop instead of
344         the NSAutoreleasePool class.
345         (WTF::AutodrainedPool::~AutodrainedPool): Ditto.
346
347          * wtf/spi/cocoa/FoundationSPI.h: Moved from Source/WebCore/PAL/pal/spi/cocoa/FoundationSPI.h.
348          Changed both include and declarations so it's the objc_autoreleasePoolPush/Pop instead
349          of the higher level NS functions that call them.
350
351 2018-06-08  Brian Burg  <bburg@apple.com>
352
353         [Cocoa] Web Automation: include browser name and version in listing for automation targets
354         https://bugs.webkit.org/show_bug.cgi?id=186204
355         <rdar://problem/36950423>
356
357         Reviewed by Darin Adler.
358
359         * wtf/spi/cf/CFBundleSPI.h: Add needed infoDictionary key values.
360
361 2018-06-07  Yusuke Suzuki  <utatane.tea@gmail.com>
362
363         [WTF] Add WorkerPool
364         https://bugs.webkit.org/show_bug.cgi?id=174569
365
366         Reviewed by Carlos Garcia Campos.
367
368         This patch adds WorkerPool, which is a thread pool that consists of AutomaticThread.
369         Since it is based on AutomaticThread, this WorkerPool can take `timeout`: once `timeout`
370         passes without any tasks, threads in WorkerPool will be destroyed.
371
372         We add shouldSleep handler to AutomaticThread to make destruction of threads in WorkerPool moderate.
373         Without this, all threads are destroyed at once after `timeout` passes.
374
375         * WTF.xcodeproj/project.pbxproj:
376         * wtf/AutomaticThread.cpp:
377         (WTF::AutomaticThread::AutomaticThread):
378         (WTF::AutomaticThread::start):
379         * wtf/AutomaticThread.h:
380         * wtf/CMakeLists.txt:
381         * wtf/WorkerPool.cpp: Added.
382         (WTF::WorkerPool::WorkerPool):
383         (WTF::WorkerPool::~WorkerPool):
384         (WTF::WorkerPool::shouldSleep):
385         (WTF::WorkerPool::postTask):
386         * wtf/WorkerPool.h: Added.
387         (WTF::WorkerPool::create):
388
389 2018-06-07  Chris Dumez  <cdumez@apple.com>
390
391         Add base class to get WeakPtrFactory member and avoid some boilerplate code
392         https://bugs.webkit.org/show_bug.cgi?id=186407
393
394         Reviewed by Brent Fulgham.
395
396         Add CanMakeWeakPtr base class to get WeakPtrFactory member and its getter, in
397         order to avoid some boilerplate code in every class needing a WeakPtrFactory.
398         This also gets rid of old-style createWeakPtr() methods in favor of the newer
399         makeWeakPtr().
400
401         * wtf/WeakPtr.h:
402         (WTF::CanMakeWeakPtr::weakPtrFactory const):
403         (WTF::CanMakeWeakPtr::weakPtrFactory):
404
405 2018-06-07  Tadeu Zagallo  <tzagallo@apple.com>
406
407         Don't try to allocate JIT memory if we don't have the JIT entitlement
408         https://bugs.webkit.org/show_bug.cgi?id=182605
409         <rdar://problem/38271229>
410
411         Reviewed by Mark Lam.
412
413         Move processHasEntitlement from Source/WebKit/Shared/mac/SandboxUtilities.h
414         into WTF so JavaScriptCore can also use it.
415
416         * WTF.xcodeproj/project.pbxproj:
417         * wtf/PlatformMac.cmake:
418         * wtf/cocoa/Entitlements.cpp:
419         (WTF::processHasEntitlement):
420         * wtf/cocoa/Entitlements.h:
421         * wtf/spi/cocoa/SecuritySPI.h:
422
423 2018-06-05  Darin Adler  <darin@apple.com>
424
425         [Cocoa] Retire DispatchPtr, and add more move semantics and simpler #ifs to other smart pointers
426         https://bugs.webkit.org/show_bug.cgi?id=186324
427
428         Reviewed by Anders Carlsson.
429
430         * WTF.xcodeproj/project.pbxproj: Removed DispatchPtr.h.
431         * wtf/BlockPtr.h: Remove unneeded checks for __OBJC__. Added some use
432         of WTFMove.
433         * wtf/CMakeLists.txt: Removed DispatchPtr.h.
434         * wtf/DispatchPtr.h: Removed. We no longer need to support Mavericks.
435         * wtf/OSObjectPtr.h: Remove unneeded checks for __OBJC__. Added some use
436         of WTFMove.
437
438 2018-06-05  Darin Adler  <darin@apple.com>
439
440         [Cocoa] More preparation for ARC, focusing on WebKit and smart pointers
441         https://bugs.webkit.org/show_bug.cgi?id=186314
442
443         Reviewed by Anders Carlsson.
444
445         * wtf/BlockPtr.h: Put Block_copy/release calls into #if since they are
446         not needed under ARC.
447
448         * wtf/OSObjectPtr.h: Added constructor and assignment operator so we can
449         work with OS objects without adopting them.
450
451 2018-06-05  Darin Adler  <darin@apple.com>
452
453         [Cocoa] Improve some soft linking compatibility with ARC
454         https://bugs.webkit.org/show_bug.cgi?id=186309
455
456         Reviewed by Anders Carlsson.
457
458         * wtf/cocoa/SoftLinking.h: Updated the SOFT_LINK_CONSTANT family of
459         macros to use a const type. This increases the chance that they will
460         work without triggering ARC compilation errors since it's easier to
461         get the type right for read-only access than for read/write.
462
463 2018-06-05  Youenn Fablet  <youenn@apple.com>
464
465         ServiceWorker registration should store any script fetched through importScripts
466         https://bugs.webkit.org/show_bug.cgi?id=182444
467         <rdar://problem/37164835>
468
469         Reviewed by Chris Dumez.
470
471         * wtf/persistence/PersistentCoders.h:
472
473 2018-06-04  Darin Adler  <darin@apple.com>
474
475         [Cocoa] Improve smart pointer support for ARC (OSObjectPtr/DispatchPtr)
476         https://bugs.webkit.org/show_bug.cgi?id=186300
477
478         Reviewed by Daniel Bates.
479
480         * wtf/DispatchPtr.h: Don't call dispatch_retain or dispatch_release
481         since ARC will automatically do it for us in the same places we are
482         doing it here.
483
484         * wtf/OSObjectPtr.h:
485         (WTF::retainOSObject): Don't call os_retain since ARC will do it.
486         (WTF::releaseOSObject): Don't call os_release since ARC will do it.
487
488 2018-05-31  Commit Queue  <commit-queue@webkit.org>
489
490         Unreviewed, rolling out r232212.
491         https://bugs.webkit.org/show_bug.cgi?id=186153
492
493         broke build (Requested by alexchristensen on #webkit).
494
495         Reverted changeset:
496
497         "JavaScriptCore: Disable 32-bit JIT on Windows"
498         https://bugs.webkit.org/show_bug.cgi?id=185989
499         https://trac.webkit.org/changeset/232212
500
501 2018-05-30  Keith Miller  <keith_miller@apple.com>
502
503         LLInt get_by_id prototype caching doesn't properly handle changes
504         https://bugs.webkit.org/show_bug.cgi?id=186112
505
506         Reviewed by Filip Pizlo.
507
508         Mark some methods const.
509
510         * wtf/Bag.h:
511         (WTF::Bag::begin const):
512         (WTF::Bag::end const):
513         (WTF::Bag::unwrappedHead const):
514         (WTF::Bag::end): Deleted.
515         (WTF::Bag::unwrappedHead): Deleted.
516
517 2018-05-30  Alex Christensen  <achristensen@webkit.org>
518
519         Reduce String allocations
520         https://bugs.webkit.org/show_bug.cgi?id=186059
521
522         Reviewed by Darin Adler.
523
524         * wtf/text/StringView.cpp:
525         (WTF::convertASCIICase):
526         (WTF::StringView::convertToASCIILowercase const):
527         (WTF::StringView::convertToASCIIUppercase const):
528         * wtf/text/StringView.h:
529         * wtf/text/cf/StringViewCF.cpp:
530         (WTF::StringView::createCFString const):
531
532 2018-05-30  Dominik Infuehr  <dinfuehr@igalia.com>
533
534         [MIPS] Fix build on MIPS32r1
535         https://bugs.webkit.org/show_bug.cgi?id=185944
536
537         Reviewed by Yusuke Suzuki.
538
539         Added WTF_MIPS_ISA_REV_AT_LEAST to test for certain release or later.
540
541         * wtf/Platform.h:
542
543 2018-05-29  Tim Horton  <timothy_horton@apple.com>
544
545         Fix the build
546         https://bugs.webkit.org/show_bug.cgi?id=186078
547
548         Unreviewed build fix.
549
550         * wtf/Platform.h:
551
552 2018-05-29  Saam Barati  <sbarati@apple.com>
553
554         JSC should put bmalloc's scavenger into mini mode
555         https://bugs.webkit.org/show_bug.cgi?id=185988
556
557         Reviewed by Michael Saboff.
558
559         * wtf/FastMalloc.cpp:
560         (WTF::fastEnableMiniMode):
561         * wtf/FastMalloc.h:
562
563 2018-05-29  Yusuke Suzuki  <utatane.tea@gmail.com>
564
565         Unreviewed, follow-up after r232244
566         https://bugs.webkit.org/show_bug.cgi?id=186023
567
568         _BitScanReverse64 is available only in X86_64 and ARM.
569
570         * wtf/MathExtras.h:
571         (WTF::clz64):
572
573 2018-05-27  Yusuke Suzuki  <utatane.tea@gmail.com>
574
575         [WTF] Add clz32 / clz64 for MSVC
576         https://bugs.webkit.org/show_bug.cgi?id=186023
577
578         Reviewed by Daniel Bates.
579
580         This patch adds efficient implementations of clz32 and clz64 for MSVC.
581         While MSVC has _lzcnt intrinsic, it is only valid if the CPU has lzcnt instruction.
582         Instead of checking cpuid here, we just use _BitScanReverse and _BitScanReverse64.
583
584         * wtf/MathExtras.h:
585         (WTF::clz32):
586         (WTF::clz64):
587
588 2018-05-26  Filip Pizlo  <fpizlo@apple.com>
589
590         testair sometimes crashes due to races in initialization of ARC4RandomNumberGenerator
591         https://bugs.webkit.org/show_bug.cgi?id=186014
592
593         Reviewed by Yusuke Suzuki.
594         
595         testair launches a bunch of threads and the threads do B3 things that use random numbers.
596         Sometimes two threads will initialize the random number generator at the same time, because
597         that's what happens when you use static NeverDestroyed<>.
598         
599         This changes that code to use std::call_once to initialize the shared
600         ARC4RandomNumberGenerator.
601         
602         Also, this adds a diagnostic message to the lock's assertion. This assertion was the symptom
603         of the race, and knowing the state of the lock when the assertion fired gave a darn good clue
604         about what was going on: the lock's value was 0 at time of unlock, implying that another
605         thread reinitialized the lock to zero by rerunning the constructor.
606
607         * wtf/CryptographicallyRandomNumber.cpp:
608         * wtf/LockAlgorithmInlines.h:
609         (WTF::Hooks>::unlockSlow):
610
611 2018-05-25  Michael Saboff  <msaboff@apple.com>
612
613         JavaScriptCore: Disable 32-bit JIT on Windows
614         https://bugs.webkit.org/show_bug.cgi?id=185989
615
616         Reviewed by Saam Barati.
617
618         * wtf/Platform.h:
619
620 2018-05-24  Carlos Alberto Lopez Perez  <clopez@igalia.com>
621
622         [GTK][WPE] Memory pressure monitor doesn't reliable notify all the subprocesses
623         https://bugs.webkit.org/show_bug.cgi?id=184261
624
625         Reviewed by Carlos Garcia Campos.
626
627         Receive the memory pressure notifications from the UIProcess memory monitor via WebKit IPC.
628
629         * wtf/MemoryPressureHandler.h:
630         * wtf/linux/MemoryPressureHandlerLinux.cpp:
631         (WTF::MemoryPressureHandler::triggerMemoryPressureEvent):
632         (WTF::MemoryPressureHandler::install):
633         (WTF::MemoryPressureHandler::uninstall):
634
635 2018-05-24  Jiewen Tan  <jiewen_tan@apple.com>
636
637         Adopt SecKeyProxy SPI in certificate based challenge response code
638         https://bugs.webkit.org/show_bug.cgi?id=185848
639         <rdar://problem/34586181>
640
641         Reviewed by Alex Christensen.
642
643         Add a condition macro to determine if SecKeyProxy SPI exists.
644
645         * wtf/Platform.h:
646
647 2018-05-23  Eric Carlson  <eric.carlson@apple.com>
648
649         Avoid loading AVFoundation to check supported MIME types if possible
650         https://bugs.webkit.org/show_bug.cgi?id=185839
651         <rdar://problem/40182010>
652
653         Reviewed by Jer Noble.
654
655         * wtf/cocoa/SoftLinking.h: Add SOFT_LINK_FRAMEWORK_OPTIONAL_PREFLIGHT.
656
657 2018-05-23  Filip Pizlo  <fpizlo@apple.com>
658
659         Speed up JetStream/base64
660         https://bugs.webkit.org/show_bug.cgi?id=185914
661
662         Reviewed by Michael Saboff.
663         
664         Make Vector<>::append ALWAYS_INLINE.
665
666         * wtf/Vector.h:
667         (WTF::Vector::append):
668         (WTF::minCapacity>::expandCapacity):
669         (WTF::minCapacity>::append):
670         (WTF::minCapacity>::tryAppend):
671
672 2018-05-23  Michael Saboff  <msaboff@apple.com>
673
674         Date.parse() doesn't properly handle input outside of ES Spec limits
675         https://bugs.webkit.org/show_bug.cgi?id=185868
676
677         Reviewed by Mark Lam.
678
679         Clamped date creation to +/-100,000,000 days relative to midnight at the beginning
680         of 01 January, 1970 UTC as per ecma262/#sec-time-values-and-time-range and
681         ecma262/#sec-date-time-string-format.
682
683         * wtf/DateMath.cpp:
684         (WTF::ymdhmsToSeconds):
685         (WTF::parseES5DateFromNullTerminatedCharacters):
686
687 2018-05-22  Michael Catanzaro  <mcatanzaro@igalia.com>
688
689         Prohibit shrinking the FastBitVector
690         https://bugs.webkit.org/show_bug.cgi?id=181020
691
692         Reviewed by Oliver Hunt.
693
694         Prohibit shrinking the FastBitVector. It's not prepared for this and the current usage does
695         not require it.
696
697         * wtf/FastBitVector.cpp:
698         (WTF::FastBitVectorWordOwner::resizeSlow):
699
700 2018-05-22  Mark Lam  <mark.lam@apple.com>
701
702         StringImpl utf8 conversion should not fail silently.
703         https://bugs.webkit.org/show_bug.cgi?id=185888
704         <rdar://problem/40464506>
705
706         Reviewed by Filip Pizlo.
707
708         * WTF.xcodeproj/project.pbxproj:
709         * wtf/CMakeLists.txt:
710         * wtf/PrintStream.cpp:
711         (WTF::printExpectedCStringHelper):
712         (WTF::printInternal):
713         * wtf/text/StringImpl.cpp:
714         (WTF::StringImpl::utf8Impl):
715         (WTF::StringImpl::utf8ForCharacters):
716         (WTF::StringImpl::tryUtf8ForRange const):
717         (WTF::StringImpl::tryUtf8 const):
718         (WTF::StringImpl::utf8 const):
719         (WTF::StringImpl::utf8ForRange const): Deleted.
720         * wtf/text/StringImpl.h:
721         * wtf/text/StringView.cpp:
722         (WTF::StringView::tryUtf8 const):
723         (WTF::StringView::utf8 const):
724         * wtf/text/StringView.h:
725         * wtf/text/UTF8ConversionError.h: Added.
726         * wtf/text/WTFString.cpp:
727         (WTF::String::tryUtf8 const):
728         (WTF::String::utf8 const):
729         * wtf/text/WTFString.h:
730
731 2018-05-22  Chris Dumez  <cdumez@apple.com>
732
733         Regression(AsyncPolicyDelegates): Box.app login Window is blank
734         https://bugs.webkit.org/show_bug.cgi?id=185832
735         <rdar://problem/40307871>
736
737         Reviewed by Geoffrey Garen.
738
739         Moved WeakObjCPtr.h from WebKit2 to WTF with RetainPtr.h, so that it can be used
740         in WebKitLegacy code.
741
742         * WTF.xcodeproj/project.pbxproj:
743         * wtf/WeakObjCPtr.h: Renamed from Source/WebKit/Shared/mac/WeakObjCPtr.h.
744
745 2018-05-22  Filip Pizlo  <fpizlo@apple.com>
746
747         Get rid of TLCs
748         https://bugs.webkit.org/show_bug.cgi?id=185846
749
750         Rubber stamped by Geoffrey Garen.
751
752         * wtf/Platform.h:
753
754 2018-05-22  Ryan Haddad  <ryanhaddad@apple.com>
755
756         Unreviewed, rolling out r232052.
757
758         Breaks internal builds.
759
760         Reverted changeset:
761
762         "Use more C++17"
763         https://bugs.webkit.org/show_bug.cgi?id=185176
764         https://trac.webkit.org/changeset/232052
765
766 2018-05-21  Yusuke Suzuki  <utatane.tea@gmail.com>
767
768         Use more C++17
769         https://bugs.webkit.org/show_bug.cgi?id=185176
770
771         Reviewed by JF Bastien.
772
773         * Configurations/Base.xcconfig:
774         * wtf/StdLibExtras.h:
775
776 2018-05-18  Filip Pizlo  <fpizlo@apple.com>
777
778         DFG should inline InstanceOf ICs
779         https://bugs.webkit.org/show_bug.cgi?id=185695
780
781         Reviewed by Yusuke Suzuki.
782         
783         I found myself needing a way to represent bottom/false/true/top, so I created it.
784
785         * WTF.xcodeproj/project.pbxproj:
786         * wtf/BooleanLattice.h: Added.
787         (WTF::lubBooleanLattice):
788         (WTF::printInternal):
789         * wtf/CMakeLists.txt:
790
791 2018-05-17  Jiewen Tan  <jiewen_tan@apple.com>
792
793         Convert CertificateInfo into Credential in UI Process instead of Networking Process
794         https://bugs.webkit.org/show_bug.cgi?id=185662
795         <rdar://problem/40275561>
796
797         Reviewed by Alex Christensen.
798
799         Remove marco HAVE_SEC_IDENTITY since it is no longer useful.
800
801         * wtf/Platform.h:
802
803 2018-05-17  Zalan Bujtas  <zalan@apple.com>
804
805         Add ASSERT_NOT_IMPLEMENTED_YET() macro
806         https://bugs.webkit.org/show_bug.cgi?id=185713
807
808         Reviewed by Antti Koivisto.
809
810         To mark unimplemented code paths.
811
812         * wtf/Assertions.cpp:
813         * wtf/Assertions.h:
814
815 2018-05-16  Andy VanWagoner  <andy@vanwagoner.family>
816
817         Add support for Intl NumberFormat formatToParts
818         https://bugs.webkit.org/show_bug.cgi?id=185375
819
820         Reviewed by Yusuke Suzuki.
821
822         Add flag for NumberFormat formatToParts.
823
824         * wtf/FeatureDefines.h:
825
826 2018-05-16  Yusuke Suzuki  <utatane.tea@gmail.com>
827
828         Unreviewed, follow-up after r231762
829         https://bugs.webkit.org/show_bug.cgi?id=185589
830
831         Addresses darin's suggestions to improve timeClip.
832
833         * wtf/DateMath.cpp:
834         (WTF::timeClip):
835
836 2018-05-14  Yusuke Suzuki  <utatane.tea@gmail.com>
837
838         [Win] Use C++17 in MSVC
839         https://bugs.webkit.org/show_bug.cgi?id=185232
840
841         Reviewed by Alex Christensen.
842
843         Disable some WebKit defined C++17 features for MSVC.
844
845         * wtf/StdLibExtras.h:
846
847 2018-05-14  Yusuke Suzuki  <utatane.tea@gmail.com>
848
849         [JSC] timeClip(-0) should produce +0
850         https://bugs.webkit.org/show_bug.cgi?id=185589
851
852         Reviewed by Saam Barati.
853
854         According to the spec[1], timeClip(-0) should produce +0.
855         We achieve this by adding 0.0 to the result of trunc(t).
856
857         [1]: https://tc39.github.io/ecma262/#sec-timeclip
858
859         * wtf/DateMath.cpp:
860         (WTF::timeClip):
861
862 2018-05-13  Geoffrey Garen  <ggaren@apple.com>
863
864         Simplified Mach exception handling
865         https://bugs.webkit.org/show_bug.cgi?id=185595
866
867         Reviewed by Keith Miller.
868
869         * wtf/threads/Signals.cpp:
870         (WTF::startMachExceptionHandlerThread): Use mach_msg_server_once instead
871         of duplicating its functionality. Separate error handling logic from
872         program logic to help program logic stand out. Use
873         DISPATCH_TARGET_QUEUE_* instead of explicitly fetching a queue.
874
875         Also, we don't need the high priority queue. The kernel donates a
876         priority voucher from the exception thread to the receiver thread, and
877         mach_msg_server_once takes care to forward that voucher.
878
879 2018-05-14  Zan Dobersek  <zdobersek@igalia.com>
880
881         [GTK] REGRESSION(r231170) Build broken with Clang 5.0
882         https://bugs.webkit.org/show_bug.cgi?id=185198
883
884         Reviewed by Michael Catanzaro.
885
886         * wtf/Compiler.h:
887         * wtf/Forward.h: Delete the std::optional forward declaration that is
888         potentially incompatible with definition provided by the standard library.
889         * wtf/Hasher.h:
890         * wtf/StdLibExtras.h: In addition to the remaining C++14 configurations,
891         also use custom std::in_place_t implementation when compiling with
892         libstdc++ 6.x, which doesn't provide its own.
893
894 2018-05-13  Filip Pizlo  <fpizlo@apple.com>
895
896         Disable pointer poisoning
897         https://bugs.webkit.org/show_bug.cgi?id=185586
898
899         Reviewed by Yusuke Suzuki.
900         
901         This seems like a 0.3% speed-up on microbenchmarks. It seems like it may be a small speed-up on
902         other tests, too.
903
904         * wtf/Platform.h:
905
906 2018-05-11  Chris Dumez  <cdumez@apple.com>
907
908         REGRESSION (async policy delegate): Revoking an object URL immediately after triggering download breaks file download
909         https://bugs.webkit.org/show_bug.cgi?id=185531
910         <rdar://problem/39909589>
911
912         Reviewed by Geoffrey Garen.
913
914         Add a default constructor for CompletionHandlerCallingScope, for convenience.
915
916         * wtf/CompletionHandler.h:
917
918 2018-05-11  Saam Barati  <sbarati@apple.com>
919
920         Don't allocate value profiles when the JIT is disabled
921         https://bugs.webkit.org/show_bug.cgi?id=185525
922
923         Reviewed by Michael Saboff.
924
925         * wtf/RefCountedArray.h:
926         (WTF::RefCountedArray::RefCountedArray):
927
928 2018-05-10  Tim Horton  <timothy_horton@apple.com>
929
930         Fix the build after r231393
931         https://bugs.webkit.org/show_bug.cgi?id=185519
932         <rdar://problem/40131741>
933
934         Reviewed by Simon Fraser.
935
936         * wtf/Platform.h:
937
938 2018-05-09  Michael Catanzaro  <mcatanzaro@igalia.com>
939
940         [WPE] Build cleanly with GCC 8 and ICU 60
941         https://bugs.webkit.org/show_bug.cgi?id=185462
942
943         Reviewed by Carlos Alberto Lopez Perez.
944
945         * wtf/HashTable.h:
946         (WTF::HashTableBucketInitializer<true>::initialize): Since -Wclass-memaccess warning. This
947         is probably safe enough, since it's for an empty bucket.
948         * wtf/StdLibExtras.h:
949         (WTF::bitwise_cast): Silence -Wclass-memaccess as we use type traits to ensure safety here.
950         * wtf/Vector.h: Ditto, all uses are safe.
951         * wtf/glib/WTFGType.h: Silence -Wcast-function-type.
952
953 2018-05-09  Yusuke Suzuki  <utatane.tea@gmail.com>
954
955         [ARMv7] Drop ARMv7 disassembler in favor of capstone
956         https://bugs.webkit.org/show_bug.cgi?id=185423
957
958         Reviewed by Michael Catanzaro.
959
960         Remove USE_ARMV7_DISASSEMBLER. Just use Capstone.
961
962         * wtf/Platform.h:
963
964 2018-05-06  Yusuke Suzuki  <utatane.tea@gmail.com>
965
966         [JSC][GTK][JSCONLY] Use capstone disassembler
967         https://bugs.webkit.org/show_bug.cgi?id=185283
968
969         Reviewed by Michael Catanzaro.
970
971         Add USE_CAPSTONE used for MIPS and ARM.
972
973         * wtf/Platform.h:
974
975 2018-05-09  Antti Koivisto  <antti@apple.com>
976
977         Add OptionSet::operator& and operator bool
978         https://bugs.webkit.org/show_bug.cgi?id=185306
979
980         Reviewed by Anders Carlsson.
981
982         This is primarily to allow writing
983
984             if (options & Option:A)
985
986         instead of
987
988             if (options.contains(Option:A))
989
990         This is consistent with other OptionSet operators.
991
992         * wtf/OptionSet.h:
993         (WTF::OptionSet::operator bool):
994         (WTF::OptionSet::operator&):
995
996         Also remove T versions of operator| and operator-, they are not needed due to
997         implicit conversion from T to OptionSet<T>.
998
999 2018-05-06  Filip Pizlo  <fpizlo@apple.com>
1000
1001         InPlaceAbstractState::beginBasicBlock shouldn't have to clear any abstract values
1002         https://bugs.webkit.org/show_bug.cgi?id=185365
1003
1004         Reviewed by Saam Barati.
1005         
1006         Fix some inlining goof-ups.
1007         
1008         Rolling back in after fixing cloop build.
1009
1010         * wtf/TinyPtrSet.h:
1011         (WTF::TinyPtrSet::add):
1012         (WTF::TinyPtrSet::merge):
1013         (WTF::TinyPtrSet::addOutOfLine):
1014         (WTF::TinyPtrSet::mergeOtherOutOfLine):
1015
1016 2018-05-08  Dean Jackson  <dino@apple.com>
1017
1018         Use thumbnails in System Previews
1019         https://bugs.webkit.org/show_bug.cgi?id=185397
1020         <rdar://problem/40039376>
1021
1022         Reviewed by Jon Lee.
1023
1024         SYSTEM_PREVIEW is only available on some platforms.
1025
1026         * wtf/Platform.h:
1027
1028 2018-05-08  Ryan Haddad  <ryanhaddad@apple.com>
1029
1030         Unreviewed, rolling out r231468.
1031
1032         Broke the CLoop build
1033
1034         Reverted changeset:
1035
1036         "InPlaceAbstractState::beginBasicBlock shouldn't have to clear
1037         any abstract values"
1038         https://bugs.webkit.org/show_bug.cgi?id=185365
1039         https://trac.webkit.org/changeset/231468
1040
1041 2018-05-07  Yusuke Suzuki  <utatane.tea@gmail.com>
1042
1043         [JSCONLY] Enable ARMv7 DFG
1044         https://bugs.webkit.org/show_bug.cgi?id=185415
1045
1046         Reviewed by Mark Lam.
1047
1048         Enable ARMv7 DFG JIT by default on Linux and FreeBSD.
1049
1050         * wtf/Platform.h:
1051
1052 2018-05-06  Filip Pizlo  <fpizlo@apple.com>
1053
1054         InPlaceAbstractState::beginBasicBlock shouldn't have to clear any abstract values
1055         https://bugs.webkit.org/show_bug.cgi?id=185365
1056
1057         Reviewed by Saam Barati.
1058         
1059         Fix some inlining goof-ups.
1060
1061         * wtf/TinyPtrSet.h:
1062         (WTF::TinyPtrSet::add):
1063         (WTF::TinyPtrSet::merge):
1064         (WTF::TinyPtrSet::addOutOfLine):
1065         (WTF::TinyPtrSet::mergeOtherOutOfLine):
1066
1067 2018-05-06  Yusuke Suzuki  <utatane.tea@gmail.com>
1068
1069         [WTF] Embed default atomic string table in Thread
1070         https://bugs.webkit.org/show_bug.cgi?id=185349
1071
1072         Reviewed by Darin Adler.
1073
1074         Do not need to allocate AtomicStringTable separate from Thread
1075         since the table's lifetime is completely the same as Thread.
1076
1077         This patch just embeds it as a data member of Thread.
1078
1079         * wtf/Threading.cpp:
1080         (WTF::Thread::initializeInThread):
1081         (WTF::Thread::didExit):
1082         * wtf/Threading.h:
1083         * wtf/text/AtomicStringTable.cpp:
1084         (WTF::AtomicStringTable::create): Deleted.
1085         (WTF::AtomicStringTable::destroy): Deleted.
1086         * wtf/text/AtomicStringTable.h:
1087
1088 2018-05-06  Yusuke Suzuki  <utatane.tea@gmail.com>
1089
1090         [WTF] Use static initializers for WTF::Mutex and WTF::ThreadCondition
1091         https://bugs.webkit.org/show_bug.cgi?id=185361
1092
1093         Reviewed by Sam Weinig.
1094
1095         Use static initializers for WTF::Mutex and WTF::ThreadCondition to make
1096         constructors of them simple and constexpr.
1097
1098         * wtf/ThreadingPrimitives.h:
1099         * wtf/ThreadingPthreads.cpp:
1100         (WTF::Mutex::Mutex): Deleted.
1101         (WTF::ThreadCondition::ThreadCondition): Deleted.
1102         * wtf/ThreadingWin.cpp:
1103         (WTF::Mutex::Mutex): Deleted.
1104         (WTF::ThreadCondition::ThreadCondition): Deleted.
1105
1106 2018-05-04  Tim Horton  <timothy_horton@apple.com>
1107
1108         Shift to a lower-level framework for simplifying URLs
1109         https://bugs.webkit.org/show_bug.cgi?id=185334
1110
1111         Reviewed by Dan Bernstein.
1112
1113         * wtf/Platform.h:
1114
1115 2018-05-04  Eric Carlson  <eric.carlson@apple.com>
1116
1117         Log media time range as JSON
1118         https://bugs.webkit.org/show_bug.cgi?id=185321
1119         <rdar://problem/39986746>
1120
1121         Reviewed by Youenn Fablet.
1122
1123         * wtf/MediaTime.cpp:
1124         (WTF::toJSONStringInternal): Extract guts of MediaTime::toJSONString to this static function
1125         so it can be used by MediaTimeRange::toJSONString as well.
1126         (WTF::MediaTime::toJSONString const):
1127         (WTF::MediaTimeRange::toJSONString const):
1128         * wtf/MediaTime.h:
1129
1130 2018-05-04  Antti Koivisto  <antti@apple.com>
1131
1132         OptionsSet initializer list constructor should be constexpr
1133         https://bugs.webkit.org/show_bug.cgi?id=185298
1134
1135         Reviewed by Anders Carlsson.
1136
1137         * wtf/OptionSet.h:
1138         (WTF::OptionSet::OptionSet):
1139
1140 2018-05-03  Yusuke Suzuki  <utatane.tea@gmail.com>
1141
1142         Use default std::optional if it is provided
1143         https://bugs.webkit.org/show_bug.cgi?id=185159
1144
1145         Reviewed by Michael Catanzaro.
1146
1147         * wtf/Expected.h:
1148         * wtf/Optional.h:
1149         Do not use <optional> for clang currently.
1150         (WTF::valueOrCompute):
1151
1152 2018-05-03  Filip Pizlo  <fpizlo@apple.com>
1153
1154         Strings should not be allocated in a gigacage
1155         https://bugs.webkit.org/show_bug.cgi?id=185218
1156
1157         Reviewed by Saam Barati.
1158         
1159         * WTF.xcodeproj/project.pbxproj:
1160         * wtf/Deque.h:
1161         * wtf/Forward.h:
1162         * wtf/Gigacage.h:
1163         (Gigacage::name):
1164         (Gigacage::basePtr):
1165         * wtf/Vector.h:
1166         (WTF::VectorBufferBase::allocateBuffer):
1167         (WTF::VectorBufferBase::tryAllocateBuffer):
1168         (WTF::VectorBufferBase::reallocateBuffer):
1169         (WTF::VectorBufferBase::deallocateBuffer):
1170         (WTF::minCapacity>::Vector):
1171         (WTF::=):
1172         (WTF::minCapacity>::contains const):
1173         (WTF::minCapacity>::findMatching const):
1174         (WTF::minCapacity>::find const):
1175         (WTF::minCapacity>::reverseFind const):
1176         (WTF::minCapacity>::appendIfNotContains):
1177         (WTF::minCapacity>::fill):
1178         (WTF::minCapacity>::appendRange):
1179         (WTF::minCapacity>::expandCapacity):
1180         (WTF::minCapacity>::tryExpandCapacity):
1181         (WTF::minCapacity>::resize):
1182         (WTF::minCapacity>::resizeToFit):
1183         (WTF::minCapacity>::shrink):
1184         (WTF::minCapacity>::grow):
1185         (WTF::minCapacity>::asanSetInitialBufferSizeTo):
1186         (WTF::minCapacity>::asanSetBufferSizeToFullCapacity):
1187         (WTF::minCapacity>::asanBufferSizeWillChangeTo):
1188         (WTF::minCapacity>::reserveCapacity):
1189         (WTF::minCapacity>::tryReserveCapacity):
1190         (WTF::minCapacity>::reserveInitialCapacity):
1191         (WTF::minCapacity>::shrinkCapacity):
1192         (WTF::minCapacity>::append):
1193         (WTF::minCapacity>::tryAppend):
1194         (WTF::minCapacity>::constructAndAppend):
1195         (WTF::minCapacity>::tryConstructAndAppend):
1196         (WTF::minCapacity>::appendSlowCase):
1197         (WTF::minCapacity>::constructAndAppendSlowCase):
1198         (WTF::minCapacity>::tryConstructAndAppendSlowCase):
1199         (WTF::minCapacity>::uncheckedAppend):
1200         (WTF::minCapacity>::appendVector):
1201         (WTF::minCapacity>::insert):
1202         (WTF::minCapacity>::insertVector):
1203         (WTF::minCapacity>::remove):
1204         (WTF::minCapacity>::removeFirst):
1205         (WTF::minCapacity>::removeFirstMatching):
1206         (WTF::minCapacity>::removeAll):
1207         (WTF::minCapacity>::removeAllMatching):
1208         (WTF::minCapacity>::reverse):
1209         (WTF::minCapacity>::map const):
1210         (WTF::minCapacity>::releaseBuffer):
1211         (WTF::minCapacity>::checkConsistency):
1212         (WTF::swap):
1213         (WTF::operator==):
1214         (WTF::operator!=):
1215         (WTF::removeRepeatedElements):
1216         (WTF::Malloc>::Vector): Deleted.
1217         (WTF::Malloc>::contains const): Deleted.
1218         (WTF::Malloc>::findMatching const): Deleted.
1219         (WTF::Malloc>::find const): Deleted.
1220         (WTF::Malloc>::reverseFind const): Deleted.
1221         (WTF::Malloc>::appendIfNotContains): Deleted.
1222         (WTF::Malloc>::fill): Deleted.
1223         (WTF::Malloc>::appendRange): Deleted.
1224         (WTF::Malloc>::expandCapacity): Deleted.
1225         (WTF::Malloc>::tryExpandCapacity): Deleted.
1226         (WTF::Malloc>::resize): Deleted.
1227         (WTF::Malloc>::resizeToFit): Deleted.
1228         (WTF::Malloc>::shrink): Deleted.
1229         (WTF::Malloc>::grow): Deleted.
1230         (WTF::Malloc>::asanSetInitialBufferSizeTo): Deleted.
1231         (WTF::Malloc>::asanSetBufferSizeToFullCapacity): Deleted.
1232         (WTF::Malloc>::asanBufferSizeWillChangeTo): Deleted.
1233         (WTF::Malloc>::reserveCapacity): Deleted.
1234         (WTF::Malloc>::tryReserveCapacity): Deleted.
1235         (WTF::Malloc>::reserveInitialCapacity): Deleted.
1236         (WTF::Malloc>::shrinkCapacity): Deleted.
1237         (WTF::Malloc>::append): Deleted.
1238         (WTF::Malloc>::tryAppend): Deleted.
1239         (WTF::Malloc>::constructAndAppend): Deleted.
1240         (WTF::Malloc>::tryConstructAndAppend): Deleted.
1241         (WTF::Malloc>::appendSlowCase): Deleted.
1242         (WTF::Malloc>::constructAndAppendSlowCase): Deleted.
1243         (WTF::Malloc>::tryConstructAndAppendSlowCase): Deleted.
1244         (WTF::Malloc>::uncheckedAppend): Deleted.
1245         (WTF::Malloc>::appendVector): Deleted.
1246         (WTF::Malloc>::insert): Deleted.
1247         (WTF::Malloc>::insertVector): Deleted.
1248         (WTF::Malloc>::remove): Deleted.
1249         (WTF::Malloc>::removeFirst): Deleted.
1250         (WTF::Malloc>::removeFirstMatching): Deleted.
1251         (WTF::Malloc>::removeAll): Deleted.
1252         (WTF::Malloc>::removeAllMatching): Deleted.
1253         (WTF::Malloc>::reverse): Deleted.
1254         (WTF::Malloc>::map const): Deleted.
1255         (WTF::Malloc>::releaseBuffer): Deleted.
1256         (WTF::Malloc>::checkConsistency): Deleted.
1257         * wtf/text/AtomicStringImpl.h:
1258         * wtf/text/CString.cpp:
1259         (WTF::CStringBuffer::createUninitialized):
1260         * wtf/text/CString.h:
1261         * wtf/text/StringBuffer.h:
1262         (WTF::StringBuffer::StringBuffer):
1263         (WTF::StringBuffer::~StringBuffer):
1264         (WTF::StringBuffer::resize):
1265         * wtf/text/StringImpl.cpp:
1266         (WTF::StringImpl::~StringImpl):
1267         (WTF::StringImpl::destroy):
1268         (WTF::StringImpl::createUninitializedInternalNonEmpty):
1269         (WTF::StringImpl::reallocateInternal):
1270         (WTF::StringImpl::releaseAssertCaged const): Deleted.
1271         * wtf/text/StringImpl.h:
1272         (WTF::StringImpl::createSubstringSharingImpl):
1273         (WTF::StringImpl::tryCreateUninitialized):
1274         (WTF::StringImpl::adopt):
1275         (WTF::StringImpl::assertCaged const): Deleted.
1276         * wtf/text/StringMalloc.cpp: Removed.
1277         * wtf/text/StringMalloc.h: Removed.
1278         * wtf/text/StringVector.h: Removed.
1279         * wtf/text/SymbolImpl.h:
1280         * wtf/text/UniquedStringImpl.h:
1281         * wtf/text/WTFString.h:
1282         (WTF::String::adopt):
1283         (WTF::String::assertCaged const): Deleted.
1284         (WTF::String::releaseAssertCaged const): Deleted.
1285
1286 2018-05-03  Wenson Hsieh  <wenson_hsieh@apple.com>
1287
1288         Ads in NYTimes app are shifted downwards by the scroll view's top content inset
1289         https://bugs.webkit.org/show_bug.cgi?id=185251
1290         <rdar://problem/39062357>
1291
1292         Reviewed by Tim Horton.
1293
1294         Add a new DYLD_IOS_VERSION macro definition for previous or non-internal SDKs.
1295
1296         * wtf/spi/darwin/dyldSPI.h:
1297
1298 2018-05-03  Ryan Haddad  <ryanhaddad@apple.com>
1299
1300         Unreviewed, rolling out r231197.
1301
1302         The test added with this change crashes on the 32-bit JSC bot.
1303
1304         Reverted changeset:
1305
1306         "Correctly detect string overflow when using the 'Function'
1307         constructor"
1308         https://bugs.webkit.org/show_bug.cgi?id=184883
1309         https://trac.webkit.org/changeset/231197
1310
1311 2018-05-03  Commit Queue  <commit-queue@webkit.org>
1312
1313         Unreviewed, rolling out r231223 and r231288.
1314         https://bugs.webkit.org/show_bug.cgi?id=185256
1315
1316         The change in r231223 breaks internal builds, and r231288 is a
1317         dependent change. (Requested by ryanhaddad on #webkit).
1318
1319         Reverted changesets:
1320
1321         "Use default std::optional if it is provided"
1322         https://bugs.webkit.org/show_bug.cgi?id=185159
1323         https://trac.webkit.org/changeset/231223
1324
1325         "Use pointer instead of
1326         std::optional<std::reference_wrapper<>>"
1327         https://bugs.webkit.org/show_bug.cgi?id=185186
1328         https://trac.webkit.org/changeset/231288
1329
1330 2018-05-02  Commit Queue  <commit-queue@webkit.org>
1331
1332         Unreviewed, rolling out r231251.
1333         https://bugs.webkit.org/show_bug.cgi?id=185229
1334
1335         __cpp_lib_optional should be used after including <optional>
1336         since it is defined in <optional> (Requested by yusukesuzuki
1337         on #webkit).
1338
1339         Reverted changeset:
1340
1341         "Follow-up build fix for r231223"
1342         https://bugs.webkit.org/show_bug.cgi?id=185159
1343         https://trac.webkit.org/changeset/231251
1344
1345 2018-05-02  Jonathan Bedard  <jbedard@apple.com>
1346
1347         Follow-up build fix for r231223
1348         https://bugs.webkit.org/show_bug.cgi?id=185159
1349         <rdar://problem/39891074>
1350
1351         Unreviewed build fix.
1352
1353         We should be consistent about when we include <optional> vs define our own.
1354
1355         * wtf/Optional.h:
1356
1357 2018-05-02  Jer Noble  <jer.noble@apple.com>
1358
1359         Enable HAVE_AVKIT for the MINIMAL_SIMULATOR
1360         https://bugs.webkit.org/show_bug.cgi?id=185183
1361
1362         Reviewed by Daniel Bates.
1363
1364         * wtf/Platform.h:
1365
1366 2018-05-01  Yusuke Suzuki  <utatane.tea@gmail.com>
1367
1368         Use default std::optional if it is provided
1369         https://bugs.webkit.org/show_bug.cgi?id=185159
1370
1371         Reviewed by JF Bastien.
1372
1373         Now C++17 flag is enabled. It means that any standard libraries can use <optional> internally.
1374         If we define std::optional regardless of the existence of the standard library's <optional>,
1375         it causes compile errors. For example, in GCC 7 (specifically GCC 7.3.0) environment,
1376         <optional> is included in <unordered_map>.
1377         We do not define std::optional in WebKit side if <optional> is offered.
1378
1379         And we also remove std::optional<T&> use since this is not accepted in C++17. Use
1380         std::optional<std::reference_wrapper<T>> instead.
1381
1382         * wtf/Expected.h:
1383         constexpr does not mean const in C++17.
1384
1385         * wtf/Optional.h:
1386         Do not define std::optional if <optional> is provided.
1387
1388         (WTF::valueOrCompute):
1389
1390 2018-05-01  Robin Morisset  <rmorisset@apple.com>
1391
1392         Correctly detect string overflow when using the 'Function' constructor
1393         https://bugs.webkit.org/show_bug.cgi?id=184883
1394         <rdar://problem/36320331>
1395
1396         Reviewed by Filip Pizlo.
1397
1398         I added new tryAppend methods alongside the old append methods in StringBuilder, that return a boolean (true means success, false means an overflow happened).
1399         I made new methods instead of just adapting the existing ones (and reverted such a change on appendQuotedJSONString) so that callers that rely on the old behaviour (a hard CRASH() on overflow) don't silently start failing.
1400
1401         * wtf/text/StringBuilder.cpp:
1402         (WTF::StringBuilder::allocateBufferUpConvert):
1403         (WTF::StringBuilder::tryAllocateBufferUpConvert):
1404         (WTF::StringBuilder::appendUninitialized):
1405         (WTF::StringBuilder::append):
1406         (WTF::StringBuilder::tryAppend):
1407         * wtf/text/StringBuilder.h:
1408         (WTF::StringBuilder::tryAppend):
1409         (WTF::StringBuilder::append):
1410         (WTF::StringBuilder::tryAppendLiteral):
1411         * wtf/text/StringBuilderJSON.cpp:
1412         (WTF::StringBuilder::appendQuotedJSONString):
1413         (WTF::StringBuilder::tryAppendQuotedJSONString):
1414
1415 2018-04-30  Mark Lam  <mark.lam@apple.com>
1416
1417         Apply PtrTags to the MetaAllocator and friends.
1418         https://bugs.webkit.org/show_bug.cgi?id=185110
1419         <rdar://problem/39533895>
1420
1421         Reviewed by Saam Barati.
1422
1423         1. Introduce a MetaAllocatorPtr smart pointer to do pointer tagging.
1424         2. Use MetaAllocatorPtr in MetaAllocator and MetaAllocatorHandle.
1425
1426         * WTF.xcodeproj/project.pbxproj:
1427         * wtf/CMakeLists.txt:
1428         * wtf/MetaAllocator.cpp:
1429         (WTF::MetaAllocator::release):
1430         (WTF::MetaAllocatorHandle::MetaAllocatorHandle):
1431         (WTF::MetaAllocatorHandle::shrink):
1432         (WTF::MetaAllocatorHandle::dump const):
1433         (WTF::MetaAllocator::allocate):
1434         (WTF::MetaAllocator::findAndRemoveFreeSpace):
1435         (WTF::MetaAllocator::addFreeSpaceFromReleasedHandle):
1436         (WTF::MetaAllocator::addFreshFreeSpace):
1437         (WTF::MetaAllocator::debugFreeSpaceSize):
1438         (WTF::MetaAllocator::addFreeSpace):
1439         (WTF::MetaAllocator::allocFreeSpaceNode):
1440         * wtf/MetaAllocator.h:
1441         (WTF::MetaAllocatorTracker::find):
1442         (WTF::MetaAllocator::FreeSpaceNode::FreeSpaceNode):
1443         (WTF::MetaAllocator::FreeSpaceNode::sizeInBytes):
1444         (WTF::MetaAllocator::FreeSpaceNode::key):
1445         * wtf/MetaAllocatorHandle.h:
1446         (WTF::MetaAllocatorHandle::start const):
1447         (WTF::MetaAllocatorHandle::end const):
1448         (WTF::MetaAllocatorHandle::startAsInteger const):
1449         (WTF::MetaAllocatorHandle::endAsInteger const):
1450         (WTF::MetaAllocatorHandle::sizeInBytes const):
1451         (WTF::MetaAllocatorHandle::containsIntegerAddress const):
1452         (WTF::MetaAllocatorHandle::key):
1453         * wtf/MetaAllocatorPtr.h: Added.
1454         (WTF::MetaAllocatorPtr::MetaAllocatorPtr):
1455         (WTF::MetaAllocatorPtr:: const):
1456         (WTF::MetaAllocatorPtr::operator bool const):
1457         (WTF::MetaAllocatorPtr::operator! const):
1458         (WTF::MetaAllocatorPtr::operator== const):
1459         (WTF::MetaAllocatorPtr::operator!= const):
1460         (WTF::MetaAllocatorPtr::operator+ const):
1461         (WTF::MetaAllocatorPtr::operator- const):
1462         (WTF::MetaAllocatorPtr::operator+=):
1463         (WTF::MetaAllocatorPtr::operator-=):
1464         (WTF::MetaAllocatorPtr::isEmptyValue const):
1465         (WTF::MetaAllocatorPtr::isDeletedValue const):
1466         (WTF::MetaAllocatorPtr::hash const):
1467         (WTF::MetaAllocatorPtr::emptyValue):
1468         (WTF::MetaAllocatorPtr::deletedValue):
1469         (WTF::MetaAllocatorPtrHash::hash):
1470         (WTF::MetaAllocatorPtrHash::equal):
1471         * wtf/PtrTag.h:
1472
1473 2018-04-30  JF Bastien  <jfbastien@apple.com>
1474
1475         Use some C++17 features
1476         https://bugs.webkit.org/show_bug.cgi?id=185135
1477
1478         Reviewed by Alex Christensen.
1479
1480         * wtf/StdLibExtras.h: libstdc++ doesn't say it's C++17 when it
1481         defines std::conjunction. Use the feature test macro instead.
1482
1483 2018-04-30  Yusuke Suzuki  <utatane.tea@gmail.com>
1484
1485         Use WordLock instead of std::mutex for Threading
1486         https://bugs.webkit.org/show_bug.cgi?id=185121
1487
1488         Reviewed by Geoffrey Garen.
1489
1490         Before r231151, WordLock depends on ThreadSpecific. It means that our Threading implementation
1491         cannot use this lock since Threading primitives could touch these locks after ThreadSpecific
1492         for that WordLock is destroyed.
1493
1494         Now WordLock is changed not to use ThreadSpecific. So it does not depend on our Threading
1495         mechanism and our Threading can start using WordLock internally.
1496
1497         This patch changes WTF::Thread and WTF::ThreadGroup to use WordLock instead of std::mutex.
1498
1499         And add constexpr to explicitly describe that Lock, Condition, and WordLock constructors are constexpr.
1500
1501         * wtf/Condition.h:
1502         * wtf/Lock.h:
1503         * wtf/ThreadGroup.h:
1504         (WTF::ThreadGroup::getLock):
1505         * wtf/Threading.cpp:
1506         (WTF::Thread::didExit):
1507         (WTF::Thread::addToThreadGroup):
1508         (WTF::Thread::removeFromThreadGroup):
1509         * wtf/Threading.h:
1510         * wtf/ThreadingPthreads.cpp:
1511         (WTF::Thread::changePriority):
1512         (WTF::Thread::waitForCompletion):
1513         (WTF::Thread::detach):
1514         (WTF::Thread::signal):
1515         (WTF::Thread::establishPlatformSpecificHandle):
1516         * wtf/ThreadingWin.cpp:
1517         (WTF::Thread::changePriority):
1518         (WTF::Thread::waitForCompletion):
1519         (WTF::Thread::detach):
1520         (WTF::Thread::establishPlatformSpecificHandle):
1521         (WTF::Thread::initializeTLSKey):
1522         (WTF::Thread::currentDying):
1523         (WTF::Thread::get):
1524         (WTF::Thread::initializeTLS):
1525         (WTF::Thread::destructTLS):
1526         (WTF::threadMapMutex): Deleted.
1527         * wtf/WordLock.h:
1528
1529 2018-04-29  Michael Catanzaro  <mcatanzaro@igalia.com>
1530
1531         [CMake] Require GCC 6
1532         https://bugs.webkit.org/show_bug.cgi?id=184985
1533
1534         Reviewed by Alex Christensen.
1535
1536         Stop enforcing GCC version in Compiler.h. It's better to do this in the build system. And I
1537         don't like having the same check in two different places.
1538
1539         * wtf/Compiler.h:
1540
1541 2018-04-29  Geoffrey Garen  <ggaren@apple.com>
1542
1543         WordLock doesn't need per-thread data
1544         https://bugs.webkit.org/show_bug.cgi?id=185119
1545
1546         Reviewed by Yusuke Suzuki.
1547
1548         The stack is per-thread data, so we can stack-allocate our ThreadData.
1549
1550         This eliminates malloc() and high-level WTF threading primitives from
1551         WordLock, making WordLock more portable to non-WTF code, including
1552         bmalloc.
1553
1554         (NOTE: This patch makes the bug fixed in r231148 100% reproducible.)
1555
1556         * wtf/WordLock.cpp:
1557         (WTF::WordLock::lockSlow): Allocate ThreadData on the stack.
1558
1559 2018-04-28  Geoffrey Garen  <ggaren@apple.com>
1560
1561         Fixed a very unlikely race condition in WTF::WordLock
1562         https://bugs.webkit.org/show_bug.cgi?id=185117
1563
1564         Reviewed by Saam Barati.
1565
1566         The race goes like this:
1567
1568         Thread L is in lockSlowCase() and thread U is in unlockSlowCase();
1569
1570         - U acquires queueHead->parkingLock.
1571         - U sets queueHead->shouldPark = false
1572         - U releases queueHead->parkingLock.
1573         - L spuriously wakes up from queueHead->parkingLock.wait()
1574         - L acquires queueHead->parkingLock.
1575         - L notices that queueHead->shouldPark = false, and acquires the WordLock
1576         - L finishes all its work and exits, freeing queueHead
1577         - U notifies queueHead->parkingLock (after free) and crashes or deadlocks
1578
1579         These conditions are currently so unlikely that I don't know how to test
1580         them. I noticed this race because I changed WordLock's allocation pattern
1581         to allow queueHead to be freed more often, and I crashed / deadlocked 100%.
1582
1583         Shout out to <http://en.cppreference.com/w/cpp/thread/condition_variable/notify_one>
1584         for explaining this.
1585
1586         * benchmarks/ToyLocks.h: Fixed build.
1587
1588         * wtf/WordLock.cpp:
1589         (WTF::WordLock::unlockSlow): Hold the lock a little longer to avoid
1590         this race.
1591
1592 2018-04-27  David Kilzer  <ddkilzer@apple.com>
1593
1594         Add logging when SpringBoard enables WebThread
1595         <https://webkit.org/b/185100>
1596         <rdar://problem/39746542>
1597
1598         Reviewed by Daniel Bates.
1599
1600         * wtf/Assertions.h:
1601         (RELEASE_LOG_FAULT): Add macro to call os_log_fault().
1602         * wtf/Platform.h: Drive-by fix to enable USE(OS_LOG) on
1603         public iOS SDKs since <rdar://problem/27758343> was
1604         fixed in iOS 11.0.
1605
1606 2018-04-26  Mark Lam  <mark.lam@apple.com>
1607
1608         Gardening: Speculative build fix for Windows.
1609         https://bugs.webkit.org/show_bug.cgi?id=184976
1610         <rdar://problem/39723901>
1611
1612         Not reviewed.
1613
1614         * wtf/PtrTag.h:
1615         (WTF::makePtrTagHash): Undo last speculative build fix that did not work for 64-bit.
1616
1617 2018-04-26  Andy VanWagoner  <thetalecrafter@gmail.com>
1618
1619         [INTL] Implement Intl.PluralRules
1620         https://bugs.webkit.org/show_bug.cgi?id=184312
1621
1622         Reviewed by JF Bastien.
1623
1624         Added Intl.PluralRules feature flag.
1625
1626         * wtf/FeatureDefines.h:
1627
1628 2018-04-25  Mark Lam  <mark.lam@apple.com>
1629
1630         Gardening: Speculative build fix for Windows 32-bit to compensate for MSVC's lack of smarts.
1631         https://bugs.webkit.org/show_bug.cgi?id=184976
1632         <rdar://problem/39723901>
1633
1634         Not reviewed.
1635
1636         According to https://stackoverflow.com/questions/37658794/integer-constant-overflow-warning-in-constexpr,
1637         disabling the warning around the definition of the function will not disable it
1638         for all clients of the function.
1639
1640         * wtf/PtrTag.h:
1641         (WTF::makePtrTagHash):
1642
1643 2018-04-25  Mark Lam  <mark.lam@apple.com>
1644
1645         Push the definition of PtrTag down to the WTF layer.
1646         https://bugs.webkit.org/show_bug.cgi?id=184976
1647         <rdar://problem/39723901>
1648
1649         Reviewed by Saam Barati.
1650
1651         This is in preparation for doing pointer profiling at the WTF layer as well.
1652         Also deleted an unused ptrTag() function.
1653
1654         * WTF.xcodeproj/project.pbxproj:
1655         * wtf/CMakeLists.txt:
1656         * wtf/PtrTag.h: Copied from Source/JavaScriptCore/runtime/PtrTag.h.
1657         (WTF::makePtrTagHash):
1658         (JSC::ptrTagName): Deleted.
1659         (JSC::tagForPtr): Deleted.
1660         (JSC::ptrTag): Deleted.
1661         (JSC::tagCodePtr): Deleted.
1662         (JSC::untagCodePtr): Deleted.
1663         (JSC::retagCodePtr): Deleted.
1664         (JSC::removeCodePtrTag): Deleted.
1665         (JSC::tagCFunctionPtr): Deleted.
1666         (JSC::untagCFunctionPtr): Deleted.
1667         (JSC::assertIsCFunctionPtr): Deleted.
1668         (JSC::assertIsNullOrCFunctionPtr): Deleted.
1669         (JSC::assertIsNotTagged): Deleted.
1670         (JSC::assertIsTagged): Deleted.
1671         (JSC::assertIsNullOrTagged): Deleted.
1672         (JSC::assertIsTaggedWith): Deleted.
1673         (JSC::assertIsNullOrTaggedWith): Deleted.
1674
1675 2018-04-25  Dean Jackson  <dino@apple.com>
1676
1677         Make a better flag for system preview, and disable it where necessary
1678         https://bugs.webkit.org/show_bug.cgi?id=184968
1679         <rdar://problem/39686506>
1680
1681         Reviewed by Eric Carlson.
1682
1683         Add a new USE(SYSTEM_PREVIEW).
1684
1685         * wtf/Platform.h:
1686
1687 2018-04-24  Commit Queue  <commit-queue@webkit.org>
1688
1689         Unreviewed, rolling out r230971.
1690         https://bugs.webkit.org/show_bug.cgi?id=184939
1691
1692         This fix was not appropriate (Requested by n_wang on #webkit).
1693
1694         Reverted changeset:
1695
1696         "AX: soft link libAccessibility.dylb"
1697         https://bugs.webkit.org/show_bug.cgi?id=184919
1698         https://trac.webkit.org/changeset/230971
1699
1700 2018-04-24  Nan Wang  <n_wang@apple.com>
1701
1702         AX: soft link libAccessibility.dylb
1703         https://bugs.webkit.org/show_bug.cgi?id=184919
1704
1705         Reviewed by Chris Fleizach.
1706
1707         * wtf/cocoa/SoftLinking.h:
1708
1709 2018-04-23  Zalan Bujtas  <zalan@apple.com>
1710
1711         [LayoutFormattingContext] Initial commit.
1712         https://bugs.webkit.org/show_bug.cgi?id=184896
1713
1714         Reviewed by Antti Koivisto.
1715
1716         * wtf/FeatureDefines.h:
1717
1718 2018-04-23  Per Arne Vollan  <pvollan@apple.com>
1719
1720         Deactivate the WindowServer connection for the WebContent process.
1721         https://bugs.webkit.org/show_bug.cgi?id=184451
1722         <rdar://problem/38313938>
1723
1724         Reviewed by Brent Fulgham.
1725
1726         Defining ENABLE_WEBPROCESS_WINDOWSERVER_BLOCKING as 1 will deactivate the WindowServer connection
1727         for the WebContent process by enabling the call to 'CGSSetDenyWindowServerConnections(true)' on
1728         process startup. After calling this function, every attempt to establish a connection to the
1729         WindowServer from the WebContent process will fail, except for CA render server connections.
1730
1731         * wtf/FeatureDefines.h:
1732
1733 2018-04-20  JF Bastien  <jfbastien@apple.com>
1734
1735         Handle more JSON stringify OOM
1736         https://bugs.webkit.org/show_bug.cgi?id=184846
1737         <rdar://problem/39390672>
1738
1739         Reviewed by Mark Lam.
1740
1741         JSON stringification can OOM easily. Here's another case.
1742
1743         * wtf/text/StringBuilderJSON.cpp:
1744         (WTF::StringBuilder::appendQuotedJSONString):
1745
1746 2018-04-18  Jer Noble  <jer.noble@apple.com>
1747
1748         Don't put build products into WK_ALTERNATE_WEBKIT_SDK_PATH for engineering builds
1749         https://bugs.webkit.org/show_bug.cgi?id=184762
1750
1751         Reviewed by Dan Bernstein.
1752
1753         * Configurations/Base.xcconfig:
1754
1755 2018-04-20  Daniel Bates  <dabates@apple.com>
1756
1757         Remove code for compilers that did not support NSDMI for aggregates
1758         https://bugs.webkit.org/show_bug.cgi?id=184599
1759
1760         Reviewed by Per Arne Vollan.
1761
1762         Remove workaround for earlier Visual Studio versions that did not support non-static data
1763         member initializers (NSDMI) for aggregates. We have since updated all the build.webkit.org
1764         and EWS bots to a newer version that supports this feature.
1765
1766         * wtf/Compiler.h:
1767
1768 2018-04-19  David Kilzer  <ddkilzer@apple.com>
1769
1770         Enable Objective-C weak references
1771         <https://webkit.org/b/184789>
1772         <rdar://problem/39571716>
1773
1774         Reviewed by Dan Bernstein.
1775
1776         * Configurations/Base.xcconfig:
1777         (CLANG_ENABLE_OBJC_WEAK): Enable.
1778
1779 2018-04-19  Brady Eidson  <beidson@apple.com>
1780
1781         Add globally-unique HistoryItem identifiers (and have WebKit2 adopt them).
1782         <rdar://problem/39533949> and https://bugs.webkit.org/show_bug.cgi?id=184750
1783
1784         Reviewed by Ryosuke Niwa.
1785
1786         * wtf/DebugUtilities.h:
1787         (WTF::debugString):
1788
1789 2018-04-19  Per Arne Vollan  <pvollan@apple.com>
1790
1791         Unreviewed, rolling out r230677.
1792
1793         Introduced Netflix problems.
1794
1795         Reverted changeset:
1796
1797         "Deactivate the WindowServer connection for the WebContent process."
1798         https://bugs.webkit.org/show_bug.cgi?id=184451
1799         https://trac.webkit.org/changeset/230677
1800
1801 2018-04-19  Nan Wang  <n_wang@apple.com>
1802
1803         AX: AOM: respect the accessibility setting for dispatching the accessible events
1804         https://bugs.webkit.org/show_bug.cgi?id=184619
1805
1806         Reviewed by Ryosuke Niwa.
1807
1808         * wtf/Platform.h:
1809
1810 2018-04-18  Ross Kirsling  <ross.kirsling@sony.com>
1811
1812         [Win] Layout Test js/date-constructor.html is failing
1813         https://bugs.webkit.org/show_bug.cgi?id=140945
1814
1815         Reviewed by Per Arne Vollan.
1816
1817         * wtf/DateMath.cpp:
1818         (WTF::calculateDSTOffset):
1819         Move all shared calculations outside of the #if -- including the "jump forward a day" case that had been overlooked.
1820
1821 2018-04-17  Saam Barati  <sbarati@apple.com>
1822
1823         Add system trace points for process launch and for initializeWebProcess
1824         https://bugs.webkit.org/show_bug.cgi?id=184669
1825
1826         Reviewed by Simon Fraser.
1827
1828         This patch adds TracePointCodes to measure process launch time and
1829         WebProcess::initializeWebProcess time.
1830         
1831         It also renames the TracePoint function to tracePoint since WebKit style
1832         does not capitalize the first letter in function names.
1833
1834         * wtf/SystemTracing.h:
1835         (WTF::tracePoint):
1836         (WTF::TraceScope::TraceScope):
1837         (WTF::TraceScope::~TraceScope):
1838         (WTF::TracePoint): Deleted.
1839
1840 2018-04-16  Andy Estes  <aestes@apple.com>
1841
1842         [iOS] Enable WKPDFView by default
1843         https://bugs.webkit.org/show_bug.cgi?id=184675
1844         <rdar://problem/27885452>
1845
1846         Reviewed by Darin Adler.
1847
1848         * wtf/FeatureDefines.h:
1849
1850 2018-04-16  Per Arne Vollan  <pvollan@apple.com>
1851
1852         Deactivate the WindowServer connection for the WebContent process.
1853         https://bugs.webkit.org/show_bug.cgi?id=184451
1854         <rdar://problem/38313938>
1855
1856         Reviewed by Brent Fulgham.
1857
1858         Defining ENABLE_WEBPROCESS_WINDOWSERVER_BLOCKING as 1 will deactivate the WindowServer connection
1859         for the WebContent process by enabling the call to 'CGSSetDenyWindowServerConnections(true)' on
1860         process startup. After calling this function, every attempt to establish a connection to the
1861         WindowServer from the WebContent process will fail, except for CA render server connections.
1862
1863         * wtf/FeatureDefines.h:
1864
1865 2018-04-14  Commit Queue  <commit-queue@webkit.org>
1866
1867         Unreviewed, rolling out r230659.
1868         https://bugs.webkit.org/show_bug.cgi?id=184633
1869
1870         Landed prematurely (Requested by ap on #webkit).
1871
1872         Reverted changeset:
1873
1874         "Deactivate the WindowServer connection for the WebContent
1875         process."
1876         https://bugs.webkit.org/show_bug.cgi?id=184451
1877         https://trac.webkit.org/changeset/230659
1878
1879 2018-04-14  Per Arne Vollan  <pvollan@apple.com>
1880
1881         Deactivate the WindowServer connection for the WebContent process.
1882         https://bugs.webkit.org/show_bug.cgi?id=184451
1883         <rdar://problem/38313938>
1884
1885         Reviewed by Brent Fulgham.
1886
1887         Defining ENABLE_WEBPROCESS_WINDOWSERVER_BLOCKING as 1 will deactivate the WindowServer connection
1888         for the WebContent process by enabling the call to 'CGSSetDenyWindowServerConnections(true)' on
1889         process startup. After calling this function, every attempt to establish a connection to the
1890         WindowServer from the WebContent process will fail, except for CA render server connections.
1891
1892         * wtf/FeatureDefines.h:
1893
1894 2018-04-13  Chris Dumez  <cdumez@apple.com>
1895
1896         Split WindowProxy handling out of ScriptController and into a new class owned by AbstractFrame
1897         https://bugs.webkit.org/show_bug.cgi?id=184591
1898
1899         Reviewed by Sam Weinig.
1900
1901         Add isEmpty() convenience method to SizedIteratorRange.
1902
1903         * wtf/IteratorRange.h:
1904         (WTF::SizedIteratorRange::isEmpty const):
1905
1906 2018-04-13  Brady Eidson  <beidson@apple.com>
1907
1908         Introduce SuspendedPageProxy to keep old web processes around after their WebPageProxy has been swapped to a new one.
1909         https://bugs.webkit.org/show_bug.cgi?id=184559
1910
1911         Reviewed by Alex Christensen.
1912
1913         * wtf/DebugUtilities.h:
1914         (WTF::debugString): Add a debug utility to easily construct a "const char*" that is released after a spin of the run loop.
1915           This greatly eases uses our String classes and functions inside of "%s" style environments like printf and LOG.
1916
1917 2018-04-12  Michael Catanzaro  <mcatanzaro@igalia.com>
1918
1919         Remove unused crash hook functionality
1920         https://bugs.webkit.org/show_bug.cgi?id=183369
1921
1922         Reviewed by Alexey Proskuryakov.
1923
1924         WTFSetCrashHook and WTFInstallReportBacktraceOnCrashHook are not used on any platforms and
1925         can be removed.
1926
1927         * wtf/Assertions.cpp:
1928         * wtf/Assertions.h:
1929
1930 2018-04-11  Said Abou-Hallawa  <sabouhallawa@apple.com>
1931
1932         Unreviewed, rolling out r230523.
1933
1934         Introduced MotionMark regression
1935
1936         Reverted changeset:
1937
1938         "Deactivate the WindowServer connection for the WebContent
1939         process."
1940         https://bugs.webkit.org/show_bug.cgi?id=184451
1941         https://trac.webkit.org/changeset/230523
1942
1943 2018-04-11  Per Arne Vollan  <pvollan@apple.com>
1944
1945         Deactivate the WindowServer connection for the WebContent process.
1946         https://bugs.webkit.org/show_bug.cgi?id=184451
1947         <rdar://problem/38313938>
1948
1949         Reviewed by Brent Fulgham.
1950
1951         Defining ENABLE_WEBPROCESS_WINDOWSERVER_BLOCKING as 1 will deactivate the WindowServer connection
1952         for the WebContent process by enabling the call to 'CGSSetDenyWindowServerConnections(true)' on
1953         process startup. After calling this function, every attempt to establish a connection to the
1954         WindowServer from the WebContent process will fail, except for CA render server connections.
1955
1956         * wtf/FeatureDefines.h:
1957
1958 2018-04-10  Andy Estes  <aestes@apple.com>
1959
1960         [iOS] Use PDFKit to render PDFs in WKWebView
1961         https://bugs.webkit.org/show_bug.cgi?id=184387
1962
1963         Reviewed by Beth Dakin.
1964
1965         * wtf/FeatureDefines.h: Defined ENABLE_WKLEGACYPDFVIEW and ENABLE_WKPDFVIEW.
1966
1967 2018-04-09  Mark Lam  <mark.lam@apple.com>
1968
1969         Decorate method table entries to support pointer profiling.
1970         https://bugs.webkit.org/show_bug.cgi?id=184430
1971         <rdar://problem/39296190>
1972
1973         Reviewed by Saam Barati.
1974
1975         * wtf/PointerPreparations.h:
1976
1977 2018-04-08  Yusuke Suzuki  <utatane.tea@gmail.com>
1978
1979         Unreviewed, use alignas(void*)
1980         https://bugs.webkit.org/show_bug.cgi?id=183508
1981
1982         Very large alignment is not supported in MSVC.
1983
1984         * wtf/Gigacage.cpp:
1985         * wtf/Gigacage.h:
1986
1987 2018-04-08  Yusuke Suzuki  <utatane.tea@gmail.com>
1988
1989         Use alignas instead of compiler-specific attributes
1990         https://bugs.webkit.org/show_bug.cgi?id=183508
1991
1992         Reviewed by Mark Lam.
1993
1994         Use alignas for g_gigacageBasePtr. We also add reinterpret_cast to fix
1995         compile errors in ARMv7 and MIPS JSCOnly ports.
1996
1997         * wtf/Gigacage.cpp:
1998         * wtf/Gigacage.h:
1999         (Gigacage::basePtrs):
2000
2001 2018-04-06  Saam Barati  <sbarati@apple.com>
2002
2003         bmalloc's tryLargeZeroedMemalignVirtual shouldn't treat the entire virtual size as dirty towards its footprint
2004         https://bugs.webkit.org/show_bug.cgi?id=184207
2005
2006         Reviewed by Mark Lam.
2007
2008         * wtf/Gigacage.cpp:
2009         (Gigacage::freeVirtualPages):
2010
2011 2018-04-05  Yusuke Suzuki  <utatane.tea@gmail.com>
2012
2013         [WTF] Remove StaticLock
2014         https://bugs.webkit.org/show_bug.cgi?id=184332
2015
2016         Reviewed by Mark Lam.
2017
2018         Now, WTF::StaticLock is `using StaticLock = Lock`. Lock just works
2019         in either static storage and dynamic storage. Remove StaticLock and
2020         always use Lock.
2021
2022         We also remove StaticWordLock and StaticReadWriteLock. And we add
2023         WTF::RecursiveLock, which is RecursiveLockAdapter<Lock>.
2024
2025         * wtf/HashTable.cpp:
2026         (WTF::HashTableStats::recordCollisionAtCount):
2027         (WTF::HashTableStats::dumpStats):
2028         * wtf/Language.cpp:
2029         (WTF::userPreferredLanguages):
2030         * wtf/Lock.h:
2031         * wtf/MainThread.cpp:
2032         (WTF::dispatchFunctionsFromMainThread):
2033         (WTF::callOnMainThread):
2034         * wtf/ParkingLot.cpp:
2035         * wtf/ReadWriteLock.h:
2036         * wtf/RecursiveLockAdapter.h:
2037         * wtf/StackStats.cpp:
2038         (WTF::StackStats::CheckPoint::CheckPoint):
2039         (WTF::StackStats::CheckPoint::~CheckPoint):
2040         (WTF::StackStats::probe):
2041         (WTF::StackStats::LayoutCheckPoint::LayoutCheckPoint):
2042         (WTF::StackStats::LayoutCheckPoint::~LayoutCheckPoint):
2043         * wtf/StackStats.h:
2044         * wtf/ThreadMessage.cpp:
2045         (WTF::sendMessageScoped):
2046         * wtf/ThreadingPthreads.cpp:
2047         * wtf/ThreadingWin.cpp:
2048         * wtf/WordLock.h:
2049         * wtf/cf/LanguageCF.cpp:
2050         (WTF::languagePreferencesDidChange):
2051         (WTF::platformUserPreferredLanguages):
2052         * wtf/dtoa.cpp:
2053         * wtf/text/AtomicStringImpl.cpp:
2054         * wtf/text/StringView.cpp:
2055         (WTF::StringView::invalidate):
2056         (WTF::StringView::adoptUnderlyingString):
2057         (WTF::StringView::setUnderlyingString):
2058         * wtf/unicode/icu/CollatorICU.cpp:
2059         (WTF::Collator::Collator):
2060         (WTF::Collator::~Collator):
2061         * wtf/win/LanguageWin.cpp:
2062         (WTF::platformLanguage):
2063
2064 2018-04-04  Brent Fulgham  <bfulgham@apple.com>
2065
2066         Failures from mach port reference handling should be fatal
2067         https://bugs.webkit.org/show_bug.cgi?id=184202
2068         <rdar://problem/37771114>
2069
2070         Reviewed by Anders Carlsson.
2071
2072         * WTF.xcodeproj/project.pbxproj:
2073         * wtf/MachSendRight.h: Copied from WebCore/platform/cocoa/MachSendRight.h.
2074         (WebCore::MachSendRight::operator bool const): Deleted.
2075         (WebCore::MachSendRight::sendRight const): Deleted.
2076         * wtf/PlatformMac.cmake:
2077         * wtf/cocoa/CPUTimeCocoa.mm:
2078         (WTF::CPUTime::forCurrentThread): Do proper cleanup if the port is invalid.
2079         * wtf/cocoa/MachSendRight.cpp: Copied from WebCore/platform/cocoa/MachSendRight.cpp.
2080         (WTF::retainSendRight):
2081         (WTF::releaseSendRight):
2082         (WTF::deallocateSendRightSafely):
2083         (WebCore::retainSendRight): Deleted.
2084         (WebCore::releaseSendRight): Deleted.
2085         (WebCore::MachSendRight::adopt): Deleted.
2086         (WebCore::MachSendRight::create): Deleted.
2087         (WebCore::MachSendRight::MachSendRight): Deleted.
2088         (WebCore::MachSendRight::~MachSendRight): Deleted.
2089         (WebCore::MachSendRight::operator=): Deleted.
2090         (WebCore::MachSendRight::copySendRight const): Deleted.
2091         (WebCore::MachSendRight::leakSendRight): Deleted.
2092
2093 2018-04-04  Youenn Fablet  <youenn@apple.com>
2094
2095         Introduce a ThreadSafeRefCounted parameter to ensure being destroyed on the main thread
2096         https://bugs.webkit.org/show_bug.cgi?id=183988
2097
2098         Reviewed by Darin Adler.
2099
2100         * wtf/ThreadSafeRefCounted.h:
2101         (WTF::ThreadSafeRefCounted::deref const):
2102
2103 2018-04-04  Yusuke Suzuki  <utatane.tea@gmail.com>
2104
2105         [WTF] Remove Atomics.cpp
2106         https://bugs.webkit.org/show_bug.cgi?id=184300
2107
2108         Reviewed by Konstantin Tokarev.
2109
2110         This Atomics.cpp is a workaround for GCC which version is < 4.8.
2111         Our compiler requirement is now 5.0.0. This workaround is no
2112         longer necessary.
2113
2114         * wtf/Atomics.cpp: Removed.
2115         * wtf/CMakeLists.txt:
2116
2117 2018-04-03  Tomas Popela  <tpopela@redhat.com>
2118
2119         Unreviewed, mute the unused parameter compilation warning
2120
2121         Triggered on the PPC64 machine.
2122
2123         * wtf/ThreadingPthreads.cpp:
2124         (WTF::Thread::signalHandlerSuspendResume):
2125
2126 2018-04-03  Tomas Popela  <tpopela@redhat.com>
2127
2128         Unreviewed, fix the unused variable compilation warning
2129
2130         Move the ucontext_t code under the HAVE(MACHINE_CONTEXT). Triggered
2131         on the PPC64 machine.
2132
2133         * wtf/ThreadingPthreads.cpp:
2134         (WTF::Thread::signalHandlerSuspendResume):
2135
2136 2018-04-02  Saam Barati  <sbarati@apple.com>
2137
2138         bmalloc should compute its own estimate of its footprint
2139         https://bugs.webkit.org/show_bug.cgi?id=184121
2140
2141         Reviewed by Filip Pizlo.
2142
2143         * wtf/FastMalloc.cpp:
2144         (WTF::fastCommitAlignedMemory):
2145         (WTF::fastDecommitAlignedMemory):
2146         * wtf/FastMalloc.h:
2147
2148 2018-03-30  Filip Pizlo  <fpizlo@apple.com>
2149
2150         Strings and Vectors shouldn't do index masking
2151         https://bugs.webkit.org/show_bug.cgi?id=184193
2152
2153         Reviewed by Mark Lam.
2154
2155         * wtf/SizeLimits.cpp:
2156         * wtf/Vector.h:
2157         (WTF::VectorBufferBase::allocateBuffer):
2158         (WTF::VectorBufferBase::tryAllocateBuffer):
2159         (WTF::VectorBufferBase::reallocateBuffer):
2160         (WTF::VectorBufferBase::deallocateBuffer):
2161         (WTF::VectorBufferBase::releaseBuffer):
2162         (WTF::VectorBufferBase::VectorBufferBase):
2163         (WTF::VectorBuffer::allocateBuffer):
2164         (WTF::VectorBuffer::tryAllocateBuffer):
2165         (WTF::VectorBuffer::swap):
2166         (WTF::VectorBuffer::restoreInlineBufferIfNeeded):
2167         (WTF::Vector::at):
2168         (WTF::Vector::at const):
2169         (WTF::VectorBufferBase::updateMask): Deleted.
2170         * wtf/text/StringImpl.h:
2171         (WTF::StringImpl::flagIsSymbol):
2172         (WTF::StringImpl::length const):
2173         (WTF::StringImplShape::StringImplShape):
2174         (WTF::StringImpl::at const):
2175         (WTF::StringImpl::tailOffset):
2176         (WTF::StringImpl::maskOffset): Deleted.
2177         (WTF::StringImpl::mask const): Deleted.
2178         * wtf/text/StringView.h:
2179         (WTF::StringView::StringView):
2180         (WTF::StringView::operator=):
2181         (WTF::StringView::initialize):
2182         (WTF::StringView::clear):
2183         (WTF::StringView::operator[] const):
2184         * wtf/text/WTFString.h:
2185         (WTF::String::length const):
2186         (WTF::String::mask const): Deleted.
2187
2188 2018-03-30  Mark Lam  <mark.lam@apple.com>
2189
2190         Add pointer profiling support in baseline JIT and supporting files.
2191         https://bugs.webkit.org/show_bug.cgi?id=184200
2192         <rdar://problem/39057300>
2193
2194         Reviewed by Filip Pizlo.
2195
2196         * wtf/PointerPreparations.h:
2197         - Remove WTF_PREPARE_FUNCTION_POINTER_FOR_EXECUTION.  It is no longer needed.
2198
2199 2018-03-30  JF Bastien  <jfbastien@apple.com>
2200
2201         WorkQueueWin: don't move rvalues
2202         https://bugs.webkit.org/show_bug.cgi?id=184190
2203         <rdar://problem/39049850>
2204
2205         Reviewed by Mark Lam.
2206
2207         As part of #184167 optional is now more frequently an rvalue
2208         reference, and moving its .value() is not a thing that should be
2209         done anymore.
2210
2211         * wtf/win/WorkQueueWin.cpp:
2212         (WTF::WorkQueue::unregisterAndCloseHandle):
2213
2214 2018-03-30  JF Bastien  <jfbastien@apple.com>
2215
2216         Remove CXX_REFERENCE_QUALIFIED_FUNCTIONS and optional's equivalent
2217         https://bugs.webkit.org/show_bug.cgi?id=184167
2218         <rdar://problem/39023130>
2219
2220         Reviewed by Yusuke Suzuki.
2221
2222         Remove COMPILER_SUPPORTS(CXX_REFERENCE_QUALIFIED_FUNCTIONS), it's
2223         supported by all compilers WebKit supports (it's a C++11 feature,
2224         *detection* of it with __has_extension was added to clang on May
2225         13th 2011, and VS2015 / GCC support it).
2226
2227         Optional.h had a similar thing, ditch it too.
2228
2229         * wtf/Compiler.h:
2230         * wtf/Optional.h:
2231         (std::optional::contained_val const):
2232         (std::optional::contained_val):
2233         * wtf/Ref.h:
2234         * wtf/RefPtr.h:
2235         * wtf/text/WTFString.cpp:
2236         * wtf/text/WTFString.h:
2237
2238 2018-03-30  JF Bastien  <jfbastien@apple.com>
2239
2240         Introduce WTF_LAZY_INSTANTIATE
2241         https://bugs.webkit.org/show_bug.cgi?id=184169
2242         <rdar://problem/39023385>
2243
2244         Reviewed by Mark Lam.
2245
2246         As part of #184164 I'm adding some forwarding methods to
2247         WTF::String. These need to forward RetainPtr and CString, and
2248         usually that would require #include'ing RetainPtr.h and CString.h
2249         to WTFString.h which isn't really something we should do.
2250
2251         Introduce WTF_LAZY_INSTANTIATE to forward-declare functions which
2252         just pass parameters to another function, and return whatever that
2253         other function returned, without having to include the return's /
2254         parameters' type header.
2255
2256         Try it out here: godbolt.org/g/oV8G5Q
2257
2258         * wtf/Forward.h:
2259
2260 2018-03-29  JF Bastien  <jfbastien@apple.com>
2261
2262         Use Forward.h instead of forward-declaring WTF::String
2263         https://bugs.webkit.org/show_bug.cgi?id=184172
2264         <rdar://problem/39026146>
2265
2266         Reviewed by Yusuke Suzuki.
2267
2268         As part of #184164 I'm changing WTF::String, and the forward
2269         declarations are just wrong because I'm making it templated. We
2270         should use Forward.h anyways, so do that instead.
2271
2272         * wtf/Forward.h:
2273         * wtf/HashTraits.h:
2274         * wtf/PrintStream.h:
2275
2276 2018-03-29  Yusuke Suzuki  <utatane.tea@gmail.com>
2277
2278         Remove WTF_EXPORTDATA and JS_EXPORTDATA
2279         https://bugs.webkit.org/show_bug.cgi?id=184170
2280
2281         Reviewed by JF Bastien.
2282
2283         Replace WTF_EXPORTDATA and JS_EXPORTDATA with
2284         WTF_EXPORT_PRIVATE and JS_EXPORT_PRIVATE respectively.
2285
2286         * wtf/ExportMacros.h:
2287         * wtf/Gigacage.h:
2288         * wtf/HashTable.h:
2289         * wtf/Threading.h:
2290         * wtf/text/AtomicString.cpp:
2291         * wtf/text/AtomicString.h:
2292         * wtf/text/StringImpl.h:
2293
2294 2018-03-29  Ross Kirsling  <ross.kirsling@sony.com>
2295
2296         MSVC __forceinline slows down JSC release build fivefold after r229391
2297         https://bugs.webkit.org/show_bug.cgi?id=184062
2298
2299         Reviewed by Alex Christensen.
2300
2301         * wtf/Compiler.h:
2302         Add ALWAYS_INLINE_EXCEPT_MSVC to support MSVC optimizer sensitivities.
2303
2304 2018-03-29  JF Bastien  <jfbastien@apple.com>
2305
2306         Remove WTF_EXPORT_STRING_API
2307         https://bugs.webkit.org/show_bug.cgi?id=184168
2308         <rdar://problem/39023253>
2309
2310         Reviewed by Yusuke Suzuki.
2311
2312         Remove WTF_EXPORT_STRING_API as requested by a FIXME, and use
2313         WTF_EXPORT_PRIVATE instead.
2314
2315         * wtf/ExportMacros.h:
2316         * wtf/text/AtomicString.h:
2317         * wtf/text/AtomicStringImpl.h:
2318         * wtf/text/StringImpl.h:
2319         * wtf/text/StringView.h:
2320         * wtf/text/SymbolImpl.h:
2321         * wtf/text/WTFString.h:
2322
2323 2018-03-29  Commit Queue  <commit-queue@webkit.org>
2324
2325         Unreviewed, rolling out r230062.
2326         https://bugs.webkit.org/show_bug.cgi?id=184128
2327
2328         Broke mac port. web content process crashes while loading any
2329         web page (Requested by rniwa on #webkit).
2330
2331         Reverted changeset:
2332
2333         "MSVC __forceinline slows down JSC release build fivefold
2334         after r229391"
2335         https://bugs.webkit.org/show_bug.cgi?id=184062
2336         https://trac.webkit.org/changeset/230062
2337
2338 2018-03-28  Ross Kirsling  <ross.kirsling@sony.com>
2339
2340         MSVC __forceinline slows down JSC release build fivefold after r229391
2341         https://bugs.webkit.org/show_bug.cgi?id=184062
2342
2343         Reviewed by Alex Christensen.
2344
2345         * wtf/Compiler.h:
2346         Add ALWAYS_INLINE_EXCEPT_MSVC to support MSVC optimizer sensitivities.
2347
2348 2018-03-28  Fujii Hironori  <Hironori.Fujii@sony.com>
2349
2350         [Win] Assertions.h: VC doesn't support GCC extension ##__VA_ARGS__
2351         https://bugs.webkit.org/show_bug.cgi?id=184076
2352
2353         Reviewed by Alex Christensen.
2354
2355         ##__VA_ARGS__ is used to define RELEASE_LOG, RELEASE_LOG_ERROR,
2356         RELEASE_LOG_IF, RELEASE_LOG_ERROR_IF, RELEASE_LOG_WITH_LEVEL,
2357         RELEASE_LOG_WITH_LEVEL_IF and RELEASE_LOG_INFO_IF.
2358
2359         A macro using ##__VA_ARGS__,
2360
2361           #define foo(format, ...) bar(format, ##__VA_ARGS__)
2362
2363         can be defined without ##__VA_ARGS__:
2364
2365           #define foo(...) bar(__VA_ARGS__)
2366
2367         * wtf/Assertions.h: Use __VA_ARGS__ instead of ##__VA_ARGS__.
2368
2369 2018-03-28  Brent Fulgham  <bfulgham@apple.com>
2370
2371         Avoid uninitialized mach ports
2372         https://bugs.webkit.org/show_bug.cgi?id=184090
2373         <rdar://problem/37261129>
2374
2375         Reviewed by Chris Dumez.
2376
2377         It is possible for mach_port_allocate to return an error, but we rarely check its return value. The value
2378         of the argument passed to mach_port_allocate is not guaranteed to be valid when it returns an error, so
2379         there is a potential for us to try to use invalid ports.
2380
2381         We should always check return values, and ensure that the mach port variables we seek to initialize are
2382         kept in a valid state.
2383
2384         Reviewed by Chris Dumez.
2385
2386         * wtf/Threading.h: Initialize mach port.
2387
2388 2018-03-28  Robin Morisset  <rmorisset@apple.com>
2389
2390         appendQuotedJSONString stops on arithmetic overflow instead of propagating it upwards
2391         https://bugs.webkit.org/show_bug.cgi?id=183894
2392
2393         Reviewed by Saam Barati.
2394
2395         appendQuotedJSONString now returns a bool indicating whether it succeeded, instead of silently failing when given a string too large
2396         to fit in 4GB.
2397
2398         * wtf/text/StringBuilder.h:
2399         * wtf/text/StringBuilderJSON.cpp:
2400         (WTF::StringBuilder::appendQuotedJSONString):
2401
2402 2018-03-27  Per Arne Vollan  <pvollan@apple.com>
2403
2404         The layout test fast/canvas/webgl/read-pixels-test.html is timing out.
2405         https://bugs.webkit.org/show_bug.cgi?id=183923
2406         <rdar://problem/38756869>
2407
2408         Reviewed by Brent Fulgham.
2409
2410         Add compile guard for blocking of the WindowServer in the WebProcess.
2411
2412         * wtf/FeatureDefines.h:
2413
2414 2018-03-26  Tim Horton  <timothy_horton@apple.com>
2415
2416         Add and adopt HAVE(CORE_ANIMATION_RENDER_SERVER)
2417         https://bugs.webkit.org/show_bug.cgi?id=184026
2418         <rdar://problem/38883321>
2419
2420         Reviewed by Sam Weinig.
2421
2422         * wtf/Platform.h:
2423
2424 2018-03-26  Yusuke Suzuki  <utatane.tea@gmail.com>
2425
2426         We should have SSE4 detection in the X86 MacroAssembler.
2427         https://bugs.webkit.org/show_bug.cgi?id=165363
2428
2429         Reviewed by JF Bastien.
2430
2431         GCC 5 supports clobbering PIC registers in inline ASM [1,2].
2432
2433         [1]: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=47602
2434         [2]: https://gcc.gnu.org/viewcvs/gcc?view=revision&revision=216154
2435
2436         * wtf/Atomics.h:
2437         (WTF::x86_cpuid):
2438
2439 2018-03-26  Antoine Quint  <graouts@apple.com>
2440
2441         [ASan] Allow Ref<> to be swapped
2442         https://bugs.webkit.org/show_bug.cgi?id=184017
2443         <rdar://problem/36336787>
2444
2445         Reviewed by JF Bastien.
2446
2447         Unpoison a Ref in various calls just like in ~Ref so that sorting a Vector<Ref<>> works with ASan on.
2448
2449         * wtf/Ref.h:
2450         (WTF::Ref::assignToHashTableEmptyValue):
2451         (WTF::=):
2452         (WTF::U>::replace):
2453
2454 2018-03-26  Brent Fulgham  <bfulgham@apple.com>
2455
2456         Warn against cookie access in the WebContent process using ProcessPrivilege assertions
2457         https://bugs.webkit.org/show_bug.cgi?id=183911
2458         <rdar://problem/38762306>
2459
2460         Reviewed by Youenn Fablet.
2461
2462         Extend the ProcessPrivilege API with the ability to add and remove individual
2463         privileges.
2464
2465         * wtf/ProcessPrivilege.cpp:
2466         (WTF::addProcessPrivilege):
2467         (WTF::removeProcessPrivilege):
2468         * wtf/ProcessPrivilege.h:
2469
2470 2018-03-25  Carlos Alberto Lopez Perez  <clopez@igalia.com>
2471
2472         WebProcess memory monitor: use %zu format specifier for size_t
2473         https://bugs.webkit.org/show_bug.cgi?id=183997
2474
2475         Reviewed by Michael Catanzaro.
2476
2477         usse %zu format specifier for size_t instead of %lu.
2478
2479         * wtf/MemoryPressureHandler.cpp:
2480         (WTF::MemoryPressureHandler::shrinkOrDie):
2481         (WTF::MemoryPressureHandler::measurementTimerFired):
2482
2483 2018-03-25  Tim Horton  <timothy_horton@apple.com>
2484
2485         Add and adopt ENABLE(AIRPLAY_PICKER)
2486         https://bugs.webkit.org/show_bug.cgi?id=183992
2487
2488         Reviewed by Daniel Bates.
2489
2490         * wtf/FeatureDefines.h:
2491
2492 2018-03-23  Tim Horton  <timothy_horton@apple.com>
2493
2494         Introduce and adopt HAVE(AUDIO_TOOLBOX_AUDIO_SESSION)
2495         https://bugs.webkit.org/show_bug.cgi?id=183954
2496         <rdar://problem/38808858>
2497
2498         Reviewed by Dan Bernstein.
2499
2500         * wtf/Platform.h:
2501
2502 2018-03-23  David Kilzer  <ddkilzer@apple.com>
2503
2504         Stop using dispatch_set_target_queue()
2505         <https://webkit.org/b/183908>
2506         <rdar://problem/33553533>
2507
2508         Reviewed by Daniel Bates.
2509
2510         * wtf/cocoa/WorkQueueCocoa.cpp:
2511         (WTF::WorkQueue::platformInitialize): Remove !HAVE(QOS_CLASSES)
2512         code path since it's never used now that HAVE(QOS_CLASSES) is
2513         equivalent to PLATFORM(COCOA) in <wtf/Platform.h>.
2514
2515 2018-03-23  Carlos Alberto Lopez Perez  <clopez@igalia.com>
2516
2517         WebProcess memory monitor thresholds should be better tuned for embedded systems.
2518         https://bugs.webkit.org/show_bug.cgi?id=183773
2519
2520         Reviewed by Yusuke Suzuki.
2521
2522         Take into account the total system RAM for the thresholds calculation.
2523
2524         For systems with more than 3GB the conservative and strict thresholds remain as they are,
2525         but for systems with less RAM the thresholds are dynamically configured as follows:
2526
2527         - Conservative threshold (release non critical memory) if WebProcess using more than 33% of the total RAM.
2528         - Strict threshold (release all possible memory) if WebProcess using more than 50% of the total RAM.
2529
2530         The Kill threshold is also modified. Now it is capped at 90% of the total RAM.
2531
2532         * wtf/MemoryPressureHandler.cpp:
2533         (WTF::thresholdForMemoryKillWithProcessState):
2534         (WTF::thresholdForPolicy):
2535         (WTF::MemoryPressureHandler::shrinkOrDie):
2536
2537 2018-03-23  Yusuke Suzuki  <utatane.tea@gmail.com>
2538
2539         [WTF] Add standard containers with FastAllocator specialization
2540         https://bugs.webkit.org/show_bug.cgi?id=183789
2541
2542         Reviewed by Darin Adler.
2543
2544         Sometimes we want standard containers due to various reasons.
2545         For example, WTF::HashMap lacks the ability to hold all the
2546         integer keys since it uses 0 for empty value and -1 for deleted
2547         value. However, using std::containers use std::allocator without
2548         specialization.
2549
2550         This patch introduces WTF::{StdMap, StdSet, StdList, StdUnorderedMap, StdUnorderedSet}.
2551         They are standard containers with FastAllocator specialization.
2552
2553         * WTF.xcodeproj/project.pbxproj:
2554         * wtf/CMakeLists.txt:
2555         * wtf/StdList.h: Copied from Source/JavaScriptCore/runtime/TypeLocationCache.h.
2556         * wtf/StdMap.h: Copied from Source/JavaScriptCore/runtime/TypeLocationCache.h.
2557         * wtf/StdSet.h: Copied from Source/JavaScriptCore/runtime/TypeLocationCache.h.
2558         * wtf/StdUnorderedMap.h: Copied from Source/JavaScriptCore/runtime/TypeLocationCache.h.
2559         * wtf/StdUnorderedSet.h: Copied from Source/JavaScriptCore/runtime/TypeLocationCache.h.
2560
2561 2018-03-22  Tim Horton  <timothy_horton@apple.com>
2562
2563         Adopt USE(OPENGL[_ES]) in more places
2564         https://bugs.webkit.org/show_bug.cgi?id=183882
2565         <rdar://problem/37912195>
2566
2567         Reviewed by Dan Bernstein.
2568
2569         * wtf/Platform.h:
2570
2571 2018-03-20  Brent Fulgham  <bfulgham@apple.com>
2572
2573         Create an assertion mechanism to ensure proper WebCore use in each WebKit Process
2574         https://bugs.webkit.org/show_bug.cgi?id=183806
2575         <rdar://problem/38694251>
2576
2577         Reviewed by Ryosuke Niwa.
2578
2579         Part of our security improvements involve better isolation between the different WebKit
2580         processes (UIProcess, WebContent, Networking, Storage, etc.).
2581
2582         We need an assertion language we can use to protect certain critical APIs and code paths
2583         against accidental misuse.
2584
2585         This patch adds a new enum type meant to represent different categories of program logic
2586         that we do not want used in the wrong process.
2587
2588         This first patch just creates these types and makes them available. New assertions using
2589         these values will be added as we complete our work ensuring proper process isolation.
2590
2591         In a method we want to protect, we can add an assertion describing the process privileges
2592         needed to execute the code. For example, for cookie access we might use this:
2593
2594             ASSERT(hasProcessPrivilege(ProcessPrivilege::CanAccessRawCookies);
2595
2596         At the launch of the UIProcess we would use this method to ensure all privileges are available:
2597
2598             setProcessPrivileges(allPrivileges());
2599
2600         In the network process, during platform initialization, we would use something like this:
2601
2602             setProcessPrivileges({ ProcessPrivilege::CanAccessRawCookies, ProcessPrivilege::CanAccessCredentials });
2603
2604         In the WebContent process, we would not set any privileges. We could just leave it as the
2605         default initialization, or use this:
2606
2607             setProcessPrivileges({ });
2608
2609         Later, when we attempt to execute the initial code, we would expect an assertion for the
2610         WebContent process, while Network and UIProcess pass the assertion.
2611
2612         * WTF.xcodeproj/project.pbxproj: Add new files.
2613         * wtf/CMakeLists.txt: Ditto.
2614         * wtf/ProcessPrivilege.cpp: Added.
2615         (WTF::processPrivileges):
2616         (WTF::setProcessPrivileges):
2617         (WTF::hasProcessPrivilege):
2618         * wtf/ProcessPrivilege.h: Added.
2619
2620 2018-03-20  Tim Horton  <timothy_horton@apple.com>
2621
2622         Introduce HAVE_MEDIA_PLAYER and HAVE_CORE_VIDEO
2623         https://bugs.webkit.org/show_bug.cgi?id=183803
2624         <rdar://problem/38690487>
2625
2626         Reviewed by Sam Weinig.
2627
2628         * wtf/Platform.h:
2629
2630 2018-03-20  Brian Burg  <bburg@apple.com>
2631
2632         SLEEP_THREAD_FOR_DEBUGGER should not use fancy number literals
2633         https://bugs.webkit.org/show_bug.cgi?id=183792
2634
2635         Reviewed by Timothy Hatcher.
2636
2637         * wtf/DebugUtilities.h: Remove the '_s' since this won't
2638         compile when included by files compiled as Objective-C++.
2639
2640 2018-03-20  Tim Horton  <timothy_horton@apple.com>
2641
2642         Add and adopt WK_PLATFORM_NAME and adjust default feature defines
2643         https://bugs.webkit.org/show_bug.cgi?id=183758
2644         <rdar://problem/38017644>
2645
2646         Reviewed by Dan Bernstein.
2647
2648         * wtf/FeatureDefines.h:
2649
2650 2018-03-19  Eric Carlson  <eric.carlson@apple.com>
2651
2652         [Extra zoom mode] Require fullscreen for video playback
2653         https://bugs.webkit.org/show_bug.cgi?id=183742
2654         <rdar://problem/38235862>
2655
2656         Reviewed by Jer Noble.
2657
2658         * wtf/Platform.h:
2659
2660 2018-03-15  Tim Horton  <timothy_horton@apple.com>
2661
2662         Avoid defining commonly-named system macros on all Cocoa platforms
2663         https://bugs.webkit.org/show_bug.cgi?id=183687
2664
2665         Reviewed by Dan Bernstein.
2666
2667         * wtf/Platform.h:
2668
2669 2018-03-14  Tim Horton  <timothy_horton@apple.com>
2670
2671         Fix the build after r229387
2672         https://bugs.webkit.org/show_bug.cgi?id=183639
2673         <rdar://problem/38448568>
2674
2675         Reviewed by Dean Jackson.
2676
2677         * wtf/Platform.h:
2678
2679 2018-03-13  Tim Horton  <timothy_horton@apple.com>
2680
2681         Add and adopt WK_ALTERNATE_FRAMEWORKS_DIR in WTF and bmalloc
2682         https://bugs.webkit.org/show_bug.cgi?id=183576
2683         <rdar://problem/38396766>
2684
2685         Reviewed by Dan Bernstein.
2686
2687         * Configurations/Base.xcconfig:
2688         * Configurations/CopyWTFHeaders.xcconfig:
2689         * Configurations/WTF.xcconfig:
2690         * Configurations/mbmalloc.xcconfig:
2691
2692 2018-03-13  Michael Catanzaro  <mcatanzaro@igalia.com>
2693
2694         Unreviewed, fix typo in a comment
2695
2696         * wtf/Platform.h:
2697
2698 2018-03-12  Don Olmstead  <don.olmstead@sony.com>
2699
2700         [CMake][Win] Forwarding headers of WTF and PAL are copied twice in Visual Studio builds
2701         https://bugs.webkit.org/show_bug.cgi?id=183240
2702
2703         Reviewed by Alex Christensen.
2704
2705         * wtf/CMakeLists.txt:
2706         * wtf/PlatformGTK.cmake:
2707         * wtf/PlatformJSCOnly.cmake:
2708         * wtf/PlatformMac.cmake:
2709         * wtf/PlatformWPE.cmake:
2710         * wtf/PlatformWin.cmake:
2711
2712 2018-03-12  Yusuke Suzuki  <utatane.tea@gmail.com>
2713
2714         Unreviewed, include time.h
2715         https://bugs.webkit.org/show_bug.cgi?id=183312
2716
2717         Attempt to fix oss-fuzz build.
2718
2719         * wtf/CurrentTime.cpp:
2720         * wtf/unix/CPUTimeUnix.cpp:
2721
2722 2018-03-12  Yoav Weiss  <yoav@yoav.ws>
2723
2724         Runtime flag for link prefetch and remove link subresource.
2725         https://bugs.webkit.org/show_bug.cgi?id=183540
2726
2727         Reviewed by Chris Dumez.
2728
2729         Remove the LINK_PREFETCH build time flag.
2730
2731         * wtf/FeatureDefines.h:
2732
2733 2018-03-12  Mark Lam  <mark.lam@apple.com>
2734
2735         Make a NativeFunction into a class to support pointer profiling.
2736         https://bugs.webkit.org/show_bug.cgi?id=183573
2737         <rdar://problem/38384697>
2738
2739         Reviewed by Filip Pizlo.
2740
2741         Changed Poisoned so that it can be used on tagged pointers as well.
2742
2743         * wtf/Poisoned.h:
2744
2745 2018-03-11  Filip Pizlo  <fpizlo@apple.com>
2746
2747         Split DirectArguments into JSValueOOB and JSValueStrict parts
2748         https://bugs.webkit.org/show_bug.cgi?id=183458
2749
2750         Reviewed by Yusuke Suzuki.
2751
2752         * wtf/MathExtras.h:
2753         (WTF::dynamicPoison): Deleted.
2754
2755 2018-03-11  Yusuke Suzuki  <utatane.tea@gmail.com>
2756
2757         [Win] Use SRWLOCK and CONDITION_VARIABLE to simplify implementation
2758         https://bugs.webkit.org/show_bug.cgi?id=183541
2759
2760         Reviewed by Darin Adler.
2761
2762         After Windows Vista, Windows offers SRWLOCK and CONDITION_VARIABLE.
2763         They can simplify the implementation of our WTF::Mutex and WTF::ThreadCondition.
2764
2765         C++ std::mutex and std::condition_variable uses std::chrono for their timed
2766         functions. Since std::chrono is not overflow-aware, we cannot reliably use
2767         this functionalities. This is why we still keep WTF::Mutex and WTF::ThreadCondition.
2768         They are used for ParkingLot.
2769
2770         * wtf/ThreadingPrimitives.h:
2771         * wtf/ThreadingWin.cpp:
2772         (WTF::Mutex::Mutex):
2773         (WTF::Mutex::~Mutex):
2774         (WTF::Mutex::lock):
2775         (WTF::Mutex::tryLock):
2776         (WTF::Mutex::unlock):
2777         (WTF::absoluteTimeToWaitTimeoutInterval):
2778         (WTF::ThreadCondition::ThreadCondition):
2779         (WTF::ThreadCondition::~ThreadCondition):
2780         (WTF::ThreadCondition::wait):
2781         (WTF::ThreadCondition::timedWait):
2782         (WTF::ThreadCondition::signal):
2783         (WTF::ThreadCondition::broadcast):
2784         (WTF::PlatformCondition::timedWait): Deleted.
2785         (WTF::PlatformCondition::signal): Deleted.
2786
2787 2018-03-10  Commit Queue  <commit-queue@webkit.org>
2788
2789         Unreviewed, rolling out r229436.
2790         https://bugs.webkit.org/show_bug.cgi?id=183542
2791
2792         seems to have regressed wasm compile times by 10% (Requested
2793         by pizlo-mbp on #webkit).
2794
2795         Reverted changeset:
2796
2797         "bmalloc mutex should be adaptive"
2798         https://bugs.webkit.org/show_bug.cgi?id=177839
2799         https://trac.webkit.org/changeset/229436
2800
2801 2018-03-09  Mark Lam  <mark.lam@apple.com>
2802
2803         [Re-landing] Prepare LLInt code to support pointer profiling.
2804         https://bugs.webkit.org/show_bug.cgi?id=183387
2805         <rdar://problem/38199678>
2806
2807         Reviewed by JF Bastien.
2808
2809         * wtf/Platform.h:
2810
2811 2018-03-08  Commit Queue  <commit-queue@webkit.org>
2812
2813         Unreviewed, rolling out r229354 and r229364.
2814         https://bugs.webkit.org/show_bug.cgi?id=183492
2815
2816         Breaks internal builds (Requested by ryanhaddad on #webkit).
2817
2818         Reverted changesets:
2819
2820         "Prepare LLInt code to support pointer profiling."
2821         https://bugs.webkit.org/show_bug.cgi?id=183387
2822         https://trac.webkit.org/changeset/229354
2823
2824         "Add support for ARM64E."
2825         https://bugs.webkit.org/show_bug.cgi?id=183398
2826         https://trac.webkit.org/changeset/229364
2827
2828 2018-03-08  Filip Pizlo  <fpizlo@apple.com>
2829
2830         bmalloc mutex should be adaptive
2831         https://bugs.webkit.org/show_bug.cgi?id=177839
2832
2833         Reviewed by Michael Saboff.
2834         
2835         Add some comments that I thought of while copy-pasting this code.
2836
2837         Reland after failing to reproduce the WasmBench crash that caused it to get rolled out. Maybe that fixed
2838         itself somehow?
2839
2840         * wtf/LockAlgorithmInlines.h:
2841         * wtf/WordLock.cpp:
2842         (WTF::WordLock::unlockSlow):
2843
2844 2018-03-08  Keith Miller  <keith_miller@apple.com>
2845
2846         Disable JIT on Cocoa 32-bit ARM.
2847         https://bugs.webkit.org/show_bug.cgi?id=183426
2848
2849         Reviewed by Michael Saboff.
2850
2851         * wtf/Platform.h:
2852
2853 2018-03-08  Keith Miller  <keith_miller@apple.com>
2854
2855         Use asm instead of __asm__ in WTFBreakpointTrap so MSVC builds
2856         https://bugs.webkit.org/show_bug.cgi?id=183465
2857
2858         Reviewed by Michael Saboff.
2859
2860         * wtf/Assertions.h:
2861
2862 2018-03-07  Filip Pizlo  <fpizlo@apple.com>
2863
2864         Make it possible to randomize register allocation
2865         https://bugs.webkit.org/show_bug.cgi?id=183416
2866
2867         Reviewed by Keith Miller.
2868
2869         * wtf/MathExtras.h:
2870         (WTF::shuffleVector):
2871
2872 2018-03-08  Yusuke Suzuki  <utatane.tea@gmail.com>
2873
2874         [Win] Use __debugbreak for WTFBreakpointTrap
2875         https://bugs.webkit.org/show_bug.cgi?id=183450
2876
2877         Reviewed by Mark Lam.
2878
2879         This patch adds WTFBreakpointTrap() implementation for MSVC by using
2880         __debugbreak. It fixes build failure in Windows due to the use of
2881         WTFBreakpointTrap().
2882
2883         * wtf/Assertions.h:
2884
2885 2018-03-08  Zan Dobersek  <zdobersek@igalia.com>
2886
2887         [GLib] RunLoop::wakeUp(): use a zero value instead of the monotonic time
2888         https://bugs.webkit.org/show_bug.cgi?id=183447
2889
2890         Reviewed by Carlos Garcia Campos.
2891
2892         * wtf/glib/RunLoopGLib.cpp:
2893         (WTF::RunLoop::wakeUp): Micro-optimize the wake-up schedule by using
2894         a zero value as the GSource ready time, instead of retrieving and using
2895         the current monotonic time.
2896
2897 2018-03-08  Tim Horton  <timothy_horton@apple.com>
2898
2899         Don't have Celestial in minimal simulator configuration
2900         https://bugs.webkit.org/show_bug.cgi?id=183432
2901         <rdar://problem/38252985>
2902
2903         Reviewed by Dan Bernstein.
2904
2905         * wtf/Platform.h:
2906
2907 2018-03-06  Yusuke Suzuki  <utatane.tea@gmail.com>
2908
2909         [WTF] Set canInitializeWithMemset = true if T is an integral type
2910         https://bugs.webkit.org/show_bug.cgi?id=183357
2911
2912         Reviewed by Darin Adler.
2913
2914         This patch set `canInitializeWithMemset = true` if T is an integral type.
2915         This can offer a chance to use memset if we use UniqueArray<T> where T is
2916         an integral type. We also rename VectorTypeOperations::initialize to
2917         VectorTypeOperations::initializeIfNonPOD, VectorTypeOperations::forceInitialize
2918         to VectorTypeOperations::initialize respectively.
2919
2920         * wtf/RefCountedArray.h:
2921         (WTF::RefCountedArray::RefCountedArray):
2922         * wtf/UniqueArray.h:
2923         * wtf/Vector.h:
2924         (WTF::VectorTypeOperations::initializeIfNonPOD):
2925         (WTF::VectorTypeOperations::initialize):
2926         (WTF::Vector::Vector):
2927         (WTF::Malloc>::resize):
2928         (WTF::Malloc>::grow):
2929         (WTF::VectorTypeOperations::forceInitialize): Deleted.
2930         * wtf/VectorTraits.h:
2931
2932 2018-03-07  Keith Miller  <keith_miller@apple.com>
2933
2934         Meta-program setupArguments and callOperation
2935         https://bugs.webkit.org/show_bug.cgi?id=183263
2936
2937         Rubber-stamped by Filip Pizlo.
2938
2939         Add a new function traits struct that provides interesting
2940         information about the provided function pointer. Right now it only
2941         provides information for function pointers, in theory we could
2942         also get it to work for other types.
2943
2944         * WTF.xcodeproj/project.pbxproj:
2945         * wtf/Bitmap.h:
2946         (WTF::WordType>::Bitmap):
2947         * wtf/CMakeLists.txt:
2948         * wtf/FunctionTraits.h: Added.
2949         (WTF::slotsForCCallArgument):
2950         (WTF::computeCCallSlots):
2951         (WTF::FunctionTraits<Result):
2952
2953 2018-03-07  Tim Horton  <timothy_horton@apple.com>
2954
2955         Shuffle around some feature flags for minimal simulator mode
2956         https://bugs.webkit.org/show_bug.cgi?id=183419
2957         <rdar://problem/37694987>
2958
2959         Reviewed by Beth Dakin.
2960
2961         * wtf/FeatureDefines.h:
2962         * wtf/Platform.h:
2963
2964 2018-03-06  Mark Lam  <mark.lam@apple.com>
2965
2966         Prepare LLInt code to support pointer profiling.
2967         https://bugs.webkit.org/show_bug.cgi?id=183387
2968         <rdar://problem/38199678>
2969
2970         Reviewed by JF Bastien.
2971
2972         * wtf/Platform.h:
2973
2974 2018-03-06  Commit Queue  <commit-queue@webkit.org>
2975
2976         Unreviewed, rolling out r229330.
2977         https://bugs.webkit.org/show_bug.cgi?id=183379
2978
2979         Broke some Apple internal code (Requested by ap on #webkit).
2980
2981         Reverted changeset:
2982
2983         "Remove unused crash hook functionality"
2984         https://bugs.webkit.org/show_bug.cgi?id=183369
2985         https://trac.webkit.org/changeset/229330
2986
2987 2018-03-06  Michael Catanzaro  <mcatanzaro@igalia.com>
2988
2989         Remove unused crash hook functionality
2990         https://bugs.webkit.org/show_bug.cgi?id=183369
2991
2992         Reviewed by Alexey Proskuryakov.
2993
2994         WTFSetCrashHook and WTFInstallReportBacktraceOnCrashHook are not used on any platforms and
2995         can be removed.
2996
2997         * wtf/Assertions.cpp:
2998         * wtf/Assertions.h:
2999
3000 2018-03-05  Yusuke Suzuki  <utatane.tea@gmail.com>
3001
3002         Fix std::make_unique / new[] using system malloc
3003         https://bugs.webkit.org/show_bug.cgi?id=182975
3004
3005         Reviewed by JF Bastien.
3006
3007         If we use `make_unique<char[]>(num)` or `new char[num]`, allocation is
3008         done by the system malloc instead of bmalloc. This patch fixes this issue
3009         by following three changes.
3010
3011         1. Introduce UniqueArray<T>. It allocates memory from FastMalloc. While C++
3012         array with `new` need to hold the size to call destructor correctly, our
3013         UniqueArray only supports type T which does not have a non trivial destructor.
3014         It reduces the allocation size since we do not need to track the size of the
3015         array compared to standard `new T[]`. This is basically usable if we want to
3016         have raw array which pointer won't be changed even if the container is moved.
3017         In addition, we also extend UniqueArray<T> for types which have non trivial
3018         destructors.
3019
3020         2. Use Vector<T> instead.
3021
3022         3. Annotate allocated types with MAKE_FAST_ALLOCATED. Since it introduces
3023         new[] and delete[] operators, make_unique<T[]>(num) will allocate memory
3024         from FastMalloc.
3025
3026         * WTF.xcodeproj/project.pbxproj:
3027         * wtf/Assertions.cpp:
3028         * wtf/CMakeLists.txt:
3029         * wtf/FastMalloc.h:
3030         (WTF::FastFree::operator() const):
3031         (WTF::FastFree<T::operator() const):
3032         * wtf/MallocPtr.h:
3033         (WTF::MallocPtr::operator bool const):
3034         * wtf/StackShot.h:
3035         (WTF::StackShot::StackShot):
3036         (WTF::StackShot::operator=):
3037         * wtf/SystemFree.h:
3038         (WTF::SystemFree<T::operator() const):
3039         * wtf/UniqueArray.h: Copied from Source/WebKit/Platform/win/LoggingWin.cpp.
3040         (WTF::makeUniqueArray):
3041         * wtf/Vector.h:
3042         (WTF::VectorTypeOperations::forceInitialize):
3043
3044 2018-03-05  Michael Saboff  <msaboff@apple.com>
3045
3046         Start using MAP_JIT for macOS
3047         https://bugs.webkit.org/show_bug.cgi?id=183353
3048
3049         Reviewed by Filip Pizlo.
3050
3051         Unify setting this flag for both iOS and macOS.
3052
3053         * wtf/OSAllocatorPosix.cpp:
3054         (WTF::OSAllocator::reserveAndCommit):
3055
3056 2018-03-05  Yusuke Suzuki  <utatane.tea@gmail.com>
3057
3058         Unreviewed, follow-up after r229209
3059         https://bugs.webkit.org/show_bug.cgi?id=183312
3060
3061         Add RELEASE_ASSERT to ensure success.
3062
3063         * wtf/cocoa/CPUTimeCocoa.mm:
3064         (WTF::CPUTime::forCurrentThread):
3065         * wtf/unix/CPUTimeUnix.cpp:
3066         (WTF::CPUTime::forCurrentThread):
3067         * wtf/win/CPUTimeWin.cpp:
3068         (WTF::CPUTime::forCurrentThread):
3069
3070 2018-03-05  Yusuke Suzuki  <utatane.tea@gmail.com>
3071
3072         Unreviewed, fix MediaTime test
3073         https://bugs.webkit.org/show_bug.cgi?id=183319
3074
3075         __builtin_xxx_overflow writes overflowed data into ResultType value even if overflow happens.
3076         This is different from the original CheckedArithmetic semantics.
3077
3078         * wtf/CheckedArithmetic.h:
3079
3080 2018-03-04  Yusuke Suzuki  <utatane.tea@gmail.com>
3081
3082         [WTF] Move currentCPUTime and sleep(Seconds) to CPUTime.h and Seconds.h respectively
3083         https://bugs.webkit.org/show_bug.cgi?id=183312
3084
3085         Reviewed by Mark Lam.
3086
3087         1. currentCPUTime to CPUTime.h. It is now defined as CPUTime::forCurrentThread.
3088         We also removes fallback implementation for currentCPUTime since (1) that implementation
3089         is wrong and (2) no environments we support needs this.
3090
3091         2. sleep(Seconds) to Seconds.h. Since sleep(MonotonicTime) and sleep(WallTime) are defined
3092         in MonotonicTime.h and WallTime.h, this code move is natural.
3093
3094         3. Remove wtf/CurrentTime.h since nothing is defined now. But we keep CurrentTime.cpp to
3095         consolidate various time-source implementations in one place.
3096
3097         * WTF.xcodeproj/project.pbxproj:
3098         * benchmarks/ConditionSpeedTest.cpp:
3099         * benchmarks/LockFairnessTest.cpp:
3100         * benchmarks/LockSpeedTest.cpp:
3101         * wtf/CMakeLists.txt:
3102         * wtf/CPUTime.h:
3103         * wtf/CurrentTime.cpp:
3104         (WTF::currentCPUTime): Deleted.
3105         (WTF::sleep): Deleted.
3106         * wtf/CurrentTime.h: Removed.
3107         * wtf/DateMath.cpp:
3108         * wtf/DebugUtilities.h:
3109         * wtf/FastMalloc.cpp:
3110         * wtf/MainThread.cpp:
3111         * wtf/MonotonicTime.cpp:
3112         * wtf/ParkingLot.cpp:
3113         * wtf/Seconds.cpp:
3114         (WTF::sleep):
3115         * wtf/Seconds.h:
3116         * wtf/StackShotProfiler.h:
3117         * wtf/Stopwatch.h:
3118         * wtf/ThreadingPthreads.cpp:
3119         * wtf/ThreadingWin.cpp:
3120         * wtf/cocoa/CPUTimeCocoa.mm:
3121         (WTF::CPUTime::forCurrentThread):
3122         * wtf/cocoa/MemoryPressureHandlerCocoa.mm:
3123         * wtf/linux/MemoryPressureHandlerLinux.cpp:
3124         * wtf/unix/CPUTimeUnix.cpp:
3125         (WTF::CPUTime::forCurrentThread):
3126         * wtf/win/CPUTimeWin.cpp:
3127         (WTF::CPUTime::forCurrentThread):
3128         * wtf/win/RunLoopWin.cpp:
3129
3130 2018-03-04  Yusuke Suzuki  <utatane.tea@gmail.com>
3131
3132         [WTF] Use __builtin_xxx_overflow for CheckedArithmetic
3133         https://bugs.webkit.org/show_bug.cgi?id=183319
3134
3135         Reviewed by Darin Adler.
3136
3137         GCC and Clang has the builtins for arithmetic operations with overflow flags.
3138         CheckedArithmetic operations can be done with this builtins. Since the compiler
3139         can use overflow flags, potentially this is more efficient. CheckedArithmetic
3140         already has TestWebKitAPI tests and we ensured the tests pass.
3141
3142         * wtf/CheckedArithmetic.h:
3143
3144 2018-03-02  Yusuke Suzuki  <utatane.tea@gmail.com>
3145
3146         [WTF] Remove RunLoop and RunLoop::Timer's interface using double as seconds
3147         https://bugs.webkit.org/show_bug.cgi?id=183293
3148
3149         Reviewed by Alex Christensen.
3150
3151         This patch mainly drops startRepeating(double) and startOneShot(double) interfaces.
3152         Use startRepeating(Seconds) and startOneShot(Seconds) instead.
3153
3154         * wtf/MemoryPressureHandler.cpp:
3155         (WTF::MemoryPressureHandler::setShouldUsePeriodicMemoryMonitor):
3156         * wtf/RunLoop.h:
3157         (WTF::RunLoop::TimerBase::startRepeating):
3158         (WTF::RunLoop::TimerBase::startOneShot):
3159         (WTF::RunLoop::TimerBase::startInternal):
3160         * wtf/RunLoopTimer.h:
3161         * wtf/RunLoopTimerCF.cpp:
3162         (WTF::RunLoopTimerBase::start):
3163         * wtf/cf/RunLoopCF.cpp:
3164         (WTF::RunLoop::runForDuration):
3165         (WTF::RunLoop::TimerBase::start):
3166         * wtf/generic/RunLoopGeneric.cpp:
3167         (WTF::RunLoop::TimerBase::start):
3168         * wtf/glib/RunLoopGLib.cpp:
3169         (WTF::RunLoop::TimerBase::start):
3170         * wtf/win/MemoryPressureHandlerWin.cpp:
3171         (WTF::MemoryPressureHandler::install):
3172         * wtf/win/RunLoopWin.cpp:
3173         (WTF::RunLoop::TimerBase::start):
3174
3175 2018-03-02  Christopher Reid  <chris.reid@sony.com>
3176
3177         Build fix after r229174
3178         https://bugs.webkit.org/show_bug.cgi?id=183301
3179
3180         Reviewed by Alex Christensen.
3181
3182         Updating MemoryPressureHandler::holdOff to use Seconds instead of unsigned.
3183
3184         * wtf/MemoryPressureHandler.cpp:
3185
3186 2018-03-02  Tim Horton  <timothy_horton@apple.com>
3187
3188         Make it possible to build for iOS without Celestial
3189         https://bugs.webkit.org/show_bug.cgi?id=183295
3190         <rdar://problem/38074468>
3191
3192         Reviewed by Dan Bernstein.
3193
3194         * wtf/Platform.h:
3195
3196 2018-03-02  Tim Horton  <timothy_horton@apple.com>
3197
3198         Make it possible to disable WKPDFView
3199         https://bugs.webkit.org/show_bug.cgi?id=183281
3200         <rdar://problem/38060815>
3201
3202         Reviewed by Dan Bates.
3203
3204         * wtf/FeatureDefines.h:
3205
3206 2018-03-02  Yusuke Suzuki  <utatane.tea@gmail.com>
3207
3208         [JSC] Annotate more classes with WTF_MAKE_FAST_ALLOCATED
3209         https://bugs.webkit.org/show_bug.cgi?id=183279
3210
3211         Reviewed by JF Bastien.
3212
3213         * wtf/SimpleStats.h:
3214         * wtf/ThreadGroup.h:
3215
3216 2018-03-01  Yusuke Suzuki  <utatane.tea@gmail.com>
3217
3218         Remove monotonicallyIncreasingTime
3219         https://bugs.webkit.org/show_bug.cgi?id=182911
3220
3221         Reviewed by Michael Catanzaro.
3222
3223         This patch drops monotonicallyIncreasingTime and monotonicallyIncreasingTimeMS.
3224         We have MonotonicTime API instead. This offers strongly typed MonotonicTime,
3225         Seconds etc. This reduces the chance of bugs mixing doubles which represent milliseconds
3226         and seconds.
3227
3228         Large part of this patch is mechanical one: replacing monotonicallyIncreasingTime with
3229         MonotonicTime, using MonotonicTime and Seconds instead of raw doubles.
3230
3231         But this patch actually finds some bugs (but it is a bit difficult to show it as a test).
3232         One is mixing media time (CACurrentMediaTime()) and MonotonicTime. Basically they are
3233         super close because both uses mach_absolute_time(). But they would be slightly different.
3234         So we should not mix them.
3235
3236         The second bug is GraphicsLayer::suspendAnimations(double). While CA ports (Apple, AppleWin,
3237         iOS etc.) use this double as MonotonicTime, GTK and WPE use this double as Seconds (timeOffset).
3238         This patch fixes it and now the signature becomes GraphicsLayer::suspendAnimations(MonotonicTime).
3239
3240         In this patch, we still uses bunch of double for Seconds. But fixing them at this patch increases
3241         the size of this larger and larger. So some of them remains double. This should be fixed in
3242         subsequent patches.
3243
3244         * benchmarks/ConditionSpeedTest.cpp:
3245         * benchmarks/LockSpeedTest.cpp:
3246         * wtf/CurrentTime.cpp:
3247         (WTF::MonotonicTime::now):
3248         (WTF::monotonicallyIncreasingTime): Deleted.
3249         * wtf/CurrentTime.h:
3250         (WTF::monotonicallyIncreasingTimeMS): Deleted.
3251         * wtf/MemoryPressureHandler.h:
3252         * wtf/MonotonicTime.cpp:
3253         (WTF::MonotonicTime::now): Deleted.
3254         * wtf/MonotonicTime.h:
3255         * wtf/ParkingLot.cpp:
3256         * wtf/Seconds.h:
3257         (WTF::Seconds::nan):
3258         * wtf/Stopwatch.h:
3259         (WTF::Stopwatch::reset):
3260         (WTF::Stopwatch::start):
3261         (WTF::Stopwatch::stop):
3262         (WTF::Stopwatch::elapsedTime):
3263         (WTF::Stopwatch::elapsedTimeSince):
3264         * wtf/cocoa/MemoryPressureHandlerCocoa.mm:
3265         (WTF::MemoryPressureHandler::holdOff):
3266         (WTF::MemoryPressureHandler::respondToMemoryPressure):
3267         * wtf/linux/MemoryPressureHandlerLinux.cpp:
3268         (WTF::MemoryPressureHandler::EventFDPoller::EventFDPoller):
3269         (WTF::MemoryPressureHandler::holdOff):
3270         (WTF::MemoryPressureHandler::respondToMemoryPressure):
3271         * wtf/win/MemoryPressureHandlerWin.cpp:
3272         (WTF::MemoryPressureHandler::holdOff):
3273
3274 2018-03-02  Dan Bernstein  <mitz@apple.com>
3275
3276         Safari uses WebContent.Development when loading injected bundle embedded in its app bundle
3277         https://bugs.webkit.org/show_bug.cgi?id=183275
3278
3279         Reviewed by Tim Horton.
3280
3281         * wtf/spi/cocoa/SecuritySPI.h: Declared SecTaskGetCodeSignStatus.
3282
3283 2018-02-27  Karlen Simonyan  <szkarlen@gmail.com>
3284
3285         [Win64] JSCOnly compile error using VS2017 and cmake
3286         https://bugs.webkit.org/show_bug.cgi?id=183176
3287
3288         Reviewed by Alex Christensen.
3289
3290         * wtf/PlatformJSCOnly.cmake:
3291
3292 2018-02-26  Carlos Garcia Campos  <cgarcia@igalia.com>
3293
3294         [GStreamer] User current executable name instead of g_get_prgname() for gst_init
3295         https://bugs.webkit.org/show_bug.cgi?id=183119
3296
3297         Reviewed by Philippe Normand.
3298
3299         Add getCurrentExecutableName() helper function to get the name of the current executable.
3300
3301         * wtf/glib/GLibUtilities.cpp:
3302         (getCurrentExecutableName): Get the basename of getCurrentExecutablePath() falling back to g_get_prgname().
3303         * wtf/glib/GLibUtilities.h:
3304
3305 2018-02-23  John Wilander  <wilander@apple.com>
3306
3307         Introduce ITP debug logging as an opt-in developer feature
3308         https://bugs.webkit.org/show_bug.cgi?id=183065
3309         <rdar://problem/37803761>
3310
3311         Reviewed by Brent Fulgham.
3312
3313         * wtf/Assertions.h:
3314             Introduces RELEASE_LOG_INFO() and RELEASE_LOG_INFO_IF().
3315
3316 2018-02-23  Fujii Hironori  <Hironori.Fujii@sony.com>
3317
3318         warning: unused variable 'InitialBufferSize' in Assertions.cpp
3319         https://bugs.webkit.org/show_bug.cgi?id=183076
3320
3321         Reviewed by Yusuke Suzuki.
3322
3323         * wtf/Assertions.cpp: Moved the definition of InitialBufferSize to inside #if.
3324
3325 2018-02-22  Yusuke Suzuki  <utatane.tea@gmail.com>
3326
3327         Remove currentTime() / currentTimeMS()
3328         https://bugs.webkit.org/show_bug.cgi?id=183052
3329
3330         Reviewed by Mark Lam.
3331
3332         This patch removes WTF::currentTime() and WTF::currentTimeMS().
3333         We have fancy WallTime APIs. It has strong types like WallTime and Seconds,
3334         and this reduces the chance of bugs mixing doubles which represent milliseconds
3335         and seconds.
3336
3337         * wtf/Condition.h:
3338         * wtf/CurrentTime.cpp:
3339         (WTF::currentTime):
3340         (WTF::WallTime::now):
3341         * wtf/CurrentTime.h:
3342         (WTF::currentTimeMS): Deleted.
3343         * wtf/DateMath.h:
3344         (WTF::jsCurrentTime):
3345         * wtf/ParkingLot.cpp:
3346         (WTF::ParkingLot::parkConditionallyImpl):
3347         * wtf/ThreadingPrimitives.h:
3348         * wtf/ThreadingPthreads.cpp:
3349         (WTF::ThreadCondition::timedWait):
3350         * wtf/ThreadingWin.cpp:
3351         (WTF::ThreadCondition::timedWait):
3352         (WTF::absoluteTimeToWaitTimeoutInterval):
3353         * wtf/WallTime.cpp:
3354         (WTF::WallTime::now): Deleted.
3355         * wtf/WallTime.h:
3356
3357 2018-02-22  Yusuke Suzuki  <utatane.tea@gmail.com>
3358
3359         Remove sleep(double) and sleepMS(double) interfaces
3360         https://bugs.webkit.org/show_bug.cgi?id=183038
3361
3362         Reviewed by Mark Lam.
3363
3364         This patch removes sleep(double) and sleepMS(double) interfaces.
3365         We can just use sleep(Seconds) instead.
3366
3367         * benchmarks/LockFairnessTest.cpp:
3368         * benchmarks/LockSpeedTest.cpp:
3369         * wtf/CurrentTime.cpp:
3370         (WTF::sleep):
3371         * wtf/CurrentTime.h:
3372         (WTF::sleepMS): Deleted.
3373         * wtf/DebugUtilities.h:
3374         * wtf/Seconds.cpp:
3375         (WTF::sleep): Deleted.
3376         * wtf/Seconds.h:
3377         * wtf/StackShotProfiler.h:
3378
3379 2018-02-21  Don Olmstead  <don.olmstead@sony.com>
3380
3381         [CMake][Win] Use cmakeconfig.h rather than config.h and Platform.h
3382         https://bugs.webkit.org/show_bug.cgi?id=182883
3383
3384         Reviewed by Per Arne Vollan.
3385
3386         * wtf/Platform.h:
3387
3388 2018-02-14  Brian Burg  <bburg@apple.com>
3389
3390         Web Automation: combine session commands to resize and move top-level browsing contexts
3391         https://bugs.webkit.org/show_bug.cgi?id=182749
3392         <rdar://problem/37515170>
3393
3394         Reviewed by Andy Estes.
3395
3396         * wtf/JSONValues.h: add a getDouble() implementation that returns a std::optional<T>
3397         rather than using an out-parameter. I'd like to move more code to this style.
3398
3399 2018-02-20  Tim Horton  <timothy_horton@apple.com>
3400
3401         Introduce HAVE(IOSURFACE_ACCELERATOR)
3402         https://bugs.webkit.org/show_bug.cgi?id=182955
3403         <rdar://problem/37699510>
3404
3405         Reviewed by Sam Weinig.
3406
3407         * wtf/Platform.h:
3408
3409 2018-02-20  Chris Dumez  <cdumez@apple.com>
3410
3411         Provisional load may get committed before receiving the decidePolicyForNavigationResponse response
3412         https://bugs.webkit.org/show_bug.cgi?id=182720
3413         <rdar://problem/37515204>
3414
3415         Reviewed by Alex Christensen.
3416
3417         Add convenience CompletionHandlerCallingScope class which calls its CompletionHandler
3418         when destroyed, and provides a release() methods to manually call the completionHandler.
3419
3420         * wtf/CompletionHandler.h:
3421         (WTF::CompletionHandlerCallingScope::CompletionHandlerCallingScope):
3422         (WTF::CompletionHandlerCallingScope::~CompletionHandlerCallingScope):
3423         (WTF::CompletionHandlerCallingScope::CompletionHandler<void):
3424
3425 2018-02-20  Tim Horton  <timothy_horton@apple.com>
3426
3427         Always inline soft linking functions to work around a clang bug
3428         https://bugs.webkit.org/show_bug.cgi?id=182985
3429         <rdar://problem/37587017>
3430
3431         Reviewed by Dan Bernstein.
3432
3433         * wtf/cocoa/SoftLinking.h:
3434         In some cases, clang will emit a weak extern symbol for a re-declared
3435         symbol that has availability attributes on it. To avoid this, always
3436         inline to avoid emitting a second symbol.
3437
3438 2018-02-16  Dean Jackson  <dino@apple.com>
3439
3440         Use OPENGL macros to be more clear about which OpenGL/ES WebGL uses on Cocoa
3441         https://bugs.webkit.org/show_bug.cgi?id=182894
3442
3443         Reviewed by Tim Horton.
3444
3445         If we're on a Cocoa platform, define USE_OPENGL/USE_OPENGL_ES
3446         depending on what we're actually going to use. In this case,
3447         they are exclusive, but it doesn't appear that other platforms
3448         use this approach. Ultimately the idea is to be more concerned
3449         with the type of OpenGL we're using, rather than the platform.
3450
3451         * wtf/Platform.h: Define USE_OPENGL(_ES) for PLATFORM(COCOA).
3452
3453 2018-02-16  Filip Pizlo  <fpizlo@apple.com>
3454
3455         Unreviewed, roll out r228306 (custom memcpy/memset) because the bots say that it was not a
3456         progression.
3457
3458         * WTF.xcodeproj/project.pbxproj:
3459         * wtf/BitVector.cpp:
3460         (WTF::BitVector::setSlow):
3461         (WTF::BitVector::clearAll):
3462         (WTF::BitVector::resizeOutOfLine):
3463         * wtf/BitVector.h:
3464         (WTF::BitVector::OutOfLineBits::numWords const):
3465         (WTF::BitVector::wordCount): Deleted.
3466         * wtf/CMakeLists.txt:
3467         * wtf/ConcurrentBuffer.h:
3468         (WTF::ConcurrentBuffer::growExact):
3469         * wtf/FastBitVector.h:
3470         (WTF::FastBitVectorWordOwner::operator=):
3471         (WTF::FastBitVectorWordOwner::clearAll):
3472         (WTF::FastBitVectorWordOwner::set):
3473         * wtf/FastCopy.h: Removed.
3474         * wtf/FastMalloc.cpp:
3475         (WTF::fastZeroedMalloc):
3476         (WTF::fastStrDup):
3477         (WTF::tryFastZeroedMalloc):
3478         * wtf/FastZeroFill.h: Removed.
3479         * wtf/OSAllocator.h:
3480         (WTF::OSAllocator::reallocateCommitted):
3481         * wtf/StringPrintStream.cpp:
3482         (WTF::StringPrintStream::increaseSize):
3483         * wtf/Vector.h:
3484         * wtf/persistence/PersistentDecoder.cpp:
3485         (WTF::Persistence::Decoder::decodeFixedLengthData):
3486         * wtf/persistence/PersistentEncoder.cpp:
3487         (WTF::Persistence::Encoder::encodeFixedLengthData):
3488         * wtf/text/CString.cpp:
3489         (WTF::CString::init):
3490         (WTF::CString::copyBufferIfNeeded):
3491         * wtf/text/LineBreakIteratorPoolICU.h:
3492         (WTF::LineBreakIteratorPool::makeLocaleWithBreakKeyword):
3493         * wtf/text/StringBuilder.cpp:
3494         (WTF::StringBuilder::allocateBuffer):
3495         (WTF::StringBuilder::append):
3496         * wtf/text/StringConcatenate.h:
3497         * wtf/text/StringImpl.h:
3498         (WTF::StringImpl::copyCharacters):
3499         * wtf/text/icu/UTextProvider.cpp:
3500         (WTF::uTextCloneImpl):
3501         * wtf/text/icu/UTextProviderLatin1.cpp:
3502         (WTF::uTextLatin1Clone):
3503         (WTF::openLatin1UTextProvider):
3504         * wtf/threads/Signals.cpp:
3505
3506 2018-02-16  Keith Miller  <keith_miller@apple.com>
3507
3508         Remove unused line from Platform.h
3509         https://bugs.webkit.org/show_bug.cgi?id=182871
3510
3511         Reviewed by Mark Lam.
3512
3513         * wtf/Platform.h:
3514
3515 2018-02-14  Michael Saboff  <msaboff@apple.com>
3516
3517         REGRESSION(225695) : com.apple.WebKit.WebContent at com.apple.JavaScriptCore: JSC::RegExp::match + 630 :: stack overflow
3518         https://bugs.webkit.org/show_bug.cgi?id=182705
3519
3520         Reviewed by Mark Lam.
3521
3522         Moved the setting of ENABLE_YARR_JIT_ALL_PARENS_EXPRESSIONS to Platform.h since more than just the YARR
3523         code needs to know if that feature is enabled.
3524
3525         * wtf/Platform.h:
3526
3527 2018-02-12  Mark Lam  <mark.lam@apple.com>
3528
3529         Add more support for pointer preparations.
3530         https://bugs.webkit.org/show_bug.cgi?id=182703
3531         <rdar://problem/37469451>
3532
3533         Reviewed by Saam Barati.
3534
3535         * wtf/PointerPreparations.h:
3536
3537 2018-02-09  Ross Kirsling  <ross.kirsling@sony.com>
3538
3539         Use REQUEST_ANIMATION_FRAME_DISPLAY_MONITOR on any non-Windows port.
3540         https://bugs.webkit.org/show_bug.cgi?id=182623
3541
3542         Reviewed by Alex Christensen.
3543
3544         * wtf/Platform.h:
3545         Simplify #if.
3546
3547 2018-02-08  Filip Pizlo  <fpizlo@apple.com>
3548
3549         Experiment with alternative implementation of memcpy/memset
3550         https://bugs.webkit.org/show_bug.cgi?id=182563
3551
3552         Reviewed by Michael Saboff and Mark Lam.
3553         
3554         Adds a faster x86_64-specific implementation of memcpy and memset. These versions go by
3555         different names than memcpy/memset and have a different API:
3556         
3557         WTF::fastCopy<T>(T* dst, T* src, size_t N): copies N values of type T from src to dst.
3558         WTF::fastZeroFill(T* dst, size_T N): writes N * sizeof(T) zeroes to dst.
3559         
3560         There are also *Bytes variants that take void* for dst and src and size_t numBytes. Those are
3561         most appropriate in places where the code is already computing bytes.
3562         
3563         These will just call memcpy/memset on platforms where the optimized versions are not supported.
3564         
3565         These new functions are not known to the compiler to be memcpy/memset. This has the effect that
3566         the compiler will not try to replace them with anything else. This could be good or bad:
3567         
3568         - It's *good* if the size is *not known* at compile time. In that case, by my benchmarks, these
3569           versions are faster than either the memcpy/memset call or whatever else the compiler could
3570           emit. This is because of a combination of inlining and the algorithm itself (see below).
3571         
3572         - It's *bad* if the size is *known* at compile time. In that case, the compiler could
3573           potentially emit a fully unrolled memcpy/memset. That might not happen if the size is large
3574           (even if it's known), but in this patch I avoid replacing any memcpy/memset calls when the
3575           size is a constant. In particular, this totally avoids the call overhead -- if the size is
3576           small, then the compiler will emit a nice inlined copy or set. If the size is large, then the
3577           most optimal thing to do is emit the shortest piece of code possible, and that's a call to
3578           memcpy/memset.
3579         
3580         It's unfortunate that you have to choose between them on your own. One way to avoid that might
3581         have been to override the memcpy/memset symbols, so that the compiler can still do its
3582         reasoning. But that's not quite right, since then we would lose inlining in the unknonw-size
3583         case. Also, it's possible that for some unknown-size cases, the compiler could choose to emit
3584         something on its own because it might think that some property of aliasing or alignment could
3585         help it. I think it's a bit better to use our own copy/set implementations even in those cases.
3586         Another way that I tried avoiding this is to detect inside fastCopy/fastZeroFill if the size is
3587         constant. But there is no good way to do that in C++. There is a builtin for doing that inside a
3588         macro, but that feels janky, so I didn't want to do it in this patch.
3589         
3590         The reason why these new fastCopy/fastZeroFill functions are faster is that:
3591         
3592         - They can be inlined. There is no function call. Only a few registers get clobbered. So, the
3593           impact on the quality of the code surrounding the memcpy/memset is smaller.
3594         
3595         - They use type information to select the implementation. For sizes that are multiples of 2, 4,
3596           or 8, the resulting code performs dramatically better on small arrays than memcpy because it
3597           uses fewer cycles. The difference is greatest for 2 and 4 byte types, since memcpy usually
3598           handles small arrays by tiering from a 8-byte word copy loop to a byte copy loop. So, for 2
3599           or 4 byte arrays, we use an algorithm that tiers from 8-byte word down to a 2-byte or 4-byte
3600           (depending on type) copy loop. So, for example, when copying a 16-bit string that has 1, 2, or
3601           3 characters, this means doing 1, 2, or 3 word copies rather than 2, 4, or 6 byte copies. For
3602           8-byte types, the resulting savings are mainly that there is no check to see if a tier-down to
3603           the byte-copy loop is needed -- so really that means reducing code size. 1-byte types don't
3604           get this inherent advantage over memcpy/memset, but they still benefit from all of the other
3605           advantages of these functions. Of course, this advantage isn't inherent to our approach. The
3606           compiler could also notice that the arguments to memcpy/memset have some alignment properties.
3607           It could do it even more generally than we do - for example a copy over bytes where the size
3608           is a multiple of 4 can use the 4-byte word algorithm. But based on my tests, the compiler does
3609           not do this (even though it does other things, like turn a memset call with a zero value
3610           argument into a bzero call).
3611         
3612         - They use a very nicely written word copy/set loop for small arrays. I spent a lot of time
3613           getting the assembly just right. When we use memcpy/memset, sometimes we would optimize the
3614           call by having a fast path word copy loop for small sizes. That's not necessary with this
3615           implementation, since the assembly copy loop gets inlined.
3616         
3617         - They use `rep movs` or `rep stos` for copies of 200 bytes or more. This decision benchmarks
3618           poorly on every synthetic memcpy/memset benchmark I have built, and so unsurprisingly, it's
3619           not what system memcpy/memset does. Most system memcpy/memset implementations end up doing
3620           some SSE for medium-sized copies,. However, I previously found that this decision is bad for
3621           one of the memset calls in GC (see clearArray() and friends in ArrayConventions.h|cpp) - I was
3622           able to make the overhead of that call virtually disappear by doing `rep stos` more
3623           aggressively. The theory behind this change is that it's not just the GC that prefers smaller
3624           `rep` threshold and no SSE. I am betting that `rep`ing more is better when the heap gets
3625           chaotic and the data being copied is used in interesting ways -- hence, synthetic
3626           memcpy/memset benchmarks think it's bad (they don't do enough chaotic memory accesses) while
3627           it's good for real-world uses. Also, when I previously worked on JVMs, I had found that the
3628           best memcpy/memset heuristics when dealing with GC'd objects in a crazy heap were different
3629           than any memcpy/memset in any system library.
3630         
3631         This appears to be a 0.9% speed-up on PLT. I'm not sure if it's more because of the inlining or
3632         the `rep`. I think it's both. I'll leave figuring out the exact tuning for future patches.
3633
3634         * wtf/BitVector.cpp:
3635         (WTF::BitVector::setSlow):
3636         (WTF::BitVector::clearAll):
3637         (WTF::BitVector::resizeOutOfLine):
3638         * wtf/BitVector.h:
3639         (WTF::BitVector::wordCount):
3640         (WTF::BitVector::OutOfLineBits::numWords const):
3641         * wtf/ConcurrentBuffer.h:
3642         (WTF::ConcurrentBuffer::growExact):
3643         * wtf/FastBitVector.h:
3644         (WTF::FastBitVectorWordOwner::operator=):
3645         (WTF::FastBitVectorWordOwner::clearAll):
3646         (WTF::FastBitVectorWordOwner::set):
3647         * wtf/FastCopy.h: Added.
3648         (WTF::fastCopy):
3649         (WTF::fastCopyBytes):
3650         * wtf/FastMalloc.cpp:
3651         (WTF::fastZeroedMalloc):
3652         (WTF::fastStrDup):
3653         (WTF::tryFastZeroedMalloc):
3654         * wtf/FastZeroFill.h: Added.
3655         (WTF::fastZeroFill):
3656         (WTF::fastZeroFillBytes):
3657         * wtf/MD5.cpp:
3658         * wtf/OSAllocator.h:
3659         (WTF::OSAllocator::reallocateCommitted):
3660         * wtf/StringPrintStream.cpp:
3661         (WTF::StringPrintStream::increaseSize):
3662         * wtf/Vector.h:
3663         * wtf/persistence/PersistentDecoder.cpp:
3664         (WTF::Persistence::Decoder::decodeFixedLengthData):
3665         * wtf/persistence/PersistentEncoder.cpp:
3666         (WTF::Persistence::Encoder::encodeFixedLengthData):
3667         * wtf/text/CString.cpp:
3668         (WTF::CString::init):
3669         (WTF::CString::copyBufferIfNeeded):
3670         * wtf/text/LineBreakIteratorPoolICU.h:
3671         (WTF::LineBreakIteratorPool::makeLocaleWithBreakKeyword):
3672         * wtf/text/StringBuilder.cpp:
3673         (WTF::StringBuilder::allocateBuffer):
3674         (WTF::StringBuilder::append):
3675         * wtf/text/StringConcatenate.h:
3676         * wtf/text/StringImpl.h:
3677         (WTF::StringImpl::copyCharacters):
3678         * wtf/text/icu/UTextProvider.cpp:
3679         (WTF::uTextCloneImpl):
3680         * wtf/text/icu/UTextProviderLatin1.cpp:
3681         (WTF::uTextLatin1Clone):
3682         (WTF::openLatin1UTextProvider):
3683         * wtf/threads/Signals.cpp:
3684
3685 2018-02-06  Darin Adler  <darin@apple.com>
3686
3687         Event improvements
3688         https://bugs.webkit.org/show_bug.cgi?id=179591
3689
3690         Reviewed by Chris Dumez.
3691
3692         * wtf/text/OrdinalNumber.h: Added som missing const.
3693         * wtf/text/TextPosition.h: Ditto.
3694
3695 2018-02-06  Fujii Hironori  <Hironori.Fujii@sony.com>
3696
3697         [GTK] fast/events/message-channel-gc-4.html is flaky
3698         https://bugs.webkit.org/show_bug.cgi?id=182104
3699
3700         Reviewed by Carlos Garcia Campos.
3701
3702         Revert r228001 because RunLoop::current isn't called in GC thread
3703         anymore since r228152.
3704
3705         * wtf/RunLoop.cpp:
3706         (WTF::RunLoop::current): Removed a template argument
3707         CanBeGCThread::True of ThreadSpecific.
3708
3709 2018-02-05  Konstantin Tokarev  <annulen@yandex.ru>
3710
3711         [cmake] Fix build with ICU configured without collation support
3712         https://bugs.webkit.org/show_bug.cgi?id=182498
3713
3714         Reviewed by Alex Christensen.
3715
3716         WebKit has CollatorDefault.cpp providing necessary stubs when
3717         UCONFIG_NO_COLLATION is defined, however it is not included in cmake
3718         file list.
3719
3720         * wtf/CMakeLists.txt:
3721
3722 2018-02-05  Alicia Boya García  <aboya@igalia.com>
3723
3724         Fix bug in MediaTime comparison for negative values with different scale.
3725         https://bugs.webkit.org/show_bug.cgi?id=182433
3726
3727         Reviewed by Xabier Rodriguez-Calvar.
3728
3729         * wtf/MediaTime.cpp:
3730         (WTF::MediaTime::compare const):
3731
3732 2018-02-02  Mark Lam  <mark.lam@apple.com>
3733
3734         More ARM64_32 fixes.
3735         https://bugs.webkit.org/show_bug.cgi?id=182441
3736         <rdar://problem/37162310>
3737
3738         Reviewed by Dan Bernstein.
3739
3740         My previous speculative ARM64_32 build fix in copyLCharsFromUCharSource() was wrong.
3741         I've now fixed it to choose the default implementation case instead of the ARM64
3742         case if the target is ARM64_32.
3743
3744         * wtf/text/ASCIIFastPath.h:
3745         (WTF::copyLCharsFromUCharSource):
3746
3747 2018-02-02  Konstantin Tokarev  <annulen@yandex.ru>
3748
3749         Unreviewed build fix for JSCOnly on macOS after r227845.
3750         https://bugs.webkit.org/show_bug.cgi?id=182274
3751
3752         Reverted part of r227845 that moved CommonCryptoSPI.h
3753         handling into PlatformMac, because it is needed for all
3754         ports which can be built on macOS.
3755
3756         * wtf/CMakeLists.txt:
3757         * wtf/PlatformMac.cmake:
3758
3759 2018-02-02  Fujii Hironori  <Hironori.Fujii@sony.com>
3760
3761         [GTK] fast/events/message-channel-gc-4.html is flaky
3762         https://bugs.webkit.org/show_bug.cgi?id=182104
3763
3764         Reviewed by Carlos Garcia Campos.
3765
3766         RELEASE_ASSERT of ThreadSpecific::set fails because
3767         RunLoop::current is called even in GC thread since r227275.
3768
3769         * wtf/RunLoop.cpp:
3770         (WTF::RunLoop::current):
3771         Let the second template argument of ThreadSpecific CanBeGCThread::True.
3772
3773 2018-02-01  Michael Catanzaro  <mcatanzaro@igalia.com>
3774
3775         [WPE][GTK] Make RunLoop::TimerBase robust to its own deletion inside its source callback
3776         https://bugs.webkit.org/show_bug.cgi?id=182271
3777
3778         Reviewed by Carlos Garcia Campos.
3779
3780         RunLoopTimer::fired executes the user's callback, which could delete the RunLoopTimer
3781         itself. But the source callback is not prepared to handle this case. We can detect it
3782         easily, because TimerBase's destructor will call g_source_destroy(), which confusingly
3783         removes the GSource from its GMainContext without actually destroying the GSource. Then we
3784         can check if the GSource is still attached using g_source_is_destroyed().
3785
3786         * wtf/glib/RunLoopGLib.cpp:
3787         (WTF::RunLoop::TimerBase::TimerBase):
3788
3789 2018-01-31  Saam Barati  <sbarati@apple.com>
3790
3791         Replace tryLargeMemalignVirtual with tryLargeZeroedMemalignVirtual and use it to allocate large zeroed memory in Wasm
3792         https://bugs.webkit.org/show_bug.cgi?id=182064
3793         <rdar://problem/36840132>
3794
3795         Reviewed by Geoffrey Garen.
3796
3797         * wtf/Gigacage.cpp:
3798         (Gigacage::tryAllocateZeroedVirtualPages):
3799         (Gigacage::freeVirtualPages):
3800         (Gigacage::tryAllocateVirtualPages): Deleted.
3801         * wtf/Gigacage.h:
3802         * wtf/OSAllocator.h:
3803
3804 2018-01-31  Mark Lam  <mark.lam@apple.com>
3805
3806         Fix some ARM64_32 build failures.
3807         https://bugs.webkit.org/show_bug.cgi?id=182356
3808         <rdar://problem/37057690>
3809
3810         Reviewed by Michael Saboff.
3811
3812         * wtf/MathExtras.h:
3813         (WTF::dynamicPoison):
3814         * wtf/text/ASCIIFastPath.h:
3815         (WTF::copyLCharsFromUCharSource):
3816
3817 2018-01-30  Mark Lam  <mark.lam@apple.com>
3818
3819         Apply poisoning to TypedArray vector pointers.
3820         https://bugs.webkit.org/show_bug.cgi?id=182155
3821         <rdar://problem/36286266>
3822
3823         Reviewed by JF Bastien.
3824
3825         1. Added the ability to poison a CagedPtr.
3826
3827         2. Prevent CagedPtr from being implicitly instantiated, and add operator= methods
3828            instead.  This is because implicitly instantiated CagedPtrs with a poisoned
3829            trait may silently use a wrong poison value.
3830
3831         * wtf/CagedPtr.h:
3832         (WTF::CagedPtr::CagedPtr):
3833         (WTF::CagedPtr::get const):
3834         (WTF::CagedPtr::operator=):
3835
3836 2018-01-30  Fujii Hironori  <Hironori.Fujii@sony.com>
3837
3838         [Win] Warning fix.
3839         https://bugs.webkit.org/show_bug.cgi?id=177007
3840
3841         Reviewed by Yusuke Suzuki.
3842
3843         A 32 bit integer should not be casted to a pointer directly in 64
3844         bit Windows. It should be casted to a uintptr_t beforehand.
3845
3846         Rules for Using Pointers (Windows)
3847         https://msdn.microsoft.com/library/windows/desktop/aa384242
3848
3849         * wtf/ThreadingWin.cpp (InvalidThread): Casted 0xbbadbeef to uintptr_t.
3850
3851 2018-01-30  Don Olmstead  <don.olmstead@sony.com>
3852
3853         Unreviewed build fix for JSCOnly after r227845.
3854         https://bugs.webkit.org/show_bug.cgi?id=182274
3855
3856         * wtf/PlatformJSCOnly.cmake:
3857
3858 2018-01-30  Don Olmstead  <don.olmstead@sony.com>
3859
3860         [CMake] Make WTF headers copies
3861         https://bugs.webkit.org/show_bug.cgi?id=182274
3862
3863         Reviewed by Alex Christensen.
3864
3865         * wtf/CMakeLists.txt:
3866         * wtf/PlatformGTK.cmake:
3867         * wtf/PlatformJSCOnly.cmake:
3868         * wtf/PlatformMac.cmake:
3869         * wtf/PlatformWPE.cmake:
3870         * wtf/PlatformWin.cmake:
3871
3872 2018-01-30  Mark Lam  <mark.lam@apple.com>
3873
3874         Move ENABLE_POISON to Platform.h.
3875         https://bugs.webkit.org/show_bug.cgi?id=182298
3876         <rdar://problem/37032686>
3877
3878         Reviewed by Michael Saboff and JF Bastien.
3879
3880         ENABLE_POISON belongs in Platform.h to ensure that all places that depend on
3881         ENABLE(POISON) will see it properly defined.
3882
3883         * wtf/Platform.h:
3884         * wtf/Poisoned.h:
3885
3886 2018-01-26  Mark Lam  <mark.lam@apple.com>
3887
3888         Add infrastructure for pointer preparation.
3889         https://bugs.webkit.org/show_bug.cgi?id=182191
3890         <rdar://problem/36889194>
3891
3892         Reviewed by JF Bastien.
3893
3894         * WTF.xcodeproj/project.pbxproj:
3895         * wtf/CMakeLists.txt:
3896         * wtf/PointerPreparations.h: Added.
3897
3898 2018-01-26  Chris Nardi  <cnardi@chromium.org>
3899
3900         Addressing post-review comments after r226614
3901         https://bugs.webkit.org/show_bug.cgi?id=182151
3902
3903         Reviewed by Myles C. Maxfield.
3904
3905         * wtf/text/StringImpl.h:
3906         (WTF::isSpaceOrNewline):
3907         * wtf/text/TextBreakIterator.cpp:
3908         (WTF::numCodeUnitsInGraphemeClusters):
3909         * wtf/text/TextBreakIterator.h:
3910
3911 2018-01-26  Filip Pizlo  <fpizlo@apple.com>
3912
3913         Fix style - need to use C comments.
3914
3915         * wtf/Platform.h:
3916
3917 2018-01-26  Filip Pizlo  <fpizlo@apple.com>
3918
3919         Disable TLS-based TLCs
3920         https://bugs.webkit.org/show_bug.cgi?id=182175
3921
3922         Reviewed by Saam Barati.
3923
3924         Add a flag for TLS-based TLCs and set it to 0. We can re-enable this feature when we need to use TLCs for
3925         actual thread-local allocation and when we fix the fact that WebCore context switches JSC VMs without telling
3926         us.
3927
3928         * wtf/Platform.h:
3929
3930 2018-01-25  Filip Pizlo  <fpizlo@apple.com>
3931
3932         Unreviewed, fix windows build.
3933
3934         * wtf/MathExtras.h:
3935         (WTF::opaque):
3936
3937 2018-01-24  Filip Pizlo  <fpizlo@apple.com>
3938
3939         DirectArguments should protect itself using dynamic poisoning and precise index masking
3940         https://bugs.webkit.org/show_bug.cgi?id=182086
3941
3942         Reviewed by Saam Barati.
3943         
3944         Add helpers for:
3945         
3946         Dynamic poisoning: this means arranging to have the pointer you will dereference become an
3947         invalid pointer if the type check you were relying on would have failed.
3948         
3949         Precise index masking: a variant of index masking that does not depend on distancing. I figured
3950         I'd just try this first for DirectArguments, since I didn't think that arguments[i] was ever
3951         hot enough to warrant anything better. Turns out that in all of the benchmarks that care about
3952         arguments performance, we optimize things to the point that the index masking isn't on a hot
3953         path anymore. Turns out, it's neutral!
3954
3955         * wtf/MathExtras.h:
3956         (WTF::preciseIndexMask):
3957         (WTF::dynamicPoison):
3958
3959 2018-01-25  Jer Noble  <jer.noble@apple.com>
3960
3961         Unreviewed build fix after r227631; make USE_VIDEOTOOLBOX universally enabled on iOS.
3962
3963         * wtf/Platform.h:
3964
3965 2018-01-25  Jer Noble  <jer.noble@apple.com>
3966
3967         Move ImageDecoderAVFObjC from using AVSampleBufferGenerator to AVAssetReaderOutput for parsing
3968         https://bugs.webkit.org/show_bug.cgi?id=182091
3969
3970         Reviewed by Eric Carlson.
3971
3972         * wtf/Platform.h:
3973
3974 2018-01-25  Mark Lam  <mark.lam@apple.com>
3975
3976         Rename the Poisoned::isPoisoned constant to Poisoned::isPoisonedType.
3977         https://bugs.webkit.org/show_bug.cgi?id=182143
3978         <rdar://problem/36880970>
3979
3980         Reviewed by JF Bastien.
3981
3982         This is so that it doesn't conflict with the isPoisoned() debugging methods that
3983         are normally not built.  Also renamed PoisonedUniquePtr::isPoisonedUniquePtr to
3984         PoisonedUniquePtr::isPoisonedUniquePtrType to be consistent.
3985
3986         * wtf/Poisoned.h:
3987         * wtf/PoisonedUniquePtr.h:
3988
3989 2018-01-25  Filip Pizlo  <fpizlo@apple.com>
3990
3991         JSC GC should support TLCs (thread local caches)
3992         https://bugs.webkit.org/show_bug.cgi?id=181559
3993
3994         Reviewed by Mark Lam and Saam Barati.
3995
3996         * wtf/Bitmap.h: Just fixing a compile error.
3997
3998 2018-01-25  Commit Queue  <commit-queue@webkit.org>
3999
4000         Unreviewed, rolling out r227592.
4001         https://bugs.webkit.org/show_bug.cgi?id=182110
4002
4003         it made ARM64 (Linux and iOS) crash (Requested by pizlo-mbp on
4004         #webkit).
4005
4006         Reverted changeset:
4007
4008         "JSC GC should support TLCs (thread local caches)"
4009         https://bugs.webkit.org/show_bug.cgi?id=181559
4010         https://trac.webkit.org/changeset/227592
4011
4012 2018-01-20  Filip Pizlo  <fpizlo@apple.com>
4013
4014         JSC GC should support TLCs (thread local caches)
4015         https://bugs.webkit.org/show_bug.cgi?id=181559
4016
4017         Reviewed by Mark Lam and Saam Barati.
4018
4019         * wtf/Bitmap.h: Just fixing a compile error.
4020
4021 2018-01-23  Mark Lam  <mark.lam@apple.com>
4022
4023         Update Poisoned pointers to take a Poison class instead of a uintptr_t&.
4024         https://bugs.webkit.org/show_bug.cgi?id=182017
4025         <rdar://problem/36795513>
4026
4027         Reviewed by Filip Pizlo and JF Bastien.
4028
4029         This paves the way for custom poison values which we'll need for use in
4030         TypedArrays later.
4031
4032         * wtf/Bag.h:
4033         * wtf/DumbPtrTraits.h:
4034         (WTF::DumbPtrTraits::poison): Deleted.
4035         * wtf/DumbValueTraits.h:
4036         (WTF::DumbValueTraits::poison): Deleted.
4037         * wtf/Poisoned.h:
4038         (WTF::Poison::key):
4039         (WTF::Poisoned::swap):
4040         (WTF::Poisoned::poison const):
4041         (WTF::Poisoned::unpoison const):
4042         (WTF::Poisoned::poison):
4043         (WTF::Poisoned::unpoison):
4044         (WTF::PoisonedPtrTraits::swap):
4045         (WTF::PoisonedValueTraits::swap):
4046         (WTF::PoisonedPtrTraits::poison): Deleted.
4047         (WTF::PoisonedValueTraits::poison): Deleted.
4048         * wtf/PoisonedUniquePtr.h:
4049         * wtf/Ref.h:
4050         * wtf/RefCountedArray.h:
4051         * wtf/RefPtr.h:
4052         * wtf/WTFAssertions.cpp:
4053
4054 2018-01-23  Alex Christensen  <achristensen@webkit.org>
4055
4056         Remove pre-Sierra-OS-specific code in WTF and JavaScriptCore
4057         https://bugs.webkit.org/show_bug.cgi?id=182028
4058
4059         Reviewed by Keith Miller.
4060
4061         * wtf/Platform.h:
4062         * wtf/mac/AppKitCompatibilityDeclarations.h:
4063         * wtf/mac/DeprecatedSymbolsUsedBySafari.mm:
4064         (WTF::MainThreadFunctionTracker::singleton): Deleted.
4065         (WTF::MainThreadFunctionTracker::callOnMainThread): Deleted.
4066         (WTF::MainThreadFunctionTracker::cancelCallOnMainThread): Deleted.
4067         (WTF::MainThreadFunctionTracker::addFunction): Deleted.
4068         (WTF::MainThreadFunctionTracker::removeIdentifier): Deleted.
4069         (WTF::MainThreadFunctionTracker::removeFunctions): Deleted.
4070         (WTF::callOnMainThread): Deleted.
4071         (WTF::cancelCallOnMainThread): Deleted.
4072         * wtf/spi/cocoa/SecuritySPI.h:
4073         * wtf/spi/darwin/dyldSPI.h:
4074         * wtf/text/icu/TextBreakIteratorICU.h:
4075         (WTF::TextBreakIteratorICU::TextBreakIteratorICU):
4076         (WTF::caretRules): Deleted.
4077
4078 2018-01-23  Filip Pizlo  <fpizlo@apple.com>
4079
4080         JSC should use a speculation fence on VM entry/exit
4081         https://bugs.webkit.org/show_bug.cgi?id=181991
4082
4083         Reviewed by JF Bastien and Mark Lam.
4084         
4085         Implement speculationFence as lfence on x86 and isb on ARM64. I'm not sure if isb is
4086         appropriate for all ARM64's.
4087
4088         * wtf/Atomics.h:
4089         (WTF::speculationFence):
4090         (WTF::x86_lfence):
4091
4092 2018-01-22  Alex Christensen  <achristensen@webkit.org>
4093
4094         Begin removing QTKit code
4095         https://bugs.webkit.org/show_bug.cgi?id=181951
4096
4097         Reviewed by Jer Noble.
4098
4099         * wtf/Platform.h:
4100
4101 2018-01-21  Wenson Hsieh  <wenson_hsieh@apple.com>
4102
4103         Add a new feature flag for EXTRA_ZOOM_MODE and reintroduce AdditionalFeatureDefines.h
4104         https://bugs.webkit.org/show_bug.cgi?id=181918
4105
4106         Reviewed by Tim Horton.
4107
4108         Include AdditionalFeatureDefines.h, if possible. This allows WebKitAdditions to override
4109         the value of certain feature flags in the OpenSource WebKit repository.
4110
4111         * wtf/Platform.h:
4112
4113 2018-01-19  Alex Christensen  <achristensen@webkit.org>
4114
4115         Fix jsc-only build
4116         https://bugs.webkit.org/show_bug.cgi?id=181874
4117
4118         Reviewed by JF Bastien.
4119
4120         This makes "build-webkit --jsc-only" work on Mac!
4121
4122         * wtf/PlatformJSCOnly.cmake:
4123
4124 2018-01-19  Keith Miller  <keith_miller@apple.com>
4125
4126         HaveInternalSDK includes should be "#include?"
4127         https://bugs.webkit.org/show_bug.cgi?id=179670
4128
4129         Reviewed by Dan Bernstein.
4130
4131         * Configurations/Base.xcconfig:
4132
4133 2018-01-19  Alexey Proskuryakov  <ap@apple.com>
4134
4135         Update XPCSPI.h
4136         https://bugs.webkit.org/show_bug.cgi?id=181827
4137         rdar://problem/36393031
4138
4139         Reviewed by Daniel Bates.
4140
4141         * wtf/spi/darwin/XPCSPI.h:
4142
4143 2018-01-18  Chris Dumez  <cdumez@apple.com>
4144
4145         We should be able to terminate service workers that are unresponsive
4146         https://bugs.webkit.org/show_bug.cgi?id=181563
4147         <rdar://problem/35280031>
4148
4149         Reviewed by Alex Christensen.
4150
4151         * wtf/ObjectIdentifier.h:
4152         (WTF::ObjectIdentifier::loggingString const):
4153         Allow using loggingString() from RELEASE_LOG().
4154
4155 2018-01-18  Dan Bernstein  <mitz@apple.com>
4156
4157         [Xcode] Streamline and future-proof target-macOS-version-dependent build setting definitions
4158         https://bugs.webkit.org/show_bug.cgi?id=181803
4159
4160         Reviewed by Tim Horton.
4161
4162         * Configurations/Base.xcconfig: Updated.
4163         * Configurations/DebugRelease.xcconfig: Updated.
4164
4165 2018-01-17  Daniel Bates  <dabates@apple.com>
4166
4167         REGRESSION (r222795): Cardiogram never signs in
4168         https://bugs.webkit.org/show_bug.cgi?id=181693
4169         <rdar://problem/36286293>
4170
4171         Reviewed by Ryosuke Niwa.
4172
4173         Add macro define for future iOS.
4174
4175         * wtf/spi/darwin/dyldSPI.h:
4176
4177 2018-01-17  Per Arne Vollan  <pvollan@apple.com>
4178
4179         [Win] Compile error: 'wtf/text/icu/TextBreakIteratorICU.h' not found.
4180         https://bugs.webkit.org/show_bug.cgi?id=181744
4181         <rdar://problem/36582562>
4182
4183         Reviewed by Alex Christensen.
4184
4185         Add WTF folders to forwarding headers directories.
4186
4187         * wtf/PlatformWin.cmake:
4188
4189 2018-01-16  Per Arne Vollan  <pvollan@apple.com>
4190
4191         [Win] JSC compile error in runtime/DateConversion.cpp.
4192         https://bugs.webkit.org/show_bug.cgi?id=181690
4193         <rdar://problem/36480409>
4194  
4195         Reviewed by Brent Fulgham.
4196
4197         Add 'text/win' folder to list of forwarding headers directories.
4198  
4199         * wtf/PlatformWin.cmake:
4200
4201 2018-01-15  Michael Catanzaro  <mcatanzaro@igalia.com>
4202
4203         Improve use of ExportMacros
4204         https://bugs.webkit.org/show_bug.cgi?id=181652
4205
4206         Reviewed by Konstantin Tokarev.
4207
4208         * wtf/ExportMacros.h: Simplify the #defines in this file.
4209         * wtf/Platform.h: Remove unneeded define. Remove comment that expects all ports to
4210           eventually enable the export macros. WPE will never want these. We don't currently want
4211           them for GTK either, though how we link GTK has been in flux recently.
4212
4213 2018-01-15  JF Bastien  <jfbastien@apple.com>
4214
4215         Remove makePoisonedUnique
4216         https://bugs.webkit.org/show_bug.cgi?id=181630
4217         <rdar://problem/36498623>
4218
4219         Reviewed by Mark Lam.
4220
4221         I added a conversion from std::unique_ptr, so we can just use
4222         std::make_unique and it'll auto-poison when converted.
4223
4224         * wtf/PoisonedUniquePtr.h:
4225         (WTF::makePoisonedUnique): Deleted.
4226
4227 2018-01-13  Mark Lam  <mark.lam@apple.com>
4228
4229         Replace all use of ConstExprPoisoned with Poisoned.
4230         https://bugs.webkit.org/show_bug.cgi?id=181542
4231         <rdar://problem/36442138>
4232
4233         Reviewed by JF Bastien.
4234
4235         1. Removed ConstExprPoisoned and its artifacts.
4236
4237         2. Consolidated Poisoned into PoisonedImpl.  PoisonedImpl is not more.
4238
4239         3. Changed all clients of ConstExprPoisoned to use Poisoned instead.
4240
4241         4. Worked around the GCC and Clang compiler bug that confuses an intptr_t&
4242            template arg with intptr_t.
4243            See use of std::enable_if_t<Other::isPoisoned> in Poisoned.h.
4244
4245         5. Removed ENABLE(MIXED_POISON) since we now have a workaround (3) that makes it
4246            possible to use the mixed poison code.
4247
4248         6. Also fixed broken implementation of comparison operators in Poisoned.
4249
4250         * wtf/Bag.h:
4251         * wtf/DumbPtrTraits.h:
4252         (WTF::DumbPtrTraits::poison):
4253         * wtf/DumbValueTraits.h:
4254         (WTF::DumbValueTraits::poison):
4255         * wtf/Poisoned.h:
4256         (WTF::Poisoned::Poisoned):
4257         (WTF::Poisoned::operator== const):
4258         (WTF::Poisoned::operator!= const):
4259         (WTF::Poisoned::operator< const):
4260         (WTF::Poisoned::operator<= const):
4261         (WTF::Poisoned::operator> const):
4262         (WTF::Poisoned::operator>= const):
4263         (WTF::Poisoned::operator=):
4264         (WTF::Poisoned::swap):
4265         (WTF::swap):
4266         (WTF::PoisonedPtrTraits::poison):
4267         (WTF::PoisonedPtrTraits::swap):
4268         (WTF::PoisonedValueTraits::poison):
4269         (WTF::PoisonedValueTraits::swap):
4270         (WTF::PoisonedImpl::PoisonedImpl): Deleted.
4271         (WTF::PoisonedImpl::assertIsPoisoned const): Deleted.
4272         (WTF::PoisonedImpl::assertIsNotPoisoned const): Deleted.
4273         (WTF::PoisonedImpl::unpoisoned const): Deleted.
4274         (WTF::PoisonedImpl::clear): Deleted.
4275         (WTF::PoisonedImpl::operator* const): Deleted.
4276         (WTF::PoisonedImpl::operator-> const): Deleted.
4277         (WTF::PoisonedImpl::bits const): Deleted.
4278         (WTF::PoisonedImpl::operator! const): Deleted.
4279         (WTF::PoisonedImpl::operator bool const): Deleted.
4280         (WTF::PoisonedImpl::operator== const): Deleted.
4281         (WTF::PoisonedImpl::operator!= const): Deleted.
4282         (WTF::PoisonedImpl::operator< const): Deleted.
4283         (WTF::PoisonedImpl::operator<= const): Deleted.
4284         (WTF::PoisonedImpl::operator> const): Deleted.
4285         (WTF::PoisonedImpl::operator>= const): Deleted.
4286         (WTF::PoisonedImpl::operator=): Deleted.
4287         (WTF::PoisonedImpl::swap): Deleted.
4288         (WTF::PoisonedImpl::exchange): Deleted.
4289         (WTF::PoisonedImpl::poison): Deleted.
4290         (WTF::PoisonedImpl::unpoison): Deleted.
4291         (WTF::constExprPoisonRandom): Deleted.
4292         (WTF::makeConstExprPoison): Deleted.
4293         (WTF::ConstExprPoisonedPtrTraits::exchange): Deleted.
4294         (WTF::ConstExprPoisonedPtrTraits::swap): Deleted.
4295         (WTF::ConstExprPoisonedPtrTraits::unwrap): Deleted.
4296         (WTF::ConstExprPoisonedValueTraits::exchange): Deleted.
4297         (WTF::ConstExprPoisonedValueTraits::swap): Deleted.
4298         (WTF::ConstExprPoisonedValueTraits::unwrap): Deleted.
4299         * wtf/PoisonedUniquePtr.h:
4300         (WTF::PoisonedUniquePtr::PoisonedUniquePtr):
4301         (WTF::PoisonedUniquePtr::operator=):
4302         * wtf/Ref.h:
4303         * wtf/RefCountedArray.h:
4304         (WTF::RefCountedArray::RefCountedArray):
4305         * wtf/RefPtr.h:
4306         * wtf/WTFAssertions.cpp:
4307
4308 2018-01-12  JF Bastien  <jfbastien@apple.com>
4309
4310         PoisonedWriteBarrier
4311         https://bugs.webkit.org/show_bug.cgi?id=181599
4312         <rdar://problem/36474351>
4313
4314         Reviewed by Mark Lam.
4315
4316         Supporting changes needed to allow poisoning of WriteBarrier
4317         objects.
4318
4319         * WTF.xcodeproj/project.pbxproj:
4320         * wtf/DumbPtrTraits.h:
4321         * wtf/DumbValueTraits.h: Copied from Source/WTF/wtf/DumbPtrTraits.h.
4322         (WTF::DumbValueTraits::exchange):
4323         (WTF::DumbValueTraits::swap):