Finish removing String::format
[WebKit-https.git] / Source / WTF / ChangeLog
1 2019-02-20  Darin Adler  <darin@apple.com>
2
3         Finish removing String::format
4         https://bugs.webkit.org/show_bug.cgi?id=194893
5
6         Reviewed by Daniel Bates.
7
8         * wtf/Assertions.cpp:
9         (WTF::createWithFormatAndArguments): Moved this here from WTFString.cpp.
10         (WTFLog): Use WTF::createWithFormatAndArguments instead of String::format.
11
12         * wtf/HexNumber.h: Deleted unneeded toString function.
13
14         * wtf/text/StringConcatenate.h: Got rid of unneeded forward declaration of
15         StringTypeAdapter, since that's now in Forward.h. Tweaked formatting of templates
16         a bit. Use function templates for writeTo functions rather than having two of each.
17         Removed unused toString functions. Optimized case where we use have a UChar* and
18         a length of zero to not force the result to be 16-bit. Also gets rid of a small
19         NO_RETURN_DUE_TO_CRASH mess that we don't need. Refactored constructors to use some
20         static member helper functions to compute string lengths. Added the pad function
21         and the PaddingSpecification struct template, so we can add padding to anything
22         we can turn into a string. Got rid of the special case overload for single
23         arguments, since it only worked for things that the String constructor can handle.
24         Instead we will now use StringTypeAdapter, which works for more types. Possibly
25         less optimal for some special cases, which we could specialize for later if we like.
26         * wtf/text/StringConcatenateNumbers.h: Ditto.
27         * wtf/text/StringOperators.h: Ditto.
28         * wtf/text/StringView.h: Ditto.
29
30         * wtf/text/WTFString.cpp:
31         (WTF::createWithFormatAndArguments): Deleted.
32         (WTF::String::format): Deleted.
33         * wtf/text/WTFString.h: Deleted declaration of String::format.
34
35 2019-02-23  Michael Catanzaro  <mcatanzaro@igalia.com>
36
37         Unreviewed, fix find/replace error from r232178
38
39         Looks like this was the only such error in that commit.
40
41         * wtf/URLHelpers.cpp:
42         (WTF::URLHelpers::isLookalikeCharacter):
43
44 2019-02-23  Mark Lam  <mark.lam@apple.com>
45
46         Add an exception check and some assertions in StringPrototype.cpp.
47         https://bugs.webkit.org/show_bug.cgi?id=194962
48         <rdar://problem/48013416>
49
50         Reviewed by Yusuke Suzuki and Saam Barati.
51
52         Add an AssertNoOverflow overflow handler which allows us to do CheckedArithmetic
53         for assertion purpose only on debug builds but sacrifices no performance on
54         release builds.
55
56         * wtf/CheckedArithmetic.h:
57         (WTF::AssertNoOverflow::overflowed):
58         (WTF::AssertNoOverflow::clearOverflow):
59         (WTF::AssertNoOverflow::crash):
60         (WTF::AssertNoOverflow::hasOverflowed const):
61         (WTF::observesOverflow):
62         (WTF::observesOverflow<AssertNoOverflow>):
63         (WTF::safeAdd):
64         (WTF::safeSub):
65         (WTF::safeMultiply):
66         (WTF::Checked::operator+=):
67         (WTF::Checked::operator-=):
68         (WTF::Checked::operator*=):
69         (WTF::operator+):
70         (WTF::operator-):
71         (WTF::operator*):
72
73 2019-02-23  Keith Miller  <keith_miller@apple.com>
74
75         Add new mac target numbers
76         https://bugs.webkit.org/show_bug.cgi?id=194955
77
78         Reviewed by Tim Horton.
79
80         * Configurations/Base.xcconfig:
81         * Configurations/DebugRelease.xcconfig:
82
83 2019-02-21  Antoine Quint  <graouts@apple.com>
84
85         Move UIWebTouchEventsGestureRecognizer.activeTouchesByIdentifier to SPI
86         https://bugs.webkit.org/show_bug.cgi?id=194531
87         <rdar://problem/47714562>
88
89         Reviewed by Tim Horton.
90
91         Follow-up commit to ensure this SPI is only called on newer versions of iOS.
92
93         * wtf/Platform.h:
94
95 2019-02-21  Dean Jackson  <dino@apple.com>
96
97         Rotation animations sometimes use the wrong origin (affects apple.com)
98         https://bugs.webkit.org/show_bug.cgi?id=194878
99         <rdar://problem/43908047>
100
101         Follow-up commit to ensure this change only affects newer versions
102         of iOS.
103
104         * wtf/Platform.h: Add a version check.
105
106 2019-02-20  Alex Christensen  <achristensen@webkit.org>
107
108         URL percent-encode operations should use checked arithmetic for buffer allocation length
109         https://bugs.webkit.org/show_bug.cgi?id=194877
110         <rdar://problem/48212062>
111
112         Reviewed by Tim Horton.
113
114         * wtf/URLHelpers.cpp:
115         (WTF::URLHelpers::userVisibleURL):
116         * wtf/cocoa/NSURLExtras.mm:
117         (WTF::dataWithUserTypedString):
118
119 2019-02-20  Dean Jackson  <dino@apple.com>
120
121         Rotation animations sometimes use the wrong origin (affects apple.com)
122         https://bugs.webkit.org/show_bug.cgi?id=194878
123         <rdar://problem/43908047>
124
125         Reviewed by Simon Fraser.
126
127         * wtf/Platform.h: Add HAVE(CA_WHERE_ADDITIVE_TRANSFORMS_ARE_REVERSED).
128
129 2019-02-20  Andy Estes  <aestes@apple.com>
130
131         [Xcode] Add SDKVariant.xcconfig to various Xcode projects
132         https://bugs.webkit.org/show_bug.cgi?id=194869
133
134         Rubber-stamped by Jer Noble.
135
136         * WTF.xcodeproj/project.pbxproj:
137
138 2019-02-20  Adrian Perez de Castro  <aperez@igalia.com>
139
140         [WPE][GTK] Enable support for CONTENT_EXTENSIONS
141         https://bugs.webkit.org/show_bug.cgi?id=167941
142
143         Reviewed by Carlos Garcia Campos.
144
145         Add specialization of the refGPtr() and derefGPtr() templates for GMappedFile.
146
147         * wtf/glib/GRefPtr.cpp:
148         (WTF::refGPtr): Added.
149         (WTF::derefGPtr): Added.
150         * wtf/glib/GRefPtr.h: Declare template specializations.
151
152 2019-02-19  Commit Queue  <commit-queue@webkit.org>
153
154         Unreviewed, rolling out r241770.
155         https://bugs.webkit.org/show_bug.cgi?id=194833
156
157         Caused crashes (Requested by smfr on #webkit).
158
159         Reverted changeset:
160
161         "Code quality cleanup in NeverDestroyed"
162         https://bugs.webkit.org/show_bug.cgi?id=194824
163         https://trac.webkit.org/changeset/241770
164
165 2019-02-19  Keith Miller  <keith_miller@apple.com>
166
167         Code quality cleanup in NeverDestroyed
168         https://bugs.webkit.org/show_bug.cgi?id=194824
169
170         Reviewed by Yusuke Suzuki.
171
172         First, move data members to the end of the class per WebKit
173         style. Also, add forbid heap allocation since we expect the
174         NeverDestroyed classes to be static.
175
176         * wtf/NeverDestroyed.h:
177
178 2019-02-16  Darin Adler  <darin@apple.com>
179
180         Continue reducing use of String::format, now focusing on hex: "%p", "%x", etc.
181         https://bugs.webkit.org/show_bug.cgi?id=194752
182
183         Reviewed by Daniel Bates.
184
185         * WTF.xcodeproj/project.pbxproj: Added HexNumber.cpp and Logger.cpp.
186         * wtf/CMakeLists.txt: Ditto.
187
188         * wtf/HexNumber.cpp: Added.
189         (WTF::Internal::appendHex): Non-inline, non-template hex formatting logic.
190
191         * wtf/HexNumber.h:
192         (WTF::Internal::appendHex): Refactored main logic of appendUnsignedAsHex and
193         appendUnsignedAsHexFixedSize so they can be reused in a function named hex for
194         use with StringTypeAdapter.
195         (WTF::appendUnsignedAsHex): Ditto.
196         (WTF::appendUnsignedAsHexFixedSize): Ditto.
197         (WTF::hex): Added.
198         (WTF::StringTypeAdapter<HexNumberBuffer>): Added.
199
200         * wtf/Logger.cpp: Added.
201         (WTF::Logger::LogSiteIdentifier::toString const): Made this a non-template
202         function and moved it here so that we don't need to include HexNumber.h
203         in Logger.h. Since HexNumber.h has substantial code in it, it's good if we
204         don't include it in any other headers.
205
206         * wtf/Logger.h:
207         (WTF::LogArgument<Logger::LogSiteIdentifier>::toString): Changed to call
208         a non-template function, LogSiteIdentifier::toString.
209
210         * wtf/text/StringConcatenateNumbers.h: Replaced overloaded writeTo functions
211         with function templates and used StringImpl::copyCharacters instead of
212         hand-written loops.
213
214 2019-02-18  Joseph Pecoraro  <pecoraro@apple.com>
215
216         Web Inspector: Better categorize CPU usage per-thread / worker
217         https://bugs.webkit.org/show_bug.cgi?id=194564
218
219         Reviewed by Devin Rousso.
220
221         * wtf/Threading.h:
222         * wtf/Threading.cpp:
223         (WTF::Thread::allThreadsMutex):
224         (WTF::Thread::create):
225         (WTF::Thread::didExit):
226         Add a set of all WTF::Thread created threads.
227
228 2019-02-18  Tadeu Zagallo  <tzagallo@apple.com>
229
230         Bytecode cache should a have a boot-specific validation
231         https://bugs.webkit.org/show_bug.cgi?id=194769
232         <rdar://problem/48149509>
233
234         Reviewed by Keith Miller.
235
236         Add helper to get kern.bootsessionuuid from sysctl
237
238         * wtf/UUID.cpp:
239         (WTF::bootSessionUUIDString):
240         * wtf/UUID.h:
241
242 2019-02-17  David Kilzer  <ddkilzer@apple.com>
243
244         Unreviewed, rolling out r241620.
245
246         "Causes use-after-free crashes running layout tests with ASan and GuardMalloc."
247         (Requested by ddkilzer on #webkit.)
248
249         Reverted changeset:
250
251         "[WTF] Add environment variable helpers"
252         https://bugs.webkit.org/show_bug.cgi?id=192405
253         https://trac.webkit.org/changeset/241620
254
255 2019-02-15  Ross Kirsling  <ross.kirsling@sony.com>
256
257         [WTF] Add environment variable helpers
258         https://bugs.webkit.org/show_bug.cgi?id=192405
259
260         Reviewed by Michael Catanzaro.
261
262         Create a new Environment API as a platform-independent, thread-safe(r)
263         way to get and set environment variables.
264
265         * WTF.xcodeproj/project.pbxproj:
266         * wtf/CMakeLists.txt:
267         * wtf/Environment.h: Added.
268         * wtf/PlatformGTK.cmake:
269         * wtf/PlatformJSCOnly.cmake:
270         * wtf/PlatformMac.cmake:
271         * wtf/PlatformPlayStation.cmake:
272         * wtf/PlatformWPE.cmake:
273         * wtf/PlatformWin.cmake:
274         * wtf/posix/EnvironmentPOSIX.cpp: Added.
275         * wtf/win/EnvironmentWin.cpp: Added.
276         Introduce WTF::Environment.
277
278         * wtf/Threading.cpp:
279         (WTF::threadingIsInitialized):
280         (WTF::initializeThreading):
281         * wtf/Threading.h:
282         Introduce WTF::threadingIsInitialized() so that we can ASSERT that it's
283         false before setting an environment variable through the new API.
284
285         * wtf/DataLog.cpp:
286         (WTF::initializeLogFileOnce):
287         * wtf/NumberOfCores.cpp:
288         (WTF::numberOfProcessorCores):
289         * wtf/posix/FileSystemPOSIX.cpp:
290         (WTF::FileSystemImpl::openTemporaryFile):
291         Utilize WTF::Environment where possible.
292
293 2019-02-15  Brian Burg  <bburg@apple.com>
294
295         [Mac] WebInspectorUI.framework does not need to be soft-linked anymore
296         https://bugs.webkit.org/show_bug.cgi?id=194411
297         <rdar://problem/47787614>
298
299         Reviewed by Joseph Pecoraro.
300
301         * wtf/cocoa/SoftLinking.h:
302         Remove macro that now has no uses.
303
304 2019-02-15  Commit Queue  <commit-queue@webkit.org>
305
306         Unreviewed, rolling out r241559 and r241566.
307         https://bugs.webkit.org/show_bug.cgi?id=194710
308
309         Causes layout test crashes under GuardMalloc (Requested by
310         ryanhaddad on #webkit).
311
312         Reverted changesets:
313
314         "[WTF] Add environment variable helpers"
315         https://bugs.webkit.org/show_bug.cgi?id=192405
316         https://trac.webkit.org/changeset/241559
317
318         "Unreviewed build fix for WinCairo Debug after r241559."
319         https://trac.webkit.org/changeset/241566
320
321 2019-02-15  Truitt Savell  <tsavell@apple.com>
322
323         Unreviewed, rolling out r241564.
324
325         Caused 50+ Timeouts on Mac WK2, mostly in the http/ directory
326
327         Reverted changeset:
328
329         "[Mac] WebInspectorUI.framework does not need to be soft-
330         linked anymore"
331         https://bugs.webkit.org/show_bug.cgi?id=194411
332         https://trac.webkit.org/changeset/241564
333
334 2019-02-15  Dominik Infuehr  <dinfuehr@igalia.com>
335
336         Fix deadlock on Linux/x64 between SamplingProfiler and VMTraps
337         https://bugs.webkit.org/show_bug.cgi?id=194014
338
339         Reviewed by Michael Catanzaro.
340
341         Do not block SIGUSR1 when installing signal handlers, since this signal
342         is used to suspend/resume machine threads on Linux.
343
344         ftl-ai-filter-phantoms-should-clear-clear-value.js deadlocked with
345         enabled watchdog and sampling.
346
347         Deadlock happened in the following situation:
348
349         Thread 1 (Sampling): SamplingProfiler.cpp:takeSample takes all needed locks
350         and then tries to suspend the main thread.
351
352         Thread 2 (Watchdog/VMTraps): Before the Sampling-Thread suspends the main thread
353         a signal is caught and the signal handler is invoked (VMTraps.cpp:SignalSender).
354         SignalSender tries to lock codeBlockSet, but this is already locked by the
355         SamplingProfiler.
356
357         The SamplingProfiler can only give up the lock when it suspends
358         the thread. However since the VMTraps signal handler is active, all other signals blocked,
359         therefore the SamplingProfiler also waits until its signal handler is invoked.
360
361         This patch fixes this by not blocking SIGUSR1 in installSignalHandler, since
362         it is used to suspend/resume threads on Linux.
363
364         * wtf/Threading.h:
365         * wtf/posix/ThreadingPOSIX.cpp:
366         * wtf/threads/Signals.cpp:
367         (WTF::installSignalHandler):
368
369 2019-02-15  Saam barati  <sbarati@apple.com>
370
371         [WebAssembly] Write a new register allocator for Air O0 and make BBQ use it
372         https://bugs.webkit.org/show_bug.cgi?id=194036
373
374         Reviewed by Yusuke Suzuki.
375
376         * wtf/IndexMap.h:
377         (WTF::IndexMap::at):
378         (WTF::IndexMap::at const):
379         (WTF::IndexMap::operator[]):
380         (WTF::IndexMap::operator[] const):
381
382 2019-02-14  Brian Burg  <bburg@apple.com>
383
384         [Mac] WebInspectorUI.framework does not need to be soft-linked anymore
385         https://bugs.webkit.org/show_bug.cgi?id=194411
386         <rdar://problem/47787614>
387
388         Reviewed by Joseph Pecoraro.
389
390         * wtf/cocoa/SoftLinking.h:
391         Remove macro that now has no uses.
392
393 2019-02-14  Ross Kirsling  <ross.kirsling@sony.com>
394
395         [WTF] Add environment variable helpers
396         https://bugs.webkit.org/show_bug.cgi?id=192405
397
398         Reviewed by Michael Catanzaro.
399
400         Create a new Environment API as a platform-independent, thread-safe(r)
401         way to get and set environment variables.
402
403         * WTF.xcodeproj/project.pbxproj:
404         * wtf/CMakeLists.txt:
405         * wtf/Environment.h: Added.
406         * wtf/PlatformGTK.cmake:
407         * wtf/PlatformJSCOnly.cmake:
408         * wtf/PlatformMac.cmake:
409         * wtf/PlatformPlayStation.cmake:
410         * wtf/PlatformWPE.cmake:
411         * wtf/PlatformWin.cmake:
412         * wtf/posix/EnvironmentPOSIX.cpp: Added.
413         * wtf/win/EnvironmentWin.cpp: Added.
414         Introduce WTF::Environment.
415
416         * wtf/Threading.cpp:
417         (WTF::threadingIsInitialized):
418         (WTF::initializeThreading):
419         * wtf/Threading.h:
420         Introduce WTF::threadingIsInitialized() so that we can ASSERT that it's
421         false before setting an environment variable through the new API.
422
423         * wtf/DataLog.cpp:
424         (WTF::initializeLogFileOnce):
425         * wtf/NumberOfCores.cpp:
426         (WTF::numberOfProcessorCores):
427         * wtf/posix/FileSystemPOSIX.cpp:
428         (WTF::FileSystemImpl::openTemporaryFile):
429         Utilize WTF::Environment where possible.
430
431 2019-02-13  Yusuke Suzuki  <ysuzuki@apple.com>
432
433         We should only make rope strings when concatenating strings long enough.
434         https://bugs.webkit.org/show_bug.cgi?id=194465
435
436         Reviewed by Mark Lam.
437
438         * wtf/text/StringImpl.h:
439         (WTF::StringImpl::headerSize):
440
441 2019-02-12  Tim Horton  <timothy_horton@apple.com>
442
443         Remove WKLegacyPDFView
444         https://bugs.webkit.org/show_bug.cgi?id=194559
445
446         Reviewed by Andy Estes.
447
448         * wtf/FeatureDefines.h:
449
450 2019-02-12  David Kilzer  <ddkilzer@apple.com>
451
452         REGRESSION (r238955, r240494): Soft-linking optional Lookup.framework triggers release assertion when missing
453         <https://webkit.org/b/194529>
454         <rdar://problem/47924449>
455
456         Reviewed by Eric Carlson.
457
458         * wtf/cocoa/SoftLinking.h:
459         (SOFT_LINK_CLASS_FOR_SOURCE_WITH_EXPORT_AND_IS_OPTIONAL): Rename
460         SOFT_LINK_CLASS_FOR_SOURCE_WITH_EXPORT_AND_ASSERTION() to this
461         and change `assertion` argument to `isOptional`.  Pass
462         `isOptional` to framework##Library() method to control assertion
463         behavior.  Only check RELEASE_ASSERT() if `!isOptional`, else
464         that code should be optimized out by the compiler.  This fixes
465         the crash.
466         (NO_ASSERT): Remove macro since it's no longer used.
467         (SOFT_LINK_IS_OPTIONAL): Add macro to use for soft-linking
468         optional classes.
469         (SOFT_LINK_IS_NOT_OPTIONAL): Add macro to use for soft-linking
470         non-optional classes.
471         (SOFT_LINK_CLASS_FOR_SOURCE_WITH_EXPORT): Update to use new
472         SOFT_LINK_CLASS_FOR_SOURCE_WITH_EXPORT_AND_IS_OPTIONAL() macro.
473         (SOFT_LINK_CLASS_FOR_SOURCE_OPTIONAL_WITH_EXPORT): Ditto.
474         (SOFT_LINK_CLASS_FOR_SOURCE): Ditto.
475         (SOFT_LINK_CLASS_FOR_SOURCE_OPTIONAL): Ditto.
476
477 2019-02-12  Andy Estes  <aestes@apple.com>
478
479         [iOSMac] Enable Parental Controls Content Filtering
480         https://bugs.webkit.org/show_bug.cgi?id=194521
481         <rdar://39732376>
482
483         Reviewed by Tim Horton.
484
485         * wtf/Platform.h:
486
487 2019-02-11  Myles C. Maxfield  <mmaxfield@apple.com>
488
489         [Cocoa] Ask platform for generic font family mappings
490         https://bugs.webkit.org/show_bug.cgi?id=187723
491         <rdar://problem/41892438>
492
493         Reviewed by Brent Fulgham.
494
495         Add an ENABLE in Platform.
496
497         * wtf/Platform.h:
498
499 2019-02-11  Truitt Savell  <tsavell@apple.com>
500
501         Unreviewed, rolling out r241229.
502
503         Revision broke internal builds for watchOS.
504
505         Reverted changeset:
506
507         "[Cocoa] Ask platform for generic font family mappings"
508         https://bugs.webkit.org/show_bug.cgi?id=187723
509         https://trac.webkit.org/changeset/241229
510
511 2019-02-10  Darin Adler  <darin@apple.com>
512
513         Switch uses of StringBuilder with String::format for hex numbers to use HexNumber.h instead
514         https://bugs.webkit.org/show_bug.cgi?id=194485
515
516         Reviewed by Daniel Bates.
517
518         * wtf/HexNumber.h: Removed unused functions placeByteAsHexCompressIfPossible and
519         placeByteAsHex. Can always bring them back if someone needs them. Updated
520         appendUnsignedAsHex to be a template so we can use it on any integer type,
521         got rid of unnecessary use of Vector and unnecessary reversing, and got rid of
522         appendUnsigned64AsHex since callers can now just use appendUnsignedAsHex.
523         Rewrote appendUnsignedAsHexFixedSize to share mode code rather than replicating.
524
525         * wtf/Logger.h: Use appendUnsignedAsHex instead of appendUnsigned64AsHex.
526
527         * wtf/URL.cpp: Removed unnecessary include of HexNumber.h.
528
529         * wtf/cocoa/NSURLExtras.h: Added missing include of Foundation.h that was
530         worked around in NSURLExtras.mm.
531         * wtf/cocoa/NSURLExtras.mm: Removed unnecessary includes of HexNumber.h
532         and Foundation.h.
533
534 2019-02-09  Darin Adler  <darin@apple.com>
535
536         Eliminate unnecessary String temporaries by using StringConcatenateNumbers
537         https://bugs.webkit.org/show_bug.cgi?id=194021
538
539         Reviewed by Geoffrey Garen.
540
541         * wtf/URL.cpp:
542         (WTF::URL::setPort): Remove String::number and let makeString do the conversion
543         without allocating/destroying a String. Added a cast to "unsigned" to sidestep the
544         ambiguity with 16-bit unsigned types that are sometimes used for numbers (uint16_t)
545         and sometimes used for UTF-16 code units (UChar) and can be the same type.
546
547         * wtf/text/StringConcatenateNumbers.h:
548         Changed FormattedNumber::fixedPrecision to more closely match String::number and
549         StringBuilder::appendNumber by defaulting to truncating trailing zeros and using
550         a named enumeration for the truncation policy rather than a boolean.
551
552
553 2019-02-09  Yusuke Suzuki  <ysuzuki@apple.com>
554
555         Unreviewed, rolling in r241237 again
556         https://bugs.webkit.org/show_bug.cgi?id=194469
557
558         After the measurement, this patch was unrelated to recent regression.
559
560         * wtf/text/StringImpl.h:
561         (WTF::StringImpl::isSubString const):
562         (WTF::StringImpl::createSubstringSharingImpl):
563
564 2019-02-09  Commit Queue  <commit-queue@webkit.org>
565
566         Unreviewed, rolling out r241237.
567         https://bugs.webkit.org/show_bug.cgi?id=194474
568
569         Shows significant memory increase in WSL (Requested by
570         yusukesuzuki on #webkit).
571
572         Reverted changeset:
573
574         "[WTF] Use BufferInternal StringImpl if substring StringImpl
575         takes more memory"
576         https://bugs.webkit.org/show_bug.cgi?id=194469
577         https://trac.webkit.org/changeset/241237
578
579 2019-02-08  Yusuke Suzuki  <ysuzuki@apple.com>
580
581         [WTF] Use BufferInternal StringImpl if substring StringImpl takes more memory
582         https://bugs.webkit.org/show_bug.cgi?id=194469
583
584         Reviewed by Geoffrey Garen.
585
586         Because pointer is large and aligned in 64bit in 64bit architecture, BufferSubstring StringImpl
587         implementation takes more memory than BufferInternal StringImpl implementation for small strings.
588         And BufferInternal StringImpl does not have a problem like, small substring StringImpl keeps super
589         large owner StringImpl. This patch calculates the required size of memory and selects the more efficient one.
590
591         * wtf/text/StringImpl.h:
592         (WTF::StringImpl::isSubString const):
593         (WTF::StringImpl::createSubstringSharingImpl):
594
595 2019-02-08  Alex Christensen  <achristensen@webkit.org>
596
597         Add SPI to use networking daemon instead of XPC service
598         https://bugs.webkit.org/show_bug.cgi?id=194427
599
600         Reviewed by Geoffrey Garen.
601
602         * wtf/spi/darwin/XPCSPI.h:
603         Instead of using XPC bootstrap SPI, we just send a separate message.
604         xpc_copy_bootstrap does not seem to work in  daemons.
605
606 2019-02-08  Truitt Savell  <tsavell@apple.com>
607
608         Unreviewed, rolling out r241197.
609
610         Broke iOS Simulator Debug build and casued 1 API failure on
611         High Sierra
612
613         Reverted changeset:
614
615         "Add SPI to use networking daemon instead of XPC service"
616         https://bugs.webkit.org/show_bug.cgi?id=194427
617         https://trac.webkit.org/changeset/241197
618
619 2019-02-08  Alex Christensen  <achristensen@webkit.org>
620
621         Add SPI to use networking daemon instead of XPC service
622         https://bugs.webkit.org/show_bug.cgi?id=194427
623
624         Reviewed by Geoffrey Garen.
625
626         * wtf/spi/darwin/XPCSPI.h:
627         Instead of using XPC bootstrap SPI, we just send a separate message.
628         xpc_copy_bootstrap does not seem to work in  daemons.
629
630 2019-02-08  Benjamin Poulain  <benjamin@webkit.org>
631
632         clampTo(): do not convert the input to double when dealing with integers
633         https://bugs.webkit.org/show_bug.cgi?id=194263
634         <rdar://problem/47692312>
635
636         Reviewed by Darin Adler.
637
638         Previously, every use of clampTo() was converting the input to double,
639         doing the comparison in double, then casting back to whatever type was needed.
640
641         In many case, that was very wasteful. WebKit has many cases of clampTo() with
642         the same type as input/output, or with integer types of different size/sign.
643
644         This patch adds a few versions of clampTo() for the common cases seen in WebKit.
645         In each case, I tried to minimize the amount of conversion needed at runtime.
646
647         * wtf/MathExtras.h:
648         (clampTo):
649
650 2019-02-07  Chris Dumez  <cdumez@apple.com>
651
652         Mark more heap-allocated classes as fast allocated
653         https://bugs.webkit.org/show_bug.cgi?id=194422
654
655         Reviewed by Ryosuke Niwa.
656
657         * wtf/Function.h:
658         (WTF::Function<Out):
659         * wtf/RefCounter.h:
660         * wtf/URL.h:
661         * wtf/text/StringView.cpp:
662
663 2019-02-07  Per Arne Vollan  <pvollan@apple.com>
664
665         [macOS] Block coreservicesd in sandbox.
666         https://bugs.webkit.org/show_bug.cgi?id=192670
667
668         Reviewed by Alexey Proskuryakov.
669
670         Add HAVE_CSCHECKFIXDISABLE define.
671
672         * wtf/Platform.h:
673
674 2019-02-07  Eric Carlson  <eric.carlson@apple.com>
675
676         [MSE] Convert debug-only logging to runtime logging
677         https://bugs.webkit.org/show_bug.cgi?id=194348
678         <rdar://problem/47566449>
679
680         Reviewed by Jer Noble.
681
682         * wtf/LoggerHelper.h:
683         (WTF::LoggerHelper::childLogIdentifier const): Helper to generate a log identifier for an
684         object that is associated with another logging object.
685         * wtf/MediaTime.cpp:
686         (WTF::MediaTime::toJSONObject const):
687         (WTF::MediaTime::toJSONString const):
688         (WTF::MediaTimeRange::toJSONString const):
689         (WTF::toJSONStringInternal): Deleted.
690         * wtf/MediaTime.h:
691
692 2019-02-05  Keith Rollin  <krollin@apple.com>
693
694         Enable the automatic checking and regenerations of .xcfilelists during builds
695         https://bugs.webkit.org/show_bug.cgi?id=194124
696         <rdar://problem/47721277>
697
698         Reviewed by Tim Horton.
699
700         Bug 193790 add a facility for checking -- during build time -- that
701         any needed .xcfilelist files are up-to-date and for updating them if
702         they are not. This facility was initially opt-in by setting
703         WK_ENABLE_CHECK_XCFILELISTS until other pieces were in place and until
704         the process seemed robust. Its now time to enable this facility and
705         make it opt-out. If there is a need to disable this facility, set and
706         export WK_DISABLE_CHECK_XCFILELISTS=1 in your environment before
707         running `make` or `build-webkit`, or before running Xcode from the
708         command line.
709
710         Additionally, remove the step that generates a list of source files
711         going into the UnifiedSources build step. It's only necessarily to
712         specify Sources.txt and SourcesCocoa.txt as inputs.
713
714         * Scripts/generate-unified-source-bundles.rb:
715
716 2019-02-05  Yusuke Suzuki  <ysuzuki@apple.com>
717
718         [JSC] Shrink sizeof(UnlinkedCodeBlock)
719         https://bugs.webkit.org/show_bug.cgi?id=194281
720
721         Reviewed by Michael Saboff.
722
723         * wtf/TriState.h:
724
725 2019-02-05  Zan Dobersek  <zdobersek@igalia.com>
726
727         [GLib] Stop URI-escaping file system representations
728         https://bugs.webkit.org/show_bug.cgi?id=194213
729
730         Reviewed by Carlos Garcia Campos.
731
732         Stop URI-escaping of file representation strings in
733         FileSystem::stringFromFileSystemRepresentation(), and URI-unescaping
734         of strings in FileSystem::fileSystemRepresentation().
735
736         This behavior deviates from POSIX and CF implementations and is
737         currently breaking IndexedDB-specific calculation of database sizes due
738         to directory components used in that process that are URL-based and are
739         as such URI-escaped. When unescaped, those single directory components
740         explode into multiple directory components, leading to incorrect total
741         database size calculation when iterating the database directory.
742
743         FileSystem::stringFromFileSystemRepresentation() now retrieves GLib's
744         filename charsets and in worst case converts the filesystem
745         representation to UTF-8 before String::fromUTF8() is used.
746         FileSystem::fileSystemRepresentation() reverses that process, taking
747         String's UTF-8 data and converting it to target charset if necessary.
748
749         Other FileSystem functions are adjusted to convert passed-in String
750         objects to filesystem representations.
751
752         * wtf/glib/FileSystemGlib.cpp:
753         (WTF::FileSystemImpl::stringFromFileSystemRepresentation):
754         (WTF::FileSystemImpl::fileSystemRepresentation):
755         (WTF::FileSystemImpl::validRepresentation):
756         (WTF::FileSystemImpl::filenameForDisplay):
757         (WTF::FileSystemImpl::fileExists):
758         (WTF::FileSystemImpl::deleteFile):
759         (WTF::FileSystemImpl::deleteEmptyDirectory):
760         (WTF::FileSystemImpl::getFileStat):
761         (WTF::FileSystemImpl::getFileLStat):
762         (WTF::FileSystemImpl::makeAllDirectories):
763         (WTF::FileSystemImpl::createSymbolicLink):
764         (WTF::FileSystemImpl::pathGetFileName):
765         (WTF::FileSystemImpl::getVolumeFreeSpace):
766         (WTF::FileSystemImpl::directoryName):
767         (WTF::FileSystemImpl::listDirectory):
768         (WTF::FileSystemImpl::openFile):
769         (WTF::FileSystemImpl::moveFile):
770         (WTF::FileSystemImpl::hardLinkOrCopyFile):
771         (WTF::FileSystemImpl::getFileDeviceId): Align with POSIX implementation
772         and treat input CString as an existing filesystem representation.
773         (WTF::FileSystemImpl::unescapedFilename): Deleted.
774
775 2019-02-04  Ms2ger  <Ms2ger@igalia.com>
776
777         [GTK][WPE] Need a function to convert internal URI to display ("pretty") URI
778         https://bugs.webkit.org/show_bug.cgi?id=174816
779
780         Reviewed by Michael Catanzaro.
781
782         Translate userVisibleString and dependent code into platform-neutral C++
783         in wtf/URLHelpers.{h,cpp}.
784
785         * WTF.xcodeproj/project.pbxproj:
786         * wtf/CMakeLists.txt:
787         * wtf/URLHelpers.cpp: Added.
788         (WTF::URLHelpers::loadIDNScriptWhiteList):
789         (WTF::URLHelpers::isArmenianLookalikeCharacter):
790         (WTF::URLHelpers::isArmenianScriptCharacter):
791         (WTF::URLHelpers::isASCIIDigitOrValidHostCharacter):
792         (WTF::URLHelpers::isLookalikeCharacter):
793         (WTF::URLHelpers::whiteListIDNScript):
794         (WTF::URLHelpers::initializeDefaultIDNScriptWhiteList):
795         (WTF::URLHelpers::allCharactersInIDNScriptWhiteList):
796         (WTF::URLHelpers::isSecondLevelDomainNameAllowedByTLDRules):
797         (WTF::URLHelpers::isRussianDomainNameCharacter):
798         (WTF::URLHelpers::allCharactersAllowedByTLDRules):
799         (WTF::URLHelpers::mapHostName):
800         (WTF::URLHelpers::collectRangesThatNeedMapping):
801         (WTF::URLHelpers::applyHostNameFunctionToMailToURLString):
802         (WTF::URLHelpers::applyHostNameFunctionToURLString):
803         (WTF::URLHelpers::mapHostNames):
804         (WTF::URLHelpers::createStringWithEscapedUnsafeCharacters):
805         (WTF::URLHelpers::toNormalizationFormC):
806         (WTF::URLHelpers::userVisibleURL):
807         * wtf/URLHelpers.h: Added.
808         * wtf/cocoa/NSURLExtras.mm:
809         (WTF::URLHelpers::loadIDNScriptWhiteList):
810         (WTF::decodePercentEscapes):
811         (WTF::decodeHostName):
812         (WTF::encodeHostName):
813         (WTF::URLWithUserTypedString):
814         (WTF::userVisibleString):
815
816 2019-02-03  Commit Queue  <commit-queue@webkit.org>
817
818         Unreviewed, rolling out r240896.
819         https://bugs.webkit.org/show_bug.cgi?id=194202
820
821         "Fixes leaks, but is probably not the correct fix." (Requested
822         by ddkilzer on #webkit).
823
824         Reverted changeset:
825
826         "Leak of WTF::StringImpl under SymbolImpl::createNullSymbol()
827         (48 bytes) in com.apple.WebKit.WebContent running layout
828         tests"
829         https://bugs.webkit.org/show_bug.cgi?id=193291
830         https://trac.webkit.org/changeset/240896
831
832 2019-02-02  David Kilzer  <ddkilzer@apple.com>
833
834         Leak of WTF::StringImpl under SymbolImpl::createNullSymbol() (48 bytes) in com.apple.WebKit.WebContent running layout tests
835         <https://webkit.org/b/193291>
836         <rdar://problem/46655953>
837
838         Reviewed by Keith Miller.
839
840         * wtf/text/SymbolImpl.h:
841         (WTF::SymbolImpl::~SymbolImpl): Fix the leak by implementing the
842         class destructor that calls StringImpl::deref() on `m_owner`.
843         Two of the three constructors leak the StringImpl when setting
844         `m_owner`, so we need to balance that by manually calling
845         deref().
846
847 2018-12-16  Darin Adler  <darin@apple.com>
848
849         Convert additional String::format clients to alternative approaches
850         https://bugs.webkit.org/show_bug.cgi?id=192746
851
852         Reviewed by Alexey Proskuryakov.
853
854         * wtf/JSONValues.cpp:
855         (WTF::appendDoubleQuotedStringEscapedCharacter): Renamed from
856         escapeChar and reordered arguments to make sense as an append function.
857         (WTF::appendDoubleQuotedString): Renamed from doubleQuoteString,
858         reordered arguments to make sense as an append function, take a
859         StringView instead of a String, used early exit to make the code
860         a bit easier to read. Use the ASCIIHexDigit functions to construct
861         a hex number a nibble at a time rather than using String::format.
862         (WTF::JSONImpl::Value::writeJSON const): Update for name change.
863         (WTF::JSONImpl::ObjectBase::writeJSON const): Ditto.
864
865 2019-01-31  Carlos Garcia Campos  <cgarcia@igalia.com>
866
867         Unreviewed. Fix WPE compile warnings due to deprecated glib API.
868
869         * wtf/Platform.h:
870
871 2019-01-29  Chris Dumez  <cdumez@apple.com>
872
873         Make sure WTF::generateObjectIdentifier() internal counter does not get duplicated
874         https://bugs.webkit.org/show_bug.cgi?id=193848
875
876         Reviewed by Youenn Fablet.
877
878         Move WTF::generateObjectIdentifier()'s internal counter out-of-line so make sure it never gets
879         duplicated at each call site. This has caused some hard-to-debug issues with duplicate
880         identifiers such as Bug 193761.
881
882         Also move it to ObjectIdentifier and rename it to generate() as this make call sites nicer
883         when they have a typedef for the ObjectIdentifier<T> type.
884
885         * WTF.xcodeproj/project.pbxproj:
886         * wtf/CMakeLists.txt:
887         * wtf/ObjectIdentifier.cpp: Copied from Source/WebCore/platform/Process.cpp.
888         (WTF::ObjectIdentifierBase::generateIdentifierInternal):
889         (WTF::ObjectIdentifierBase::generateThreadSafeIdentifierInternal):
890         * wtf/ObjectIdentifier.h:
891         (WTF::ObjectIdentifier::generate):
892         (WTF::ObjectIdentifier::generateThreadSafe):
893
894 2019-01-28  Ross Kirsling  <ross.kirsling@sony.com>
895
896         Move platform-specific files out of WTF root directory.
897         https://bugs.webkit.org/show_bug.cgi?id=193929
898
899         Reviewed by Alex Christensen.
900
901         * WTF.xcodeproj/project.pbxproj:
902         * wtf/CMakeLists.txt:
903         * wtf/PlatformGTK.cmake:
904         * wtf/PlatformJSCOnly.cmake:
905         * wtf/PlatformMac.cmake:
906         * wtf/PlatformPlayStation.cmake:
907         * wtf/PlatformWPE.cmake:
908         * wtf/PlatformWin.cmake:
909         * wtf/cf/RunLoopTimerCF.cpp: Renamed from Source/WTF/wtf/RunLoopTimerCF.cpp.
910         * wtf/cf/SchedulePairCF.cpp: Renamed from Source/WTF/wtf/SchedulePairCF.cpp.
911         * wtf/mac/SchedulePairMac.mm: Renamed from Source/WTF/wtf/SchedulePairMac.mm.
912         * wtf/posix/OSAllocatorPOSIX.cpp: Renamed from Source/WTF/wtf/OSAllocatorPosix.cpp.
913         * wtf/posix/ThreadingPOSIX.cpp: Renamed from Source/WTF/wtf/ThreadingPthreads.cpp.
914         * wtf/win/CONTRIBUTORS.pthreads-win32: Renamed from Source/WTF/wtf/CONTRIBUTORS.pthreads-win32.
915         * wtf/win/OSAllocatorWin.cpp: Renamed from Source/WTF/wtf/OSAllocatorWin.cpp.
916         * wtf/win/ThreadSpecificWin.cpp: Renamed from Source/WTF/wtf/ThreadSpecificWin.cpp.
917         * wtf/win/ThreadingWin.cpp: Renamed from Source/WTF/wtf/ThreadingWin.cpp.
918
919 2019-01-28  Andy Estes  <aestes@apple.com>
920
921         [watchOS] Enable Parental Controls content filtering
922         https://bugs.webkit.org/show_bug.cgi?id=193939
923         <rdar://problem/46641912>
924
925         Reviewed by Ryosuke Niwa.
926
927         * wtf/Platform.h:
928
929 2019-01-28  Ross Kirsling  <ross.kirsling@sony.com>
930
931         [JSCOnly][WTF] Expose FileSystem.
932         https://bugs.webkit.org/show_bug.cgi?id=193789
933
934         Reviewed by Don Olmstead.
935
936         * wtf/FileSystem.h:
937         * wtf/PlatformJSCOnly.cmake:
938         * wtf/posix/FileSystemPOSIX.cpp:
939         (WTF::FileSystemImpl::getVolumeFreeSpace):
940         * wtf/win/FileSystemWin.cpp:
941         (WTF::FileSystemImpl::fileSystemRepresentation):
942
943 2019-01-28  Eric Carlson  <eric.carlson@apple.com>
944
945         AVStreamSession isn't always available, make a HAVE compile flag for it
946         https://bugs.webkit.org/show_bug.cgi?id=193889
947         <rdar://problem/47452863>
948
949         Reviewed by Jer Noble.
950
951         * wtf/FeatureDefines.h:
952
953 2018-12-15  Darin Adler  <darin@apple.com>
954
955         Replace many uses of String::format with more type-safe alternatives
956         https://bugs.webkit.org/show_bug.cgi?id=192742
957
958         Reviewed by Mark Lam.
959
960         * wtf/WorkQueue.cpp:
961         (WTF::WorkQueue::concurrentApply): Use makeString.
962
963         * wtf/dtoa.cpp:
964         (WTF::dtoa): Use sprintf instead of String::format in the comments,
965         since these functions have nothing to do with WTF::String.
966
967 2019-01-25  Chris Dumez  <cdumez@apple.com>
968
969         [iOS] Add support for the download attribute
970         https://bugs.webkit.org/show_bug.cgi?id=167341
971         <rdar://problem/30296281>
972
973         Reviewed by Geoffrey Garen.
974
975         Turn on HTML download attribute support on iOS.
976
977         * wtf/FeatureDefines.h:
978
979 2019-01-25  David Kilzer  <ddkilzer@apple.com>
980
981         Move soft-linking of Lookup.framework out of LookupSPI.h
982         <https://webkit.org/b/193815>
983
984         Reviewed by Tim Horton.
985
986         * wtf/cocoa/SoftLinking.h:
987         (SOFT_LINK_CONSTANT_FOR_HEADER):
988         (SOFT_LINK_CONSTANT_FOR_SOURCE_WITH_EXPORT):
989         (SOFT_LINK_CONSTANT_MAY_FAIL_FOR_HEADER):
990         - Remove local declaration of constant.  This should be handled
991           by including *SPI.h or "real" headers.
992         (SOFT_LINK_CONSTANT_MAY_FAIL_FOR_SOURCE_WITH_EXPORT):
993         - Remove local declaration of constant.
994         - Rename from SOFT_LINK_CONSTANT_MAY_FAIL_FOR_SOURCE() and add
995           `export` argument to support exporting of functions.
996         (SOFT_LINK_CONSTANT_MAY_FAIL_FOR_SOURCE):
997         - Redefine in terms of
998           SOFT_LINK_CONSTANT_MAY_FAIL_FOR_SOURCE_WITH_EXPORT().
999
1000 2019-01-24  Youenn Fablet  <youenn@apple.com>
1001
1002         Use MonotonicTime in WorkerRunLoop
1003         https://bugs.webkit.org/show_bug.cgi?id=193417
1004
1005         Reviewed by Saam Barati.
1006
1007         * wtf/MessageQueue.h:
1008         (WTF::MessageQueue<DataType>::waitForMessage):
1009         (WTF::MessageQueue<DataType>::waitForMessageFilteredWithTimeout):
1010
1011 2019-01-24  Ross Kirsling  <ross.kirsling@sony.com>
1012
1013         Move FileSystem to WTF
1014         https://bugs.webkit.org/show_bug.cgi?id=193602
1015
1016         Reviewed by Yusuke Suzuki.
1017
1018         * WTF.xcodeproj/project.pbxproj:
1019         * wtf/CMakeLists.txt:
1020         * wtf/FileMetadata.h: Renamed from Source/WebCore/platform/FileMetadata.h.
1021         * wtf/FileSystem.cpp: Renamed from Source/WebCore/platform/FileSystem.cpp.
1022         * wtf/FileSystem.h: Renamed from Source/WebCore/platform/FileSystem.h.
1023         * wtf/PlatformGTK.cmake:
1024         * wtf/PlatformMac.cmake:
1025         * wtf/PlatformPlayStation.cmake:
1026         * wtf/PlatformWPE.cmake:
1027         * wtf/PlatformWin.cmake:
1028         * wtf/cf/FileSystemCF.cpp: Renamed from Source/WebCore/platform/cf/FileSystemCF.cpp.
1029         * wtf/cocoa/FileSystemCocoa.mm: Renamed from Source/WebCore/platform/cocoa/FileSystemCocoa.mm.
1030         * wtf/glib/FileSystemGlib.cpp: Renamed from Source/WebCore/platform/glib/FileSystemGlib.cpp.
1031         * wtf/mac/FileSystemMac.mm: Renamed from Source/WebCore/platform/mac/FileSystemMac.mm.
1032         * wtf/posix/FileSystemPOSIX.cpp: Renamed from Source/WebCore/platform/posix/FileSystemPOSIX.cpp.
1033         * wtf/spi/mac/MetadataSPI.h: Renamed from Source/WebCore/PAL/pal/spi/mac/MetadataSPI.h.
1034         * wtf/win/FileSystemWin.cpp: Renamed from Source/WebCore/platform/win/FileSystemWin.cpp.
1035         * wtf/win/PathWalker.cpp: Renamed from Source/WebCore/platform/win/PathWalker.cpp.
1036         * wtf/win/PathWalker.h: Renamed from Source/WebCore/platform/win/PathWalker.h.
1037
1038 2019-01-24  Guillaume Emont  <guijemont@igalia.com>
1039
1040         [JSC] Reenable baseline JIT on mips
1041         https://bugs.webkit.org/show_bug.cgi?id=192983
1042
1043         Reviewed by Mark Lam.
1044
1045         Use baseline JIT by default on MIPS.
1046
1047         * wtf/Platform.h:
1048
1049 2019-01-24  David Kilzer  <ddkilzer@apple.com>
1050
1051         Duplicate global variables: WTF::asciiCaseFoldTable
1052         <https://webkit.org/b/193726>
1053         <rdar://problem/47334622>
1054
1055         Reviewed by Michael Catanzaro.
1056
1057         * WTF.xcodeproj/project.pbxproj:
1058         * wtf/CMakeLists.txt:
1059         - Add ASCIICType.cpp to build systems.
1060
1061         * wtf/ASCIICType.cpp: Added.
1062         (WTF::asciiCaseFoldTable): Move table to here so there is only
1063         one copy.  Mark as exported for other frameworks to use.
1064         * wtf/ASCIICType.h:
1065         (WTF::asciiCaseFoldTable): Change to extern declaration, and
1066         mark as exported for other frameworks to use.
1067
1068 2019-01-23  Mark Lam  <mark.lam@apple.com>
1069
1070         ARM64E should not ENABLE(SEPARATED_WX_HEAP).
1071         https://bugs.webkit.org/show_bug.cgi?id=193744
1072         <rdar://problem/46262952>
1073
1074         Reviewed by Saam Barati.
1075
1076         * wtf/Platform.h:
1077
1078 2019-01-23  David Kilzer  <ddkilzer@apple.com>
1079
1080         Switch remaining CoreMedia soft-linking in WebKit over to CoreMediaSoftLink.{cpp,h}
1081         <https://webkit.org/b/193694>
1082         <rdar://problem/47464025>
1083
1084         Reviewed by Tim Horton.
1085
1086         * wtf/win/SoftLinking.h:
1087         (SOFT_LINK_CONSTANT_FOR_SOURCE_WITH_EXPORT):
1088         - Implement for Windows.
1089         (SOFT_LINK_CONSTANT_FOR_SOURCE):
1090         - Define using SOFT_LINK_CONSTANT_FOR_SOURCE_WITH_EXPORT().
1091
1092 2019-01-22  Tadeu Zagallo  <tzagallo@apple.com>
1093
1094         Cache bytecode to disk
1095         https://bugs.webkit.org/show_bug.cgi?id=192782
1096         <rdar://problem/46084932>
1097
1098         Reviewed by Keith Miller.
1099
1100         BitVectors have to be friends with JSC::CacheBitVector to allow
1101         serializing its buffer as part of the bytecode cache encoding.
1102
1103         * wtf/BitVector.h:
1104
1105 2019-01-21  Claudio Saavedra  <csaavedra@igalia.com>
1106
1107         [GTK] Speculative build fix for Ubuntu LTS
1108         https://bugs.webkit.org/show_bug.cgi?id=193651
1109
1110         Unreviewed build fix.
1111
1112         * wtf/Assertions.h: Add missing <cstdlib> include.
1113
1114 2019-01-20  Saam Barati  <sbarati@apple.com>
1115
1116         Rollout r240210: It broke tests on iOS
1117         https://bugs.webkit.org/show_bug.cgi?id=193640
1118
1119         Unreviewed.
1120
1121         * wtf/BitVector.h:
1122
1123 2019-01-20  Tadeu Zagallo  <tzagallo@apple.com>
1124
1125         Cache bytecode to disk
1126         https://bugs.webkit.org/show_bug.cgi?id=192782
1127         <rdar://problem/46084932>
1128
1129         Reviewed by Keith Miller.
1130
1131         BitVectors have to be friends with JSC::CacheBitVector to allow
1132         serializing its buffer as part of the bytecode cache encoding.
1133
1134         * wtf/BitVector.h:
1135
1136 2019-01-18  Tim Horton  <timothy_horton@apple.com>
1137
1138         Get rid of ADVANCED_SPELL_CHECKING
1139         https://bugs.webkit.org/show_bug.cgi?id=193592
1140
1141         Reviewed by Wenson Hsieh.
1142
1143         * wtf/Platform.h:
1144
1145 2019-01-18  Jer Noble  <jer.noble@apple.com>
1146
1147         SDK_VARIANT build destinations should be separate from non-SDK_VARIANT builds
1148         https://bugs.webkit.org/show_bug.cgi?id=189553
1149
1150         Reviewed by Tim Horton.
1151
1152         * Configurations/Base.xcconfig:
1153         * Configurations/SDKVariant.xcconfig: Added.
1154
1155 2019-01-18  Keith Miller  <keith_miller@apple.com>
1156
1157         Gigacages should start allocations from a slide
1158         https://bugs.webkit.org/show_bug.cgi?id=193523
1159
1160         Reviewed by Mark Lam.
1161
1162         This patch changes some macros into constants since macros are the
1163         devil.
1164
1165         * wtf/Gigacage.cpp:
1166         * wtf/Gigacage.h:
1167
1168 2019-01-18  Matt Lewis  <jlewis3@apple.com>
1169
1170         Unreviewed, rolling out r240160.
1171
1172         This broke multiple internal builds.
1173
1174         Reverted changeset:
1175
1176         "Gigacages should start allocations from a slide"
1177         https://bugs.webkit.org/show_bug.cgi?id=193523
1178         https://trac.webkit.org/changeset/240160
1179
1180 2019-01-18  Keith Miller  <keith_miller@apple.com>
1181
1182         Gigacages should start allocations from a slide
1183         https://bugs.webkit.org/show_bug.cgi?id=193523
1184
1185         Reviewed by Mark Lam.
1186
1187         This patch changes some macros into constants since macros are the
1188         devil.
1189
1190         * wtf/Gigacage.cpp:
1191         * wtf/Gigacage.h:
1192
1193 2019-01-17  Truitt Savell  <tsavell@apple.com>
1194
1195         Unreviewed, rolling out r240124.
1196
1197         This commit broke an internal build.
1198
1199         Reverted changeset:
1200
1201         "SDK_VARIANT build destinations should be separate from non-
1202         SDK_VARIANT builds"
1203         https://bugs.webkit.org/show_bug.cgi?id=189553
1204         https://trac.webkit.org/changeset/240124
1205
1206 2019-01-17  Jer Noble  <jer.noble@apple.com>
1207
1208         SDK_VARIANT build destinations should be separate from non-SDK_VARIANT builds
1209         https://bugs.webkit.org/show_bug.cgi?id=189553
1210
1211         Reviewed by Tim Horton.
1212
1213         * Configurations/Base.xcconfig:
1214         * Configurations/SDKVariant.xcconfig: Added.
1215
1216 2019-01-16  Keith Miller  <keith_miller@apple.com>
1217
1218         bmalloc should use JSC VM tag for gigacage
1219         https://bugs.webkit.org/show_bug.cgi?id=193496
1220
1221         Reviewed by Mark Lam.
1222
1223         Move most of the macros for vm tagging to bmalloc.
1224
1225         * wtf/VMTags.h:
1226
1227 2019-01-16  Alberto Garcia  <berto@igalia.com>
1228
1229         [WTF] Compilation fails with system malloc
1230         https://bugs.webkit.org/show_bug.cgi?id=172445
1231
1232         Reviewed by Michael Catanzaro.
1233
1234         Follow-up to r217270. The sysinfo() system call is specific to
1235         Linux so update the #ifdef checks accordingly.
1236
1237         * wtf/RAMSize.cpp:
1238         (WTF::computeRAMSize):
1239
1240 2019-01-15  Chris Dumez  <cdumez@apple.com>
1241
1242         Unreviewed, revert part of r239997 as it is not needed to fix the build.
1243
1244         * wtf/RefCounter.h:
1245
1246 2019-01-15  Alex Christensen  <achristensen@webkit.org>
1247
1248         Fix iOS build after r239993
1249         https://bugs.webkit.org/show_bug.cgi?id=193361
1250
1251         * wtf/RefCounter.h:
1252
1253 2019-01-14  Michael Catanzaro  <mcatanzaro@igalia.com>
1254
1255         Use unorm2_normalize instead of precomposedStringWithCanonicalMapping in userVisibleString
1256         https://bugs.webkit.org/show_bug.cgi?id=192945
1257
1258         Reviewed by Alex Christensen.
1259
1260         Replace use of the nice NSString function precomposedStringWithCanonicalMapping with the ICU
1261         API unorm2_normalize. This is to prep the code for translation to cross-platform C++. Of
1262         course this is much worse than the preexisting code, but this is just a transitional
1263         measure and not the final state of the code. It wouldn't make sense to do this if the code
1264         were to remain Objective C++.
1265
1266         * wtf/cocoa/NSURLExtras.mm:
1267         (WTF::toNormalizationFormC):
1268         (WTF::userVisibleString):
1269
1270 2019-01-14  Alex Christensen  <achristensen@webkit.org>
1271
1272         Bulgarian TLD should not punycode-encode URLs with Bulgarian Cyrillic characters
1273         https://bugs.webkit.org/show_bug.cgi?id=193411
1274         <rdar://problem/47215929>
1275
1276         Reviewed by Alexey Proskuryakov.
1277
1278         * wtf/cocoa/NSURLExtras.mm:
1279         (WTF::allCharactersAllowedByTLDRules):
1280
1281 2019-01-12  Timothy Hatcher  <timothy@apple.com>
1282
1283         Have prefers-color-scheme: light always match on macOS versions before Mojave.
1284         https://bugs.webkit.org/show_bug.cgi?id=191655
1285         rdar://problem/46074680
1286
1287         Reviewed by Megan Gardner.
1288
1289         * wtf/Platform.h: Define HAVE_OS_DARK_MODE_SUPPORT on macOS 10.14.
1290
1291 2019-01-11  David Kilzer  <ddkilzer@apple.com>
1292
1293         Follow-up: WorkQueue::concurrentApply() passes a raw pointer to a temporary String to Thread::create().
1294         https://bugs.webkit.org/show_bug.cgi?id=191350
1295
1296         * wtf/WorkQueue.cpp:
1297         (WTF::WorkQueue::concurrentApply): Fix whitespace.
1298
1299 2019-01-11  Devin Rousso  <drousso@apple.com>
1300
1301         Fix style CFNetworkSPI style checker warnings from r239698
1302         https://bugs.webkit.org/show_bug.cgi?id=193369
1303
1304         Reviewed by Joseph Pecoraro.
1305
1306         * wtf/Platform.h:
1307
1308 2019-01-11  Said Abou-Hallawa  <sabouhallawa@apple.com>
1309
1310         WorkQueue::concurrentApply() passes a raw pointer to a temporary String to Thread::create().
1311         https://bugs.webkit.org/show_bug.cgi?id=191350
1312
1313         Reviewed by Brent Fulgham.
1314
1315         The non COCOA version of WorkQueue::concurrentApply() creates a temporary
1316         String for the threadName and passes the raw pointer of this String to
1317         Thread::create(). After freeing this String, Thread::entryPoint() uses
1318         the raw char pointer to internally initialize the thread.
1319
1320         The fix is to use a single literal string for all the threads' names since
1321         they are created for a thread-pool.
1322
1323         * wtf/WorkQueue.cpp:
1324         (WTF::WorkQueue::concurrentApply):
1325
1326 2019-01-11  Dominik Infuehr  <dinfuehr@igalia.com>
1327
1328         Enable DFG on ARM/Linux again
1329         https://bugs.webkit.org/show_bug.cgi?id=192496
1330
1331         Reviewed by Yusuke Suzuki.
1332
1333         After changing the bytecode format DFG was disabled on all 32-bit
1334         architectures. Enable DFG now again on ARM/Linux.
1335
1336         * wtf/Platform.h:
1337
1338 2019-01-10  Commit Queue  <commit-queue@webkit.org>
1339
1340         Unreviewed, rolling out r239825.
1341         https://bugs.webkit.org/show_bug.cgi?id=193330
1342
1343         Broke tests on armv7/linux bots (Requested by guijemont on
1344         #webkit).
1345
1346         Reverted changeset:
1347
1348         "Enable DFG on ARM/Linux again"
1349         https://bugs.webkit.org/show_bug.cgi?id=192496
1350         https://trac.webkit.org/changeset/239825
1351
1352 2019-01-10  John Wilander  <wilander@apple.com>
1353
1354         Override the session configuration for cookieAcceptPolicy
1355         https://bugs.webkit.org/show_bug.cgi?id=190925
1356         <rdar://problem/45497382>
1357
1358         Reviewed by Alexey Proskuryakov and Alex Christensen.
1359
1360         * wtf/Platform.h:
1361             Definition of HAVE_CFNETWORK_OVERRIDE_SESSION_COOKIE_ACCEPT_POLICY.
1362
1363 2019-01-10  Dominik Infuehr  <dinfuehr@igalia.com>
1364
1365         Enable DFG on ARM/Linux again
1366         https://bugs.webkit.org/show_bug.cgi?id=192496
1367
1368         Reviewed by Yusuke Suzuki.
1369
1370         After changing the bytecode format DFG was disabled on all 32-bit
1371         architectures. Enable DFG now again on ARM/Linux.
1372
1373         * wtf/Platform.h:
1374
1375 2019-01-10  Carlos Garcia Campos  <cgarcia@igalia.com>
1376
1377         [FreeType] Color emoji not properly supported
1378         https://bugs.webkit.org/show_bug.cgi?id=191976
1379
1380         Reviewed by Michael Catanzaro.
1381
1382         Add a name for combining enclosing keycap character.
1383
1384         * wtf/unicode/CharacterNames.h:
1385
1386 2019-01-09  Carlos Eduardo Ramalho  <cadubentzen@gmail.com> and Fujii Hironori  <Hironori.Fujii@sony.com>
1387
1388         Use directory local sequential numbers for Unified Sources filenames instead of global sequential numbers for CMake
1389         https://bugs.webkit.org/show_bug.cgi?id=192391
1390
1391         Reviewed by Don Olmstead.
1392
1393         Unified Source Builds are using global sequential numbers for
1394         bundle filenames UnifiedSource{sequential-number}.cpp. As the
1395         result, every new source file added would shift the next ones and
1396         prevent compiler caches from speeding up consecutive builds e.g.
1397         in git-bisect sessions.
1398
1399         Changed it to directory local sequential numbers,
1400         UnifiedSource-{hash-of-dir-name}-{sequential-number-within-the-dir}.cpp.
1401
1402         This is affecting only CMake builds which is where no
1403         '--max-cpp-bundle-count' nor '--max-obj-c-bundle-count' options
1404         are set. Xcode builds still use the old convention.
1405
1406         * Scripts/generate-unified-source-bundles.rb: Add new instance
1407         variables @currentDirectory and @extraFiles to BundleManager.
1408         Still use global sequential numbers if --max-cpp-bundle-count or
1409         --max-obj-c-bundle-count is given.
1410
1411 2019-01-09  Alex Christensen  <achristensen@webkit.org>
1412
1413         Expand use of sourceApplicationAuditData
1414         https://bugs.webkit.org/show_bug.cgi?id=192995
1415         <rdar://problem/46627875>
1416
1417         Reviewed by Brady Eidson.
1418
1419         * wtf/Platform.h:
1420
1421 2019-01-09  Mark Lam  <mark.lam@apple.com>
1422
1423         Gigacage disabling checks should handle the GIGACAGE_ALLOCATION_CAN_FAIL case properly.
1424         https://bugs.webkit.org/show_bug.cgi?id=193292
1425         <rdar://problem/46485450>
1426
1427         Reviewed by Yusuke Suzuki.
1428
1429         Update the USE_SYSTEM_MALLOC version of Gigacage.h to match the bmalloc version.
1430
1431         * wtf/Gigacage.h:
1432
1433 2019-01-07  David Kilzer  <ddkilzer@apple.com>
1434
1435         Prefer RetainPtr<NSObject> to RetainPtr<NSObject *>
1436         <https://webkit.org/b/193056>
1437
1438         Reviewed by Alex Christensen.
1439
1440         * wtf/RetainPtr.h:
1441         (WTF::RetainPtr<T>::HelperPtrType):
1442         - Use C++ template metaprogramming to define a shared return
1443           type for adoptNS() and retainPtr() that uses
1444           RetainPtr<NSObject> instead of RetainPtr<NSObject *>.  The
1445           non-Objective-C typedef is used with retainPtr() for CFTypeRef
1446           objects.
1447         (WTF::adoptNS):
1448         - Only make declarations available when compilng with
1449           Objective-C.  The inline implementation is only available for
1450           Objective-C, so this makes the declarations consistent.
1451         - Change return type to remove '*' from NS types using
1452           RetainPtr<T>::HelperPtrType.
1453         (WTF::retainPtr):
1454         - Change return type to remove '*' from NS types using
1455           RetainPtr<T>::HelperPtrType.
1456
1457         * wtf/SchedulePair.h:
1458         - Remove '*' from RetainPtr<> type.
1459
1460 2019-01-07  Eric Carlson  <eric.carlson@apple.com>
1461
1462         A MediaTime timescale must never be zero
1463         https://bugs.webkit.org/show_bug.cgi?id=193156
1464         <rdar://problem/32504501>
1465
1466         Reviewed by Jer Noble.
1467
1468         * wtf/MediaTime.cpp:
1469         (WTF::greatestCommonDivisor): ASSERT if either parameter or return value is zero.
1470         (WTF::MediaTime::MediaTime): Create +/- infinity if passed zero timescale.
1471         (WTF::MediaTime::createWithFloat): Ditto.
1472         (WTF::MediaTime::createWithDouble): Ditto.
1473         (WTF::MediaTime::setTimeScale): Ditto.
1474
1475 2019-01-02  Alex Christensen  <achristensen@webkit.org>
1476
1477         Homograph with LATIN SMALL LETTER R WITH FISHHOOK
1478         https://bugs.webkit.org/show_bug.cgi?id=192944
1479
1480         Reviewed by Tim Horton.
1481
1482         * wtf/cocoa/NSURLExtras.mm:
1483         (WTF::isLookalikeCharacter):
1484
1485 2019-01-02  Commit Queue  <commit-queue@webkit.org>
1486
1487         Unreviewed, rolling out r239524.
1488         https://bugs.webkit.org/show_bug.cgi?id=193083
1489
1490         basic browsing seems not to work (Requested by thorton on
1491         #webkit).
1492
1493         Reverted changeset:
1494
1495         "Expand use of sourceApplicationAuditData"
1496         https://bugs.webkit.org/show_bug.cgi?id=192995
1497         https://trac.webkit.org/changeset/239524
1498
1499 2018-12-28  Yusuke Suzuki  <yusukesuzuki@slowstart.org>
1500
1501         Add ENABLE_UNIFIED_BUILDS option to cmake ports
1502         https://bugs.webkit.org/show_bug.cgi?id=193045
1503
1504         Reviewed by Don Olmstead.
1505
1506         * Scripts/generate-unified-source-bundles.rb:
1507
1508 2018-12-27  Alex Christensen  <achristensen@webkit.org>
1509
1510         Resurrect Mac CMake build
1511         https://bugs.webkit.org/show_bug.cgi?id=192658
1512
1513         Reviewed by Yusuke Suzuki.
1514
1515         * wtf/PlatformMac.cmake:
1516         * wtf/cf/CFURLExtras.cpp:
1517         * wtf/cf/CFURLExtras.h:
1518         * wtf/cf/URLCF.cpp:
1519         * wtf/cocoa/NSURLExtras.h:
1520         * wtf/cocoa/NSURLExtras.mm:
1521         * wtf/cocoa/URLCocoa.mm:
1522
1523 2018-12-21  Dan Bernstein  <mitz@apple.com>
1524
1525         Fixed building for macOS 10.13 using the macOS 10.14 SDK.
1526
1527         * wtf/Platform.h: Changed HAVE_AUTHORIZATION_STATUS_FOR_MEDIA_TYPE to depend on the
1528           deployment target, not the SDK.
1529
1530 2018-12-20  Yusuke Suzuki  <yusukesuzuki@slowstart.org>
1531
1532         [JSC] Implement "well-formed JSON.stringify" proposal
1533         https://bugs.webkit.org/show_bug.cgi?id=191677
1534
1535         Reviewed by Darin Adler.
1536
1537         This patch implements "well-formed JSON.stringify" proposal[1], which is now stage 3.
1538         JSON.stringify appended surrogate pair codes even if it is not paired appropriately.
1539         The proposal requires that broken surrogate pairs are unicode-escaped.
1540
1541         [1]: https://github.com/tc39/proposal-well-formed-stringify
1542
1543         * wtf/text/StringBuilderJSON.cpp:
1544         (WTF::appendQuotedJSONStringInternal):
1545
1546 2018-12-21  Alex Christensen  <achristensen@webkit.org>
1547
1548         Expand use of sourceApplicationAuditData
1549         https://bugs.webkit.org/show_bug.cgi?id=192995
1550         <rdar://problem/46627875>
1551
1552         Reviewed by Brady Eidson.
1553
1554         * wtf/Platform.h:
1555
1556 2018-12-21  Alex Christensen  <achristensen@webkit.org>
1557
1558         Revert r239503.
1559         https://bugs.webkit.org/show_bug.cgi?id=192944
1560
1561         * wtf/cocoa/NSURLExtras.mm:
1562         (WTF::isLookalikeCharacter):
1563
1564 2018-12-20  Brent Fulgham  <bfulgham@apple.com>
1565
1566         Show punycode if URL contains Latin small letter dotless i
1567         https://bugs.webkit.org/show_bug.cgi?id=192944
1568         <rdar://problem/46103047>
1569
1570         Reviewed by Andy Estes.
1571
1572         Revise our "lookalike character" logic to include the small Latin
1573         dotless i character.
1574
1575         Test: fast/url/host.html
1576
1577         * wtf/cocoa/NSURLExtras.mm:
1578         (WTF::isLookalikeCharacter):
1579
1580 2018-12-20  Chris Dumez  <cdumez@apple.com>
1581
1582         Use Optional::hasValue() instead of Optional::has_value()
1583         https://bugs.webkit.org/show_bug.cgi?id=192948
1584
1585         Reviewed by Tim Horton.
1586
1587         * wtf/Hasher.h:
1588         (WTF::add):
1589         * wtf/Optional.h:
1590
1591 2018-12-20  Chris Dumez  <cdumez@apple.com>
1592
1593         Use Optional::valueOr() instead of Optional::value_or()
1594         https://bugs.webkit.org/show_bug.cgi?id=192933
1595
1596         Reviewed by Geoffrey Garen.
1597
1598         * wtf/Optional.h:
1599         (WTF::Optional<T::valueOr const):
1600
1601 2018-12-20  Tadeu Zagallo  <tzagallo@apple.com>
1602
1603         Consistently use MaxLength for all WTF strings
1604         https://bugs.webkit.org/show_bug.cgi?id=192853
1605         <rdar://problem/45726906>
1606
1607         Reviewed by Mark Lam.
1608
1609         MaxLength was introduced to be INT_MAX for WTF::String and StringImpl,
1610         but all the assertions were still done using UINT_MAX. Change it to
1611         use MaxLength for all checks.
1612
1613         * wtf/text/StringImpl.cpp:
1614         (WTF::StringImpl::createUninitializedInternalNonEmpty):
1615         (WTF::StringImpl::reallocateInternal):
1616         (WTF::StringImpl::create):
1617         (WTF::StringImpl::convertToLowercaseWithoutLocale):
1618         (WTF::StringImpl::convertToUppercaseWithoutLocale):
1619         (WTF::StringImpl::convertToLowercaseWithLocale):
1620         (WTF::StringImpl::convertToUppercaseWithLocale):
1621         (WTF::StringImpl::foldCase):
1622         (WTF::StringImpl::find):
1623         (WTF::StringImpl::replace):
1624         (WTF::StringImpl::utf8ForCharacters):
1625         (WTF::StringImpl::tryGetUtf8ForRange const):
1626         * wtf/text/StringImpl.h:
1627         (WTF::lengthOfNullTerminatedString):
1628         (WTF::StringImpl::tryCreateUninitialized):
1629         (WTF::StringImpl::adopt):
1630         (WTF::StringImpl::maxInternalLength):
1631         * wtf/text/WTFString.cpp:
1632         (WTF::String::append):
1633         (WTF::String::insert):
1634         (WTF::String::fromUTF8):
1635         * wtf/text/WTFString.h:
1636         (WTF::String::reverseFind const):
1637
1638 2018-12-19  Chris Dumez  <cdumez@apple.com>
1639
1640         wtf/Optional.h: move-constructor and move-assignment operator should disengage the value being moved from
1641         https://bugs.webkit.org/show_bug.cgi?id=192728
1642         <rdar://problem/46746779>
1643
1644         Reviewed by Geoff Garen.
1645
1646         Update optional's move-constructor and move-assignment operator to disengage the value being moved from.
1647         Rename to optional to Optional, make_optional() to makeOptional(), and move class from std to WTF namespace.
1648
1649         Based on patch by David Kilzer.
1650
1651         * wtf/*:
1652
1653 2018-12-19  Eric Carlson  <eric.carlson@apple.com>
1654
1655         [MediaStream] Force system camera/microphone TCC prompt if necessary
1656         https://bugs.webkit.org/show_bug.cgi?id=192820
1657         <rdar://problem/42680098>
1658
1659         Reviewed by Jer Noble.
1660
1661         * wtf/Platform.h: Define HAVE_AUTHORIZATION_STATUS_FOR_MEDIA_TYPE.
1662
1663 2018-12-17  Chris Fleizach  <cfleizach@apple.com>
1664
1665         Some builds are broken after r239262
1666         https://bugs.webkit.org/show_bug.cgi?id=192777
1667
1668         Reviewed by Simon Fraser.
1669
1670         * wtf/Platform.h:
1671
1672 2018-12-17  Daniel Bates  <dabates@apple.com>
1673
1674         Support concatenating StringView with other string types
1675         https://bugs.webkit.org/show_bug.cgi?id=177566
1676
1677         Reviewed by Darin Adler.
1678
1679         Add operator+ overloads to StringOperators.h to support concatenating a StringView with
1680         other string types (e.g. String). This lets a person write more naturally looking code:
1681
1682         stringView + string
1683
1684         Instead of:
1685
1686         makeString(stringView, string)
1687
1688         * wtf/text/StringOperators.h:
1689         (WTF::operator+): Added various operator+ overloads.
1690
1691 2018-12-17  Commit Queue  <commit-queue@webkit.org>
1692
1693         Unreviewed, rolling out r239265 and r239274.
1694         https://bugs.webkit.org/show_bug.cgi?id=192765
1695
1696         unorm_normalize is deprecated, and broke an internal build
1697         (Requested by Truitt on #webkit).
1698
1699         Reverted changesets:
1700
1701         "[GTK][WPE] Need a function to convert internal URI to display
1702         ("pretty") URI"
1703         https://bugs.webkit.org/show_bug.cgi?id=174816
1704         https://trac.webkit.org/changeset/239265
1705
1706         "Fix the Apple Internal Mac build with a newer SDK"
1707         https://trac.webkit.org/changeset/239274
1708
1709 2018-12-17  Daniel Bates  <dabates@apple.com>
1710
1711         Fix the Apple Internal Mac build with a newer SDK
1712
1713         * wtf/URLHelpers.cpp:
1714         (WTF::URLHelpers::userVisibleURL):
1715
1716 2018-12-17  Matt Lewis  <jlewis3@apple.com>
1717
1718         Unreviewed, rolling out r239254.
1719
1720         This broke the Windows 10 Debug build
1721
1722         Reverted changeset:
1723
1724         "Replace many uses of String::format with more type-safe
1725         alternatives"
1726         https://bugs.webkit.org/show_bug.cgi?id=192742
1727         https://trac.webkit.org/changeset/239254
1728
1729 2018-12-17  Ms2ger  <Ms2ger@igalia.com>
1730
1731         [GTK][WPE] Need a function to convert internal URI to display ("pretty") URI
1732         https://bugs.webkit.org/show_bug.cgi?id=174816
1733
1734         Reviewed by Michael Catanzaro.
1735
1736         Translate userVisibleString and dependent code into platform-neutral C++
1737         in wtf/URLHelpers.{h,cpp}.
1738
1739         * WTF.xcodeproj/project.pbxproj:
1740         * wtf/CMakeLists.txt:
1741         * wtf/URLHelpers.cpp: Added.
1742         (WTF::URLHelpers::loadIDNScriptWhiteList):
1743         (WTF::URLHelpers::isArmenianLookalikeCharacter):
1744         (WTF::URLHelpers::isArmenianScriptCharacter):
1745         (WTF::URLHelpers::isASCIIDigitOrValidHostCharacter):
1746         (WTF::URLHelpers::isLookalikeCharacter):
1747         (WTF::URLHelpers::whiteListIDNScript):
1748         (WTF::URLHelpers::initializeDefaultIDNScriptWhiteList):
1749         (WTF::URLHelpers::allCharactersInIDNScriptWhiteList):
1750         (WTF::URLHelpers::isSecondLevelDomainNameAllowedByTLDRules):
1751         (WTF::URLHelpers::isRussianDomainNameCharacter):
1752         (WTF::URLHelpers::allCharactersAllowedByTLDRules):
1753         (WTF::URLHelpers::mapHostName):
1754         (WTF::URLHelpers::collectRangesThatNeedMapping):
1755         (WTF::URLHelpers::applyHostNameFunctionToMailToURLString):
1756         (WTF::URLHelpers::applyHostNameFunctionToURLString):
1757         (WTF::URLHelpers::mapHostNames):
1758         (WTF::URLHelpers::createStringWithEscapedUnsafeCharacters):
1759         (WTF::URLHelpers::userVisibleURL):
1760         * wtf/URLHelpers.h: Added.
1761         * wtf/cocoa/NSURLExtras.mm:
1762         (WTF::URLHelpers::loadIDNScriptWhiteList):
1763         (WTF::decodePercentEscapes):
1764         (WTF::decodeHostName):
1765         (WTF::encodeHostName):
1766         (WTF::URLWithUserTypedString):
1767         (WTF::userVisibleString):
1768
1769 2018-12-15  Darin Adler  <darin@apple.com>
1770
1771         Use warning-ignoring macros more consistently and simply
1772         https://bugs.webkit.org/show_bug.cgi?id=192743
1773
1774         Reviewed by Mark Lam.
1775
1776         * wtf/Assertions.h: Use IGNORE_WARNINGS_BEGIN rather than
1777         IGNORE_CLANG_WARNINGS_BEGIN since we don't need special handling for
1778         non-clang compilers, in part since the code is already inside
1779         #if COMPILER(CLANG), but also because it would be harmless to ignore this
1780         warning on non-clang; we should almost never use IGNORE_CLANG_WARNINGS_BEGIN.
1781
1782 2018-12-15  Darin Adler  <darin@apple.com>
1783
1784         Replace many uses of String::format with more type-safe alternatives
1785         https://bugs.webkit.org/show_bug.cgi?id=192742
1786
1787         Reviewed by Mark Lam.
1788
1789         * wtf/WorkQueue.cpp:
1790         (WTF::WorkQueue::concurrentApply): Use makeString.
1791
1792         * wtf/dtoa.cpp:
1793         (WTF::dtoa): Use sprintf instead of String::format in the comments,
1794         since these functions have nothing to do with WTF::String.
1795
1796 2018-12-14  Darin Adler  <darin@apple.com>
1797
1798         Verify size is valid in USE_SYSTEM_MALLOC version of tryAllocateZeroedVirtualPages
1799         https://bugs.webkit.org/show_bug.cgi?id=192738
1800         rdar://problem/37502342
1801
1802         Reviewed by Mark Lam.
1803
1804         * wtf/Gigacage.cpp:
1805         (Gigacage::tryAllocateZeroedVirtualPages): Added a RELEASE_ASSERT just
1806         like the one in tryLargeZeroedMemalignVirtual in bmalloc.
1807
1808 2018-12-14  David Kilzer  <ddkilzer@apple.com>
1809
1810         clang-tidy: Fix unnecessary copy of AtomicString each time one is logged
1811         <https://webkit.org/b/192710>
1812         <rdar://problem/46738962>
1813
1814         Reviewed by Eric Carlson.
1815
1816         * wtf/Logger.h:
1817         (WTF::LogArgument::toString): Make argument a const reference to
1818         avoid the copy.
1819
1820 2018-12-14  Zan Dobersek  <zdobersek@igalia.com>
1821
1822         [GLib] RunLoop::dispatchAfter() GSource requires microsecond precision
1823         https://bugs.webkit.org/show_bug.cgi?id=192696
1824
1825         Reviewed by Michael Catanzaro.
1826
1827         The GSource we set up in GLib's RunLoop::dispatchAfter() implementation
1828         should support microsecond-precision delays. Such delays are common in
1829         JSC's Watchdog implementation and missing support for them has been
1830         causing test failures in the `testapi` program as well as some JSC
1831         tests that depend on the termination determination functionality of the
1832         JSC::Watchdog class.
1833
1834         RunLoop::dispatchAfter() is changed to spawn a raw GSource that uses the
1835         existing GSourceFuncs implementation used elsewhere in GLib's RunLoop.
1836         The GSource's ready time is set manually, now with the necessary
1837         microsecond precision.
1838
1839         * wtf/glib/RunLoopGLib.cpp:
1840         (WTF::RunLoop::dispatchAfter):
1841
1842 2018-12-13  Saam Barati  <sbarati@apple.com>
1843
1844         The JSC shell should listen for memory pressure events and respond to them
1845         https://bugs.webkit.org/show_bug.cgi?id=192647
1846
1847         Reviewed by Keith Miller.
1848
1849         * wtf/MemoryPressureHandler.cpp:
1850         (WTF::MemoryPressureHandler::MemoryPressureHandler):
1851         (WTF::MemoryPressureHandler::setDispatchQueue):
1852         Make it so that we can customize which dispatch queue memory pressure
1853         events get handled on.
1854
1855         * wtf/MemoryPressureHandler.h:
1856         (WTF::MemoryPressureHandler::setShouldLogMemoryMemoryPressureEvents):
1857         Make it so that we can disable logging that happens on each memory
1858         pressure event.
1859
1860         * wtf/cocoa/MemoryPressureHandlerCocoa.mm:
1861         (WTF::MemoryPressureHandler::install):
1862         (WTF::MemoryPressureHandler::uninstall):
1863         (WTF::MemoryPressureHandler::holdOff):
1864
1865 2018-12-13  David Kilzer  <ddkilzer@apple.com>
1866
1867         clang-tidy: Fix unnecessary parameter copies in ParallelHelperPool.cpp
1868         <https://webkit.org/b/192666>
1869         <rdar://problem/46697952>
1870
1871         Reviewed by Alex Christensen.
1872
1873         * wtf/ParallelHelperPool.cpp:
1874         (WTF::ParallelHelperClient::ParallelHelperClient): Use rvalue
1875         reference and WTFMove().
1876         (WTF::ParallelHelperClient::setTask): Ditto.
1877         (WTF::ParallelHelperClient::runTaskInParallel): Ditto.
1878         (WTF::ParallelHelperClient::runTask): Use const reference.
1879         * wtf/ParallelHelperPool.h: Update declarations to match
1880         implementations.
1881
1882 2018-12-12  Alex Christensen  <achristensen@webkit.org>
1883
1884         Implement safe browsing in WebKit on WatchOS
1885         https://bugs.webkit.org/show_bug.cgi?id=192641
1886         <rdar://problem/46376188>
1887
1888         Reviewed by Geoff Garen.
1889
1890         * wtf/Platform.h:
1891         WatchOS has safe browsing, too!
1892
1893 2018-12-11  Fujii Hironori  <Hironori.Fujii@sony.com>
1894
1895         [Win][Clang] Fix compilation warnings of WTF
1896         https://bugs.webkit.org/show_bug.cgi?id=192583
1897
1898         Reviewed by Alex Christensen.
1899
1900         clang-cl reports the following warnings.
1901
1902         > [92/206] Building CXX object Source\WTF\wtf\CMakeFiles\WTF.dir\StackBounds.cpp.obj
1903         > ..\..\Source\WTF\wtf\StackBounds.cpp(163,48):  warning: missing field 'AllocationBase' initializer [-Wmissing-field-initializers]
1904         >     MEMORY_BASIC_INFORMATION stackOrigin = { 0 };
1905         >                                                ^
1906         > 1 warning generated.
1907         > [160/206] Building CXX object Source\WTF\wtf\CMakeFiles\WTF.dir\win\RunLoopWin.cpp.obj
1908         > ..\..\Source\WTF\wtf\win\RunLoopWin.cpp(34,54):  warning: ISO C++11 does not allow conversion from string literal to 'const LPWSTR' (aka 'wchar_t *const') [-Wwritable-strings]
1909         > static const LPWSTR kRunLoopMessageWindowClassName = L"RunLoopMessageWindow";
1910         >                                                      ^
1911         > ..\..\Source\WTF\wtf\win\RunLoopWin.cpp(86,32):  warning: missing field 'lpfnWndProc' initializer [-Wmissing-field-initializers]
1912         >     WNDCLASS windowClass = { 0 };
1913         >                                ^
1914         > 2 warnings generated.
1915         > [175/206] Building CXX object Source\WTF\wtf\CMakeFiles\WTF.dir\DateMath.cpp.obj
1916         > ..\..\Source\WTF\wtf\DateMath.cpp(125,20):  warning: unused function 'getLocalTime' [-Wunused-function]
1917         > static inline void getLocalTime(const time_t* localTime, struct tm* localTM)
1918         >                    ^
1919         > 1 warning generated.
1920
1921         * wtf/DateMath.cpp:
1922         (WTF::getLocalTime): Defined only if used.
1923         * wtf/StackBounds.cpp:
1924         (WTF::StackBounds::currentThreadStackBoundsInternal): Initialize stackOrigin with '{ }'.
1925         * wtf/win/RunLoopWin.cpp: Change the type of kRunLoopMessageWindowClassName to LPCWSTR.
1926         (WTF::RunLoop::registerRunLoopMessageWindowClass): Initialize windowClass with '{ }'.
1927
1928 2018-12-11  Andy Estes  <aestes@apple.com>
1929
1930         Introduce makeBlockPtr for lambdas
1931         https://bugs.webkit.org/show_bug.cgi?id=192594
1932
1933         Reviewed by Alex Christensen.
1934
1935         BlockPtr<...>::fromCallable is cumbersome because it requires repeating the callable's
1936         signature as a class template argument. This patch introduces an overload of makeBlockPtr
1937         that deduces the correct BlockPtr instantiation from a lambda's operator() signature.
1938
1939         * wtf/BlockPtr.h:
1940         (WTF::makeBlockPtr):
1941
1942         Adopted makeBlockPtr.
1943
1944         * wtf/cocoa/WorkQueueCocoa.cpp:
1945         (WTF::WorkQueue::dispatch):
1946         (WTF::WorkQueue::dispatchAfter):
1947         (WTF::WorkQueue::concurrentApply):
1948
1949 2018-12-10  Don Olmstead  <don.olmstead@sony.com>
1950
1951         Move ENABLE_RESOURCE_LOAD_STATISTICS to FeatureDefines.xcconfig
1952         https://bugs.webkit.org/show_bug.cgi?id=192573
1953
1954         Reviewed by Simon Fraser.
1955
1956         Remove ENABLE_RESOURCE_LOAD_STATISTICS from Platform.h and instead rely
1957         on it being set in FeatureDefines.xcconfig.
1958
1959         * wtf/Platform.h:
1960
1961 2018-12-10  Alexey Proskuryakov  <ap@apple.com>
1962
1963         Move ENABLE_SEC_ITEM_SHIM out of WebKit's config.h
1964         https://bugs.webkit.org/show_bug.cgi?id=192428
1965
1966         Reviewed by Tim Horton.
1967
1968         * wtf/Platform.h:
1969
1970 2018-12-10  Alexey Proskuryakov  <ap@apple.com>
1971
1972         Move more macros out of WebKit's config.h
1973         https://bugs.webkit.org/show_bug.cgi?id=192430
1974
1975         Reviewed by Tim Horton.
1976
1977         * wtf/Platform.h:
1978
1979 2018-12-09  Yusuke Suzuki  <yusukesuzuki@slowstart.org>
1980
1981         Unreviewed, fix build failure on GCC 8.2, part 2
1982
1983         Add RefCountedArray::assign, and use it instead of operator= internally.
1984         We should have operator=(const RefCountedArray&) since it will be automatically generated
1985         if we do not have correct implementation here.
1986
1987         * wtf/RefCountedArray.h:
1988         (WTF::RefCountedArray::operator=):
1989         (WTF::RefCountedArray::assign):
1990
1991 2018-12-09  Yusuke Suzuki  <yusukesuzuki@slowstart.org>
1992
1993         Unreviewed, fix build failure on GCC 8.2
1994
1995         We remove operator=<PtrTraits> call since it is not necessary.
1996         This is a workaround. It seems that GCC 8.2 fails to parse this specialization.
1997
1998         * wtf/RefCountedArray.h:
1999
2000 2018-12-08  Darin Adler  <darin@apple.com>
2001
2002         Fix stray-semicolon warning seen with a new version of clang in Xcode
2003         https://bugs.webkit.org/show_bug.cgi?id=192534
2004
2005         Reviewed by Alexey Proskuryakov.
2006
2007         * wtf/Lock.h: Removed an unneeded semicolon.
2008
2009 2018-12-08  Adrian Perez de Castro  <aperez@igalia.com>
2010
2011         [WTF] Debug build fails due conflicting abort() method
2012         https://bugs.webkit.org/show_bug.cgi?id=192491
2013
2014         Reviewed by Michael Catanzaro.
2015
2016         * wtf/Assertions.h: Use namespaced std::abort() insted of plain abort() to avoid clashes
2017         inside classes which have an ::abort() method, but only when __cplusplus is defined to
2018         allow inclusion of the header in plain C sources.
2019
2020 2018-12-07  Andy Estes  <aestes@apple.com>
2021
2022         [Cocoa] Add optional variants of SOFT_LINK_CLASS_FOR_SOURCE
2023         https://bugs.webkit.org/show_bug.cgi?id=192498
2024
2025         Reviewed by Tim Horton.
2026
2027         Added SOFT_LINK_CLASS_FOR_SOURCE_OPTIONAL and SOFT_LINK_CLASS_FOR_SOURCE_OPTIONAL_WITH_EXPORT,
2028         which behave like their non-optional variants but do not require their classes to exist.
2029
2030         * wtf/cocoa/SoftLinking.h:
2031
2032 2018-12-06  Alexey Proskuryakov  <ap@apple.com>
2033
2034         Move USE_NEW_THEME out of WebCore's config.h
2035         https://bugs.webkit.org/show_bug.cgi?id=192426
2036
2037         Reviewed by Tim Horton.
2038
2039         * wtf/Platform.h:
2040
2041 2018-12-04  Carlos Garcia Campos  <cgarcia@igalia.com>
2042
2043         [SOUP] Move URLSoup back to WebCore after r238771
2044         https://bugs.webkit.org/show_bug.cgi?id=192306
2045
2046         Reviewed by Michael Catanzaro.
2047
2048         In r238771 URL was moved from WebCore to WTF, including the soup implementation. Unfortunately that added
2049         libsoup as a new dependency of libjavascriptcoregtk.
2050
2051         * wtf/PlatformGTK.cmake:
2052         * wtf/PlatformWPE.cmake:
2053         * wtf/URL.h:
2054         * wtf/glib/URLGLib.cpp: Copied from Source/WTF/wtf/glib/URLSoup.cpp.
2055
2056 2018-12-03  Don Olmstead  <don.olmstead@sony.com>
2057
2058         Fix some unused parameter warnings
2059         https://bugs.webkit.org/show_bug.cgi?id=192336
2060
2061         Reviewed by Fujii Hironori.
2062
2063         * wtf/StackTrace.cpp:
2064         (WTFGetBacktrace):
2065         (WTF::StackTrace::demangle):
2066         * wtf/generic/MemoryPressureHandlerGeneric.cpp:
2067         (WTF::MemoryPressureHandler::holdOff):
2068         (WTF::MemoryPressureHandler::respondToMemoryPressure):
2069
2070 2018-12-01  Alexey Proskuryakov  <ap@apple.com>
2071
2072         Modernize version check for _suppressedAutoAddedHTTPHeaders
2073         https://bugs.webkit.org/show_bug.cgi?id=192175
2074
2075         Reviewed by Tim Horton.
2076
2077         * wtf/Platform.h:
2078
2079 2018-11-30  Alex Christensen  <achristensen@webkit.org>
2080
2081         Fix Windows build after r238771
2082         https://bugs.webkit.org/show_bug.cgi?id=190234
2083
2084         * wtf/URLParser.h:
2085         Just make defaultPortForProtocol public so we don't have to worry about DLL linkage.
2086
2087 2018-11-30  Alex Christensen  <achristensen@webkit.org>
2088
2089         Move URL from WebCore to WTF
2090         https://bugs.webkit.org/show_bug.cgi?id=190234
2091
2092         Reviewed by Keith Miller.
2093
2094         * WTF.xcodeproj/project.pbxproj:
2095         * wtf/CMakeLists.txt:
2096         * wtf/Forward.h:
2097         * wtf/PlatformGTK.cmake:
2098         * wtf/PlatformMac.cmake:
2099         * wtf/PlatformWPE.cmake:
2100         * wtf/PlatformWin.cmake:
2101         * wtf/URL.cpp: Renamed from Source/WebCore/platform/URL.cpp.
2102         (WTF::URL::protocolIs):
2103         * wtf/URL.h: Renamed from Source/WebCore/platform/URL.h.
2104         * wtf/URLHash.h: Renamed from Source/WebCore/platform/URLHash.h.
2105         (WTF::URLHash::hash):
2106         (WTF::URLHash::equal):
2107         * wtf/URLParser.cpp: Renamed from Source/WebCore/platform/URLParser.cpp.
2108         (WTF::URLParser::isInUserInfoEncodeSet):
2109         (WTF::URLParser::parseAuthority):
2110         * wtf/URLParser.h: Renamed from Source/WebCore/platform/URLParser.h.
2111         (WTF::URLParser::URLParser):
2112         (WTF::URLParser::result):
2113         * wtf/cf/CFURLExtras.cpp: Renamed from Source/WebCore/platform/cf/CFURLExtras.cpp.
2114         * wtf/cf/CFURLExtras.h: Renamed from Source/WebCore/platform/cf/CFURLExtras.h.
2115         * wtf/cf/URLCF.cpp: Renamed from Source/WebCore/platform/cf/URLCF.cpp.
2116         * wtf/cocoa/NSURLExtras.h: Copied from Source/WebCore/loader/archive/ArchiveResourceCollection.h.
2117         * wtf/cocoa/NSURLExtras.mm: Copied from Source/WebCore/platform/mac/WebCoreNSURLExtras.mm.
2118         (WTF::isArmenianLookalikeCharacter):
2119         (WTF::isArmenianScriptCharacter):
2120         (WTF::isASCIIDigitOrValidHostCharacter):
2121         (WTF::isLookalikeCharacter):
2122         (WTF::whiteListIDNScript):
2123         (WTF::readIDNScriptWhiteListFile):
2124         (WTF::allCharactersInIDNScriptWhiteList):
2125         (WTF::isSecondLevelDomainNameAllowedByTLDRules):
2126         (WTF::isRussianDomainNameCharacter):
2127         (WTF::allCharactersAllowedByTLDRules):
2128         (WTF::mapHostNameWithRange):
2129         (WTF::hostNameNeedsDecodingWithRange):
2130         (WTF::hostNameNeedsEncodingWithRange):
2131         (WTF::decodeHostNameWithRange):
2132         (WTF::encodeHostNameWithRange):
2133         (WTF::decodeHostName):
2134         (WTF::encodeHostName):
2135         (WTF::collectRangesThatNeedMapping):
2136         (WTF::collectRangesThatNeedEncoding):
2137         (WTF::collectRangesThatNeedDecoding):
2138         (WTF::applyHostNameFunctionToMailToURLString):
2139         (WTF::applyHostNameFunctionToURLString):
2140         (WTF::mapHostNames):
2141         (WTF::stringByTrimmingWhitespace):
2142         (WTF::URLByTruncatingOneCharacterBeforeComponent):
2143         (WTF::URLByRemovingResourceSpecifier):
2144         (WTF::URLWithData):
2145         (WTF::dataWithUserTypedString):
2146         (WTF::URLWithUserTypedString):
2147         (WTF::URLWithUserTypedStringDeprecated):
2148         (WTF::hasQuestionMarkOnlyQueryString):
2149         (WTF::dataForURLComponentType):
2150         (WTF::URLByRemovingComponentAndSubsequentCharacter):
2151         (WTF::URLByRemovingUserInfo):
2152         (WTF::originalURLData):
2153         (WTF::createStringWithEscapedUnsafeCharacters):
2154         (WTF::userVisibleString):
2155         (WTF::isUserVisibleURL):
2156         (WTF::rangeOfURLScheme):
2157         (WTF::looksLikeAbsoluteURL):
2158         * wtf/cocoa/URLCocoa.mm: Renamed from Source/WebCore/platform/mac/URLMac.mm.
2159         (WTF::URL::URL):
2160         (WTF::URL::createCFURL const):
2161         * wtf/glib/GUniquePtrSoup.h: Renamed from Source/WebCore/platform/network/soup/GUniquePtrSoup.h.
2162         * wtf/glib/URLSoup.cpp: Renamed from Source/WebCore/platform/soup/URLSoup.cpp.
2163
2164 2018-11-30  Alexey Proskuryakov  <ap@apple.com>
2165
2166         Move USE_CFNETWORK_IGNORE_HSTS to its proper place
2167         https://bugs.webkit.org/show_bug.cgi?id=192173
2168
2169         Reviewed by Tim Horton.
2170
2171         * wtf/Platform.h: Also renamed it to better match other version checks.
2172
2173 2018-11-29  Alexey Proskuryakov  <ap@apple.com>
2174
2175         Modernize the check for kCFURLRequestContentDecoderSkipURLCheck existence
2176         https://bugs.webkit.org/show_bug.cgi?id=192041
2177
2178         Reviewed by Tim Horton.
2179
2180         * wtf/Platform.h:
2181
2182 2018-11-28  Mark Lam  <mark.lam@apple.com>
2183
2184         ENABLE_SEPARATED_WX_HEAP needs to be defined in Platform.h.
2185         https://bugs.webkit.org/show_bug.cgi?id=192110
2186         <rdar://problem/46317746>
2187
2188         Reviewed by Saam Barati.
2189
2190         Contrary my previous claim in r238564, ENABLE_SEPARATED_WX_HEAP needs to be
2191         defined in Platform.h because it is also needed in WebCore for the CSS JIT.  Also
2192         contrary to my previous claim, ENABLE(FAST_JIT_PERMISSIONS) is defined for WebCore
2193         (and other projects) as well as JSC.  Hence, there's no reason why
2194         ENABLE_SEPARATED_WX_HEAP cannot be defined in Platform.h.
2195
2196         * wtf/Platform.h:
2197
2198 2018-11-28  Keith Rollin  <krollin@apple.com>
2199
2200         Update generate-unified-source-bundles.rb to generate .xcfilelist files
2201         https://bugs.webkit.org/show_bug.cgi?id=192029
2202         <rdar://problem/46285918>
2203
2204         Reviewed by Alex Christensen.
2205
2206         Update generate-unified-source-bundles.rb to generate output for
2207         .xcfilelist files. These files are used to indicate the sets of input
2208         and output files to Run Script build phases in Xcode. By invoking
2209         generate-unified-source-bundles.rb with -generate-xcfilelists, the
2210         script generates these .xcfilelist files. These .xcfilelist files can
2211         then be used to specify the inputs and outputs of the Generate Unified
2212         Sources build phases.
2213
2214         * Scripts/generate-unified-source-bundles.rb:
2215
2216 2018-11-28  Alexey Proskuryakov  <ap@apple.com>
2217
2218         Remove another OS version check from NetworkDataTaskCocoa.mm
2219         https://bugs.webkit.org/show_bug.cgi?id=192046
2220
2221         Reviewed by Alex Christensen.
2222
2223         * wtf/Platform.h:
2224
2225 2018-11-28  Alexey Proskuryakov  <ap@apple.com>
2226
2227         Modernize version checks for same site cookie support
2228         https://bugs.webkit.org/show_bug.cgi?id=192054
2229
2230         Reviewed by Tim Horton.
2231
2232         * wtf/Platform.h:
2233
2234 2018-11-27  Alexey Proskuryakov  <ap@apple.com>
2235
2236         Modernize the check for async _saveCookies existence
2237         https://bugs.webkit.org/show_bug.cgi?id=191987
2238
2239         Reviewed by Dean Jackson.
2240
2241         * wtf/Platform.h: Added a specific macro for this. Not changing the behavior here,
2242         although it seems very likely that we want to do the same on other iOS family OSes.
2243
2244 2018-11-26  Fujii Hironori  <Hironori.Fujii@sony.com>
2245
2246         [Win][Clang] SOFT_LINK reports warning: implicit conversion between pointer-to-function and pointer-to-object is a Microsoft extension [-Wmicrosoft-cast]
2247         https://bugs.webkit.org/show_bug.cgi?id=191960
2248
2249         Reviewed by Alex Christensen.
2250
2251         * wtf/win/SoftLinking.h: Do reinterpret_cast<void*> a function
2252         pointer argument of EncodePointer. Changed the type of stored
2253         function pointer returned by EncodePointer.
2254
2255 2018-11-26  Sam Weinig  <sam@webkit.org>
2256
2257         Streamline ListHashSet use in floating object code
2258         https://bugs.webkit.org/show_bug.cgi?id=191957
2259
2260         Reviewed by Alex Christensen.
2261
2262         * wtf/ListHashSet.h:
2263         Reverses the order of the template arguments for the find() and contains()
2264         overload that allow specifying a hash translator to allow the compiler to
2265         deduce type T. This simplifies call sites and matches other WTF containers.
2266
2267 2018-11-25  Michael Catanzaro  <mcatanzaro@igalia.com>
2268
2269         CRASH() should call abort() except on Darwin and in developer builds
2270         https://bugs.webkit.org/show_bug.cgi?id=184408
2271
2272         Reviewed by Daniel Bates.
2273
2274         CRASH() should call abort() except on Darwin and in developer builds, as discussed on
2275         webkit-dev. This should be slightly nicer than dereferencing 0xbadbeef.
2276
2277         On Darwin, CRASH() uses a breakpoint trap, which seems to corrupt the stack on Linux, so we
2278         can't do that.
2279
2280         Continue to call WTFCrash() in developer mode, and make no changes to WTFCrash(), since it
2281         is reportedly useful in nightmare scenarios where core dumps are unavailable.
2282
2283         We also have to define CRASH_UNDER_CONSTEXPR_CONTEXT(). It's a bit odd that it's possible to
2284         use a non-constexpr function here, but it works. Currently this macro uses WTFCrash(), which
2285         is also non-constexpr.
2286
2287         * wtf/Assertions.h:
2288
2289 2018-11-25  Michael Catanzaro  <mcatanzaro@igalia.com>
2290
2291         Unreviewed, rolling out r238469.
2292
2293         Broke the build
2294
2295         Reverted changeset:
2296
2297         "CRASH() should call abort() except on Darwin and in developer
2298         builds"
2299         https://bugs.webkit.org/show_bug.cgi?id=184408
2300         https://trac.webkit.org/changeset/238469
2301
2302 2018-11-24  Andy Estes  <aestes@apple.com>
2303
2304         [Cocoa] SOFT_LINK_CLASS_FOR_{HEADER,SOURCE} should generate a more concise getter function
2305         https://bugs.webkit.org/show_bug.cgi?id=191899
2306
2307         Reviewed by Dean Jackson.
2308
2309         Currently, SOFT_LINK_CLASS_FOR_HEADER declares a class getter function that includes the
2310         framework name. For example, NSView would have a class getter named
2311         namespace::get_AppKit_NSViewClass().
2312
2313         Including the framework name in the getter is unnecessary. Objective-C classes already exist
2314         in a global namespace, so there is no need to disambiguate class names by framework. This
2315         patch elides the framework name from the getter function. For example, NSView would now have
2316         a getter named namespace::getNSViewClass().
2317
2318         * wtf/cocoa/SoftLinking.h:
2319
2320 2018-11-24  Michael Catanzaro  <mcatanzaro@igalia.com>
2321
2322         CRASH() should call abort() except on Darwin and in developer builds
2323         https://bugs.webkit.org/show_bug.cgi?id=184408
2324
2325         Reviewed by Daniel Bates.
2326
2327         CRASH() should call abort() except on Darwin and in developer builds, as discussed on
2328         webkit-dev. This should be slightly nicer than dereferencing 0xbadbeef.
2329
2330         On Darwin, CRASH() uses a breakpoint trap, which seems to corrupt the stack on Linux, so we
2331         can't do that.
2332
2333         Continue to call WTFCrash() in developer mode, and make no changes to WTFCrash(), since it
2334         is reportedly useful in nightmare scenarios where core dumps are unavailable.
2335
2336         * wtf/Assertions.h:
2337
2338 2018-11-23  Sam Weinig  <sam@webkit.org>
2339
2340         Add raw pointer overloads to ListHashSet via SmartPtr specialized functions
2341         https://bugs.webkit.org/show_bug.cgi?id=191936
2342
2343         Reviewed by Zalan Bujtas.
2344
2345         Adds overloads for find, contains, insertBefore and remove that take raw pointers
2346         when the value type V of a ListHashSet is true for the predicate IsSmartPtr<V>::value.
2347         This brings the interface to ListHashSet closer inline with HashSet, HashMap and HashCountedSet
2348         which already have this functionality. Like in the other collections, this is especially
2349         useful when using std::unique_ptr<> as the value, since there would be no way to pass it
2350         to these functions. One difference between this set of overloads is the inclusion of insertBefore,
2351         which is unique to ListHashSet. As would be expected, this specialization only changes the first
2352         parameter, the one that needs to be found, to support a raw pointer.  
2353
2354         * wtf/ListHashSet.h:
2355         (WTF::U>::find):
2356         (WTF::U>::find const):
2357         (WTF::U>::contains const):
2358         (WTF::U>::insertBefore):
2359         (WTF::U>::remove):
2360
2361 2018-11-21  Yusuke Suzuki  <yusukesuzuki@slowstart.org>
2362
2363         [JSC] Drop ARM_TRADITIONAL support in LLInt, baseline JIT, and DFG
2364         https://bugs.webkit.org/show_bug.cgi?id=191675
2365
2366         Reviewed by Mark Lam.
2367
2368         * wtf/InlineASM.h:
2369         * wtf/Platform.h:
2370
2371 2018-11-21  Andy Estes  <aestes@apple.com>
2372
2373         [Cocoa] Create a soft-linking file for PassKit
2374         https://bugs.webkit.org/show_bug.cgi?id=191875
2375         <rdar://problem/46203215>
2376
2377         Reviewed by Myles Maxfield.
2378
2379         * wtf/Platform.h: Defined USE_PASSKIT.
2380         * wtf/cocoa/SoftLinking.h: Added _WITH_EXPORT variants of SOFT_LINK_FRAMEWORK_FOR_SOURCE,
2381         SOFT_LINK_PRIVATE_FRAMEWORK_FOR_SOURCE, SOFT_LINK_CLASS_FOR_SOURCE,
2382         SOFT_LINK_FUNCTION_FOR_SOURCE, and SOFT_LINK_CONSTANT_FOR_SOURCE.
2383
2384 2018-11-21  Dominik Infuehr  <dinfuehr@igalia.com>
2385
2386         Enable JIT on ARM/Linux
2387         https://bugs.webkit.org/show_bug.cgi?id=191548
2388
2389         Reviewed by Yusuke Suzuki.
2390
2391         Enable JIT by default on ARMv7/Linux after it was disabled with
2392         recent bytcode format change.
2393
2394         * wtf/Platform.h:
2395
2396 2018-11-14  Keith Rollin  <krollin@apple.com>
2397
2398         Fix #end vs. #endif typo.
2399         https://bugs.webkit.org/show_bug.cgi?id=191668
2400         <rdar://problem/46081704>
2401
2402         Reviewed by Alexey Proskuryakov.
2403
2404         Source/WebCore/SourcesCocoa.txt had a #end that should have been a
2405         #endif. Fix this, an add a check to generate-unified-source-bundles.rb
2406         to detect similar typos.
2407
2408         * Scripts/generate-unified-source-bundles.rb:
2409
2410 2018-11-12  Mark Lam  <mark.lam@apple.com>
2411
2412         Add OOM detection to StringPrototype's substituteBackreferences().
2413         https://bugs.webkit.org/show_bug.cgi?id=191563
2414         <rdar://problem/45720428>
2415
2416         Reviewed by Saam Barati.
2417
2418         Enhanced StringBuilder::toString() to skip the shrinkToFit(), reifyString(), and
2419         the hasOverflowed() check if m_string is not null.  When m_string is not null,
2420         the StringBuilder either only has a single String in m_string (with m_buffer being 
2421         null), or reifyString() has already been called (resulting in a non-null m_string
2422         with a possibly non-null m_buffer).
2423
2424         We can skip the overflow check because:
2425         1. if the StringBuilder only has a single String, then there cannot be an overflow.
2426         2. if reifyString() has already been called, then the hasOverflowed() checked has
2427            already been done because every code path that calls reifyString() first does
2428            the hasOverflowed() check.
2429
2430         We can skip shrinkToFit() because it only applies to m_buffer.
2431         1. if the StringBuilder only has a single String, then there's no m_buffer to shrink.
2432         2. if reifyString() has already been called, then we either came down
2433            a. the toString() path with a null m_string previously, where we would have
2434               already called shrinkToFit() before reifyString(), or
2435            b. the toStringPreserveCapacity() path where we don't want to shrinkToFit().
2436
2437         We can skip reifyString() because:
2438         1. if the StringBuilder only has a single String, then the string is already reified.
2439         2. if reifyString() has been already called, then the string is already reified.
2440
2441         Note that if m_string is the null string and m_buffer is null, reifyString() will
2442         replace it with the empty string.  For this reason, we cannot solely check for
2443         !m_buffer because we need to reify the null string into the empty string.
2444
2445         Note also that if m_string is null and m_buffer is non-null, reifyString() will
2446         create a String and set m_string to it.  However, m_buffer remains non-null.
2447         For this reason, we cannot assert !m_buffer alone when m_string is non-null.
2448         We add a m_isReified flag (only when assertions are enabled) to track the reified
2449         case where both m_buffer and m_string are non-null.
2450
2451         * wtf/text/StringBuilder.cpp:
2452         (WTF::StringBuilder::reifyString const):
2453         * wtf/text/StringBuilder.h:
2454         (WTF::StringBuilder::toString):
2455
2456 2018-11-10  Benjamin Poulain  <benjamin@webkit.org>
2457
2458         Fix a fixme: rename wtfObjcMsgSend to wtfObjCMsgSend
2459         https://bugs.webkit.org/show_bug.cgi?id=191492
2460
2461         Reviewed by Alex Christensen.
2462
2463         Because renaming ObjcRuntimeExtras.h to ObjCRuntimeExtras.h only changes
2464         the cases, some systems have issues with applying this patch.
2465
2466         To work around the problem, the change is made is two patches, first rename to
2467         WTFObjCRuntimeExtras.h, then back to ObjCRuntimeExtras.h.
2468
2469         * WTF.xcodeproj/project.pbxproj:
2470         * wtf/CMakeLists.txt:
2471         * wtf/WTFObjCRuntimeExtras.h: Renamed from Source/WTF/wtf/ObjcRuntimeExtras.h.
2472         (wtfObjCMsgSend):
2473
2474 2018-11-09  Keith Miller  <keith_miller@apple.com>
2475
2476         LLInt VectorSizeOffset should be based on offset extraction
2477         https://bugs.webkit.org/show_bug.cgi?id=191468
2478
2479         Reviewed by Yusuke Suzuki.
2480
2481         Make things friends with LLIntOffsetsExtractor.
2482
2483         * wtf/RefCountedArray.h:
2484         * wtf/Vector.h:
2485
2486 2018-11-09  Jim Mason  <jmason@ibinx.com>
2487
2488         [WTF] Changes in bug 188867 break non-Linux Unix builds
2489         https://bugs.webkit.org/show_bug.cgi?id=191380
2490
2491         The intention of 188867 was to split out platform-specific
2492         heap query/release code.  Any unsupported platform
2493         would use a generic, no-op stub.  However, wtf/PlatformGTK.cmake
2494         ended up sending all non-Linux platforms through the Linux
2495         implementation, which breaks the build for those platforms.
2496         This includes any user of the GTK target which is not Linux,
2497         such as the *BSDs, Solaris, etc.
2498
2499         Reviewed by Yusuke Suzuki.
2500
2501         * wtf/PlatformGTK.cmake: Updated to include Linux-specific
2502         code only for Linux; all other platforms use the generic stub.
2503
2504 2018-11-06  Geoffrey Garen  <ggaren@apple.com>
2505
2506         Removed mbmalloc target from WTF
2507         https://bugs.webkit.org/show_bug.cgi?id=191313
2508
2509         Reviewed by Saam Barati.
2510
2511         For benchmarking, WTF::fastMalloc is no longer meaningfully different
2512         from bmalloc. (And bmalloc has its own mbmalloc target.)
2513
2514         * Configurations/mbmalloc.xcconfig: Removed.
2515         * WTF.xcodeproj/project.pbxproj:
2516         * wtf/mbmalloc.cpp: Removed.
2517
2518 2018-11-08  Alexey Proskuryakov  <ap@apple.com>
2519
2520         Re-add PLATFORM(IOS), now with the strict meaning
2521         https://bugs.webkit.org/show_bug.cgi?id=191281
2522
2523         Reviewed by Tim Horton.
2524
2525         * wtf/Platform.h: No change in behavior. Some of the macros look a bit weird
2526         when expanded, it might be that the values are incorrect for some flavors of iOS family.
2527
2528 2018-11-08  Dean Jackson  <dino@apple.com>
2529
2530         Add a String literal that returns a String
2531         https://bugs.webkit.org/show_bug.cgi?id=191425
2532         <rdar://problem/45914556>
2533
2534         Reviewed by Sam Weinig.
2535
2536         Add a new String literal, _str, that will return a String type.
2537         This is useful when ""_s won't work, such as for things that
2538         don't take an ASCIILiteral directly e.g. ExceptionOr<String>
2539         or Variants.
2540
2541         * wtf/text/WTFString.h:
2542         (WTF::StringLiterals::operator _str): Added.
2543
2544 2018-11-06  Justin Fan  <justin_fan@apple.com>
2545
2546         [WebGPU] Experimental prototype for WebGPURenderPipeline and WebGPUSwapChain
2547         https://bugs.webkit.org/show_bug.cgi?id=191291
2548
2549         Reviewed by Myles Maxfield.
2550
2551         Properly disable WEBGPU on all non-Metal platforms for now.
2552
2553         * wtf/Platform.h:
2554
2555 2018-11-05  Myles C. Maxfield  <mmaxfield@apple.com>
2556
2557         Cache glyph paths and share underline skipping code between all the ports
2558         https://bugs.webkit.org/show_bug.cgi?id=191239
2559
2560         Reviewed by Alex Christensen.
2561
2562         Remove CSS3_TEXT_DECORATION_SKIP_INK. It's now interoperable and part of the Web Platform.
2563
2564         * wtf/Platform.h:
2565
2566 2018-11-05  Dominik Infuehr  <dinfuehr@igalia.com>
2567
2568         Enable LLInt on ARMv7/Linux
2569         https://bugs.webkit.org/show_bug.cgi?id=191190
2570
2571         Reviewed by Yusuke Suzuki.
2572
2573         After enabling the new bytecode format in r237547, C_LOOP was
2574         forced on all 32-bit platforms. Now enable LLInt again on
2575         ARMv7-Thumb2/Linux by default.
2576
2577         * wtf/Platform.h:
2578
2579 2018-11-04  Fujii Hironori  <Hironori.Fujii@sony.com>
2580
2581         [Win] Use C++14, not C++17
2582         https://bugs.webkit.org/show_bug.cgi?id=191101
2583
2584         Reviewed by Alex Christensen.
2585
2586         * wtf/StdLibExtras.h: Use _MSVC_LANG to check C++ language version
2587         instead of _MSC_FULL_VER.
2588
2589 2018-11-02  Justin Fan  <justin_fan@apple.com>
2590
2591         [WebGPU] Experimental prototype for MSL shaders
2592         https://bugs.webkit.org/show_bug.cgi?id=191084
2593
2594         Reviewed by Dean Jackson.
2595
2596         Disabling WebGPU on non-Cocoa platforms and iOS Simulator.
2597
2598         * wtf/Platform.h:
2599
2600 2018-11-01  Jiewen Tan  <jiewen_tan@apple.com>
2601
2602         Replace CommonRandom SPI with API
2603         https://bugs.webkit.org/show_bug.cgi?id=191178
2604         <rdar://problem/45722391>
2605
2606         Reviewed by Brent Fulgham.
2607
2608         * WTF.xcodeproj/project.pbxproj:
2609         * wtf/CMakeLists.txt:
2610         * wtf/RandomDevice.cpp:
2611         (WTF::RandomDevice::cryptographicallyRandomValues):
2612         * wtf/spi/darwin/CommonCryptoSPI.h: Removed.
2613
2614 2018-11-01  Fujii Hironori  <Hironori.Fujii@sony.com>
2615
2616         Rename <wtf/unicode/UTF8.h> to <wtf/unicode/UTF8Conversion.h> in order to avoid conflicting with ICU's unicode/utf8.h
2617         https://bugs.webkit.org/show_bug.cgi?id=189693
2618
2619         Reviewed by Yusuke Suzuki.
2620
2621         * WTF.xcodeproj/project.pbxproj: Replaced unicode/UTF8.{cpp,h} with unicode/UTF8Conversion.{cpp,h}.
2622         * wtf/CMakeLists.txt: Ditto.
2623         * wtf/text/AtomicStringImpl.cpp: Replaced <wtf/unicode/UTF8.h> with <wtf/unicode/UTF8Conversion.h>.
2624         * wtf/text/StringImpl.cpp: Ditto.
2625         * wtf/text/StringView.cpp: Ditto.
2626         * wtf/text/WTFString.cpp: Ditto.
2627         * wtf/unicode/UTF8Conversion.cpp: Renamed from Source/WTF/wtf/unicode/UTF8.cpp.
2628         * wtf/unicode/UTF8Conversion.h: Renamed from Source/WTF/wtf/unicode/UTF8.h.
2629
2630 2018-10-30  Don Olmstead  <don.olmstead@sony.com>
2631
2632         [PlayStation] Enable JavaScriptCore
2633         https://bugs.webkit.org/show_bug.cgi?id=191072
2634
2635         Reviewed by Brent Fulgham.
2636
2637         Add platform files for the PlayStation port.
2638
2639         * wtf/PlatformPlayStation.cmake: Added.
2640
2641 2018-10-30  David Kilzer  <ddkilzer@apple.com>
2642
2643         XSLTProcessor should limit max transform depth
2644         <https://webkit.org/b/191075>
2645         <rdar://problem/45531453>
2646
2647         Reviewed by Alex Christensen.
2648
2649         * wtf/cocoa/SoftLinking.h:
2650         (SOFT_LINK_VARIABLE_FOR_HEADER):
2651         (SOFT_LINK_VARIABLE_FOR_SOURCE):
2652         - Add macros for non-constant global variables.
2653
2654 2018-10-30  Alexey Proskuryakov  <ap@apple.com>
2655
2656         Clean up some obsolete MAX_ALLOWED macros
2657         https://bugs.webkit.org/show_bug.cgi?id=190916
2658
2659         Reviewed by Tim Horton.
2660
2661         * WTF.xcodeproj/project.pbxproj:
2662         * wtf/PlatformMac.cmake:
2663         * wtf/spi/cocoa/NSMapTableSPI.h: Removed. This was only needed for old SDKs.
2664
2665 2018-10-29  Mark Lam  <mark.lam@apple.com>
2666
2667         Correctly detect string overflow when using the 'Function' constructor.
2668         https://bugs.webkit.org/show_bug.cgi?id=184883
2669         <rdar://problem/36320331>
2670
2671         Reviewed by Saam Barati.
2672
2673         1. Enhanced StringBuilder so that it supports 2 modes of behavior:
2674            a. StringBuilder::OverflowHandler::CrashOnOverflow.
2675            b. StringBuilder::OverflowHandler::RecordOverflow.
2676
2677            CrashOnOverflow will crash the moment an overflow or failure to allocate
2678            memory is detected.
2679
2680            RecordOverflow will make StringBuilder::hasOverflowed() return true when an
2681            overflow or failure to allocate memory is detected.  However, if the user
2682            invokes toString(), toStringPreserveCapacity(), toAtomicString(), length(),
2683            capacity(), isEmpty(), characters8(), or characters16(), then the StringBuilder
2684            will crash regardless because these methods can only meaningfully do their
2685            work and return a result if and only if the builder has not overflowed.
2686
2687            By default, the StringBuilder crashes on overflow (the old behavior) unless it
2688            is explicitly constructed with the StringBuilder::OverflowHandler::RecordOverflow
2689            enum.
2690
2691            Design note:
2692
2693            The StringBuilder can only be put in 1 of the 2 modes at the time of
2694            construction.  This means that we could have implemented it as a template
2695            that is parameterized on an OverflowHandler class (like CheckedArithmetic)
2696            instead of using a runtime check in the ConditionalCrashOnOverflow handler.
2697
2698            However, I was not able to get clang to export the explicitly instantiated
2699            instances (despite the methods having being decorated with WTF_EXPORT_PRIVATE).
2700            Since the StringBuilder is a transient object (not stored for a long time on
2701            the heap), and the runtime check of the boolean is not that costly compared
2702            to other work that StringBuilder routinely does (e.g. memcpy), using the
2703            new ConditionalCrashOnOverflow (which does a runtime check to determine to
2704            crash or not on overflow) is fine.
2705
2706            When clang is able to export explicitly instantiated template methods, we can
2707            templatize StringBuilder and do away with ConditionalCrashOnOverflow.
2708            See https://bugs.webkit.org/show_bug.cgi?id=191050.
2709
2710         To support the above, we also did:
2711
2712         2. Enhanced all StringBuilder append and buffer allocation methods to be able to
2713            fail without crashing.  This also meant that ...
2714
2715         3. Added tryReallocate() support to StringImpl.  tryRealloc() was added to
2716            FastMalloc, and bmalloc (and related peers) to enable this.
2717
2718         4. Added ConditionalCrashOnOverflow, which can choose at runtime whether to behave
2719            like CrashOnOverflow or RecordOverflow.
2720
2721         * wtf/CheckedArithmetic.h:
2722         (WTF::ConditionalCrashOnOverflow::overflowed):
2723         (WTF::ConditionalCrashOnOverflow::shouldCrashOnOverflow const):
2724         (WTF::ConditionalCrashOnOverflow::setShouldCrashOnOverflow):
2725         (WTF::ConditionalCrashOnOverflow::hasOverflowed const):
2726         (WTF::ConditionalCrashOnOverflow::clearOverflow):
2727         (WTF::ConditionalCrashOnOverflow::crash):
2728         (WTF::RecordOverflow::overflowed):
2729         (WTF::Checked::unsafeGet const):
2730         * wtf/FastMalloc.cpp:
2731         (WTF::tryFastRealloc):
2732         * wtf/FastMalloc.h:
2733         * wtf/text/StringBuilder.cpp:
2734         (WTF::expandedCapacity):
2735         (WTF::StringBuilder::reifyString const):
2736         (WTF::StringBuilder::resize):
2737         (WTF::StringBuilder::allocateBuffer):
2738         (WTF::StringBuilder::allocateBufferUpConvert):
2739         (WTF::StringBuilder::reallocateBuffer<LChar>):
2740         (WTF::StringBuilder::reallocateBuffer<UChar>):
2741         (WTF::StringBuilder::reserveCapacity):
2742         (WTF::StringBuilder::appendUninitialized):
2743         (WTF::StringBuilder::appendUninitializedSlow):
2744         (WTF::StringBuilder::append):
2745         (WTF::StringBuilder::canShrink const):
2746         (WTF::StringBuilder::shrinkToFit):
2747         * wtf/text/StringBuilder.h:
2748         (WTF::StringBuilder::StringBuilder):
2749         (WTF::StringBuilder::didOverflow):
2750         (WTF::StringBuilder::hasOverflowed const):
2751         (WTF::StringBuilder::crashesOnOverflow const):
2752         (WTF::StringBuilder::append):
2753         (WTF::StringBuilder::toString):
2754         (WTF::StringBuilder::toStringPreserveCapacity const):
2755         (WTF::StringBuilder::toAtomicString const):
2756         (WTF::StringBuilder::length const):
2757         (WTF::StringBuilder::capacity const):
2758         (WTF::StringBuilder::operator[] const):
2759         (WTF::StringBuilder::swap):
2760         (WTF::StringBuilder::getBufferCharacters<UChar>):
2761         * wtf/text/StringBuilderJSON.cpp:
2762         (WTF::StringBuilder::appendQuotedJSONString):
2763         * wtf/text/StringImpl.cpp:
2764         (WTF::StringImpl::reallocateInternal):
2765         (WTF::StringImpl::reallocate):
2766         (WTF::StringImpl::tryReallocate):
2767         * wtf/text/StringImpl.h:
2768
2769 2018-10-29  Tim Horton  <timothy_horton@apple.com>
2770
2771         Modernize WebKit nibs and lprojs for localization's sake
2772         https://bugs.webkit.org/show_bug.cgi?id=190911
2773         <rdar://problem/45349466>
2774
2775         Reviewed by Dan Bernstein.
2776
2777         * WTF.xcodeproj/project.pbxproj:
2778         English->en
2779
2780 2018-10-29  Tadeu Zagallo  <tzagallo@apple.com>
2781
2782         New bytecode format for JSC
2783         https://bugs.webkit.org/show_bug.cgi?id=187373
2784         <rdar://problem/44186758>
2785
2786         Reviewed by Filip Pizlo.
2787
2788         * wtf/Forward.h: Fix WTF_LAZY_FOR_EACH_TERM on MSVC and add WTF_LAZY_HAS_REST to check whether
2789         a macro was passed multiple arguments
2790         * wtf/Platform.h: Force ENABLE_JIT=false on all 32-bit platforms
2791         * wtf/Vector.h:
2792         (WTF::minCapacity>::insertVector): Allow vectors with different overflow handlers to be passed to insertVector
2793
2794 2018-10-28  Geoffrey Garen  <ggaren@apple.com>
2795
2796         HashMap should support selecting a random entry
2797         https://bugs.webkit.org/show_bug.cgi?id=190814
2798
2799         Reviewed by Ryosuke Niwa.
2800
2801         * wtf/HashTable.h:
2802         (WTF::HashTable::random):
2803         (WTF::HashTable::random const): Merge the empty and deleted checks, and
2804         use more idiomatic addressing.
2805
2806 2018-10-26  Commit Queue  <commit-queue@webkit.org>
2807
2808         Unreviewed, rolling out r237479 and r237484.
2809         https://bugs.webkit.org/show_bug.cgi?id=190978
2810
2811         broke JSC on iOS (Requested by tadeuzagallo on #webkit).
2812
2813         Reverted changesets:
2814
2815         "New bytecode format for JSC"
2816         https://bugs.webkit.org/show_bug.cgi?id=187373
2817         https://trac.webkit.org/changeset/237479
2818
2819         "Gardening: Build fix after r237479."
2820         https://bugs.webkit.org/show_bug.cgi?id=187373
2821         https://trac.webkit.org/changeset/237484
2822
2823 2018-10-26  Tadeu Zagallo  <tzagallo@apple.com>
2824
2825         New bytecode format for JSC
2826         https://bugs.webkit.org/show_bug.cgi?id=187373
2827         <rdar://problem/44186758>
2828
2829         Reviewed by Filip Pizlo.
2830
2831         * wtf/Forward.h: Fix WTF_LAZY_FOR_EACH_TERM on MSVC and add WTF_LAZY_HAS_REST to check whether
2832         a macro was passed multiple arguments
2833         * wtf/Platform.h: Force ENABLE_JIT=false on all 32-bit platforms
2834         * wtf/Vector.h:
2835         (WTF::minCapacity>::insertVector): Allow vectors with different overflow handlers to be passed to insertVector
2836
2837 2018-10-26  Geoffrey Garen  <ggaren@apple.com>
2838
2839         HashMap should support selecting a random entry
2840         https://bugs.webkit.org/show_bug.cgi?id=190814
2841
2842         Reviewed by Antti Koivisto.
2843
2844         * wtf/HashTable.h:
2845         (WTF::HashTable::random):
2846         (WTF::HashTable::random const): Draw a new random bucket any time we
2847         have a miss, to avoid bias caused by lopsided tables.
2848
2849 2018-10-26  Antti Koivisto  <antti@apple.com>
2850
2851         hashSet.remove(hashSet.random()) doesn't build
2852         https://bugs.webkit.org/show_bug.cgi?id=190953
2853
2854         Reviewed by Chris Dumez.
2855
2856         * wtf/HashSet.h:
2857
2858         Remove non-const random(). HashSet only returns const iterators (it is immutable via iterator).
2859
2860         * wtf/HashTable.h:
2861         (WTF::HashTable::random const):
2862
2863         Invoke const_iterator() by using static_cast<> instead of trying to do it directly.
2864
2865 2018-10-26  Alicia Boya García  <aboya@igalia.com>
2866
2867         [MSE][WTF][Media] Invalid MediaTime should be falsy
2868         https://bugs.webkit.org/show_bug.cgi?id=190893
2869
2870         Reviewed by Jer Noble.
2871
2872         This patch modifies the definition of MediaTime so that invalid times
2873         are evaluated to false in the context of a boolean expression.
2874
2875         * wtf/MediaTime.cpp:
2876         (WTF::MediaTime::operator! const):
2877         (WTF::MediaTime::operator bool const):
2878
2879 2018-10-26  Keith Miller  <keith_miller@apple.com>
2880
2881         Some internal projects include wtf headers and build with C++11
2882         https://bugs.webkit.org/show_bug.cgi?id=190791
2883
2884         Reviewed by Alexey Proskuryakov.
2885
2886         C++11 doesn't support constexpr functions that contain
2887         statements. This patch removes getLSBSet set from builds before
2888         C++14 to avoid this for now.
2889
2890         * wtf/MathExtras.h:
2891         (getLSBSet):
2892
2893 2018-10-25  Ross Kirsling  <ross.kirsling@sony.com>
2894
2895         Cleanup: inline constexpr is redundant as constexpr implies inline
2896         https://bugs.webkit.org/show_bug.cgi?id=190819
2897
2898         Reviewed by Mark Lam.
2899
2900         * wtf/Bitmap.h:
2901         (WTF::WordType>::Bitmap):
2902         * wtf/LEBDecoder.h:
2903         (WTF::LEBDecoder::maxByteLength):
2904         * wtf/MathExtras.h:
2905         (defaultMinimumForClamp):
2906         (defaultMaximumForClamp):
2907         (clampToAccepting64):
2908         (isLessThan):
2909         (isLessThanEqual):
2910         (isGreaterThan):
2911         (isGreaterThanEqual):
2912         (WTF::roundUpToPowerOfTwo):
2913         (WTF::maskForSize):
2914         * wtf/Optional.h:
2915         * wtf/PtrTag.h:
2916         (WTF::tagCodePtr):
2917         (WTF::untagCodePtr):
2918         (WTF::retagCodePtr):
2919         (WTF::removeCodePtrTag):
2920         * wtf/StdLibExtras.h:
2921         (WTF::roundUpToMultipleOf):
2922         * wtf/Variant.h:
2923         (WTF::operator==):
2924         (WTF::operator!=):
2925         (WTF::operator>=):
2926         (WTF::operator<=):
2927         (WTF::operator>):
2928         (WTF::operator<):
2929         * wtf/text/StringImpl.h:
2930         (WTF::StringImplShape::StringImplShape):
2931         (WTF::StringImpl::StaticStringImpl::StaticStringImpl):
2932
2933 2018-10-25  Geoffrey Garen  <ggaren@apple.com>
2934
2935         HashMap should support selecting a random entry
2936         https://bugs.webkit.org/show_bug.cgi?id=190814
2937
2938         Reviewed by Antti Koivisto.
2939
2940         In some cases, remove(begin()) is not quite good enough as a random
2941         eviction strategy. (See https://bugs.webkit.org/show_bug.cgi?id=190792.)
2942         So, let's support real random eviction.
2943
2944         (And by "real" I mean "pseudo".)
2945
2946         * wtf/HashCountedSet.h:
2947         * wtf/HashMap.h:
2948         * wtf/HashSet.h:
2949         * wtf/ListHashSet.h:
2950         (WTF::ListHashSet::random):
2951         (WTF::ListHashSet::random const):
2952         * wtf/LoggingHashMap.h:
2953         * wtf/LoggingHashSet.h: Plumb through the random() iterator.
2954
2955         * wtf/HashTable.h:
2956         (WTF::HashTable::random):
2957         (WTF::HashTable::random const): Implement the random() iterator.
2958         makeIterator() already supports starting from any bucket, so this is
2959         pretty easy.
2960
2961         In the subtle case where we select end(), we choose to wrap around and
2962         return begin(). We expect that clients don't really think of the end()
2963         bucket as being in the domain of the random search. Also, we don't want
2964         to annoy clients who know their tables are non-empty with needless
2965         checks for end().
2966
2967         * wtf/RandomNumber.cpp:
2968         (WTF::weakRandomUint32):
2969         * wtf/RandomNumber.h: Added a free function for weak random numbers so
2970         that clients that want cheap random numbers aren't required to allocate
2971         storage for a WeakRandom generator.
2972
2973 2018-10-24  Megan Gardner  <megan_gardner@apple.com>
2974
2975         Turn on Conic Gradients
2976         https://bugs.webkit.org/show_bug.cgi?id=190810
2977
2978         Reviewed by Tim Horton.
2979
2980         * wtf/FeatureDefines.h:
2981
2982 2018-10-24  Christopher Reid  <chris.reid@sony.com>
2983
2984         [Win] Add function call name information to stack traces
2985         https://bugs.webkit.org/show_bug.cgi?id=190761
2986
2987         Reviewed by Fujii Hironori.
2988
2989         Add symbol information to stack traces using dbghelp.dll
2990         This library will use symbols files from these sources:
2991             - The current working directory
2992             - The directory containing the application's executable
2993             - _NT_SYMBOL_PATH environment variable
2994             - _NT_ALTERNATE_SYMBOL_PATH environment variable
2995
2996         This functionality is currently only enabled in debug mode since dbghelp is not threadsafe.
2997         The DbgHelper class attempts to synchronize calls to dbghelp.dll but external code
2998         can still attempt to call the library at the same time as WebKit.
2999
3000         * wtf/CMakeLists.txt:
3001         * wtf/PlatformWin.cmake:
3002         * wtf/StackTrace.cpp:
3003         * wtf/win/DbgHelperWin.cpp: Added.
3004         * wtf/win/DbgHelperWin.h: Added.
3005
3006 2018-10-22  Alexey Proskuryakov  <ap@apple.com>
3007
3008         Really prevent PLATFORM(IOS) from being used
3009         https://bugs.webkit.org/show_bug.cgi?id=190813
3010
3011         Reviewed by Tim Horton.
3012
3013         * wtf/Platform.h: This relies on -Wundef, which we have enabled.
3014
3015 2018-10-22  Chris Dumez  <cdumez@apple.com>
3016
3017         Deque's contains() and findIf() should be const
3018         https://bugs.webkit.org/show_bug.cgi?id=190796
3019
3020         Reviewed by Antti Koivisto.
3021
3022         Deque's contains() and findIf() should be const as they do not modify the container.
3023
3024         * wtf/Deque.h:
3025         (WTF::inlineCapacity>::findIf):
3026         (WTF::inlineCapacity>::findIf const):
3027         (WTF::inlineCapacity>::contains const):
3028         (WTF::inlineCapacity>::contains): Deleted.
3029
3030 2018-10-18  Alicia Boya García  <aboya@igalia.com>
3031
3032         [Media] Use nanoseconds as MaximumTimeScale
3033         https://bugs.webkit.org/show_bug.cgi?id=190631
3034
3035         1e9 is a much more useful timescale than the previous one 2^31-1.
3036         Unlike 2^31-1, which is a prime number, nanosecond scale is pretty
3037         common among some formats like WebM and frameworks like GStreamer
3038         where base 10 timescale is common... and it's those big timescales the
3039         ones that are usually scaled up to MaximumTimeScale.
3040
3041         Reviewed by Jer Noble.
3042
3043         * wtf/MediaTime.cpp:
3044
3045 2018-10-18  Alexey Proskuryakov  <ap@apple.com>
3046
3047         Remove PLATFORM(IOS) for now
3048         https://bugs.webkit.org/show_bug.cgi?id=190737
3049
3050         Reviewed by Tim Horton.
3051
3052         * wtf/Platform.h:
3053
3054 2018-10-18  Alexey Proskuryakov  <ap@apple.com>
3055
3056         Switch from PLATFORM(IOS) to PLATFORM(IOS_FAMILY)
3057         https://bugs.webkit.org/show_bug.cgi?id=190729
3058
3059         Reviewed by Tim Horton.
3060
3061         * wtf/Assertions.h:
3062         * wtf/FeatureDefines.h:
3063         * wtf/InlineASM.h:
3064         * wtf/MemoryPressureHandler.cpp:
3065         (WTF::thresholdForPolicy):
3066         * wtf/Platform.h:
3067         * wtf/cocoa/MemoryPressureHandlerCocoa.mm:
3068         (WTF::MemoryPressureHandler::install):
3069         (WTF::MemoryPressureHandler::respondToMemoryPressure):
3070         * wtf/spi/cocoa/NSMapTableSPI.h:
3071         * wtf/spi/darwin/XPCSPI.h:
3072         * wtf/text/StringCommon.h:
3073         * wtf/text/TextBreakIterator.cpp:
3074         * wtf/text/TextBreakIterator.h:
3075         * wtf/unicode/icu/CollatorICU.cpp:
3076         (WTF::copyDefaultLocale):
3077
3078 2018-10-18  Alex Christensen  <achristensen@webkit.org>
3079
3080         Clean up FrameLoader two-state enums
3081         https://bugs.webkit.org/show_bug.cgi?id=190731
3082
3083         Reviewed by Chris Dumez.
3084
3085         * wtf/EnumTraits.h:
3086         (WTF::isValidEnum):
3087
3088 2018-10-17  Commit Queue  <commit-queue@webkit.org>
3089
3090         Unreviewed, rolling out r237208.
3091         https://bugs.webkit.org/show_bug.cgi?id=190691
3092
3093         Caused the API test that was changed to failure continuously
3094         (Requested by Truitt on #webkit).
3095
3096         Reverted changeset:
3097
3098         "[Media] Use nanoseconds as MaximumTimeScale"
3099         https://bugs.webkit.org/show_bug.cgi?id=190631
3100         https://trac.webkit.org/changeset/237208
3101
3102 2018-10-16  Alicia Boya García  <aboya@igalia.com>
3103
3104         [Media] Use nanoseconds as MaximumTimeScale
3105         https://bugs.webkit.org/show_bug.cgi?id=190631
3106
3107         1e9 is a much more useful timescale than the previous one 2^31-1.
3108         Unlike 2^31-1, which is a prime number, nanosecond scale is pretty
3109         common among some formats like WebM and frameworks like GStreamer
3110         where base 10 timescale is common... and it's those big timescales the
3111         ones that are usually scaled up to MaximumTimeScale.
3112
3113         Reviewed by Jer Noble.
3114
3115         * wtf/MediaTime.cpp:
3116
3117 2018-10-15  Keith Miller  <keith_miller@apple.com>
3118
3119         Support arm64 CPUs with a 32-bit address space
3120         https://bugs.webkit.org/show_bug.cgi?id=190273
3121
3122         Reviewed by Michael Saboff.
3123
3124         Use WTF_CPU_ADDRESS64/32 to decide if the system is running on arm64_32.
3125
3126         * wtf/MathExtras.h:
3127         (getLSBSet):
3128         * wtf/Platform.h:
3129
3130 2018-10-15  Timothy Hatcher  <timothy@apple.com>
3131
3132         Add support for prefers-color-scheme media query
3133         https://bugs.webkit.org/show_bug.cgi?id=190499
3134         rdar://problem/45212025
3135
3136         Reviewed by Dean Jackson.
3137
3138         * wtf/FeatureDefines.h: Added ENABLE_DARK_MODE_CSS.
3139
3140 2018-10-15  Saam barati  <sbarati@apple.com>
3141
3142         Emit fjcvtzs on ARM64E on Darwin
3143         https://bugs.webkit.org/show_bug.cgi?id=184023
3144
3145         Reviewed by Yusuke Suzuki and Filip Pizlo.
3146
3147         * wtf/Platform.h:
3148
3149 2018-10-15  Alex Christensen  <achristensen@webkit.org>
3150
3151         Use pragma once in WTF
3152         https://bugs.webkit.org/show_bug.cgi?id=190527
3153
3154         Reviewed by Chris Dumez.
3155
3156         We also need to consistently include wtf headers from within wtf so we can build wtf without
3157         symbol redefinition errors from including the copy in Source and the copy in the build directory.
3158
3159         * wtf/ASCIICType.h:
3160         * wtf/Assertions.cpp:
3161         * wtf/Assertions.h:
3162         * wtf/Atomics.h:
3163         * wtf/AutomaticThread.cpp:
3164         * wtf/AutomaticThread.h:
3165         * wtf/BackwardsGraph.h:
3166         * wtf/Bag.h:
3167         * wtf/BagToHashMap.h:
3168         * wtf/BitVector.cpp:
3169         * wtf/BitVector.h:
3170         * wtf/Bitmap.h:
3171         * wtf/BloomFilter.h:
3172         * wtf/Box.h:
3173         * wtf/BubbleSort.h:
3174         * wtf/BumpPointerAllocator.h:
3175         * wtf/ByteOrder.h:
3176         * wtf/CPUTime.cpp:
3177         * wtf/CallbackAggregator.h:
3178         * wtf/CheckedArithmetic.h:
3179         * wtf/CheckedBoolean.h:
3180         * wtf/ClockType.cpp:
3181         * wtf/ClockType.h:
3182         * wtf/CommaPrinter.h:
3183         * wtf/CompilationThread.cpp:
3184         * wtf/CompilationThread.h:
3185         * wtf/Compiler.h:
3186         * wtf/ConcurrentPtrHashSet.cpp:
3187         * wtf/ConcurrentVector.h:
3188         * wtf/Condition.h:
3189         * wtf/CountingLock.cpp:
3190         * wtf/CrossThreadTaskHandler.cpp:
3191         * wtf/CryptographicUtilities.cpp:
3192         * wtf/CryptographicUtilities.h:
3193         * wtf/CryptographicallyRandomNumber.cpp:
3194         * wtf/CryptographicallyRandomNumber.h:
3195         * wtf/CurrentTime.cpp:
3196         * wtf/DataLog.cpp:
3197         * wtf/DataLog.h:
3198         * wtf/DateMath.cpp:
3199         * wtf/DateMath.h:
3200         * wtf/DecimalNumber.cpp:
3201         * wtf/DecimalNumber.h:
3202         * wtf/Deque.h:
3203         * wtf/DisallowCType.h:
3204         * wtf/Dominators.h:
3205         * wtf/DoublyLinkedList.h:
3206         * wtf/FastBitVector.cpp:
3207         * wtf/FastMalloc.cpp:
3208         * wtf/FastMalloc.h:
3209         * wtf/FeatureDefines.h:
3210         * wtf/FilePrintStream.cpp:
3211         * wtf/FilePrintStream.h:
3212         * wtf/FlipBytes.h:
3213         * wtf/FunctionDispatcher.cpp:
3214         * wtf/FunctionDispatcher.h:
3215         * wtf/GetPtr.h:
3216         * wtf/Gigacage.cpp:
3217         * wtf/GlobalVersion.cpp:
3218         * wtf/GraphNodeWorklist.h:
3219         * wtf/GregorianDateTime.cpp:
3220         * wtf/GregorianDateTime.h:
3221         * wtf/HashFunctions.h:
3222         * wtf/HashMap.h:
3223         * wtf/HashMethod.h:
3224         * wtf/HashSet.h:
3225         * wtf/HashTable.cpp:
3226         * wtf/HashTraits.h:
3227         * wtf/Indenter.h:
3228         * wtf/IndexSparseSet.h:
3229         * wtf/InlineASM.h:
3230         * wtf/Insertion.h:
3231         * wtf/IteratorAdaptors.h:
3232         * wtf/IteratorRange.h:
3233         * wtf/JSONValues.cpp:
3234         * wtf/JSValueMalloc.cpp:
3235         * wtf/LEBDecoder.h:
3236         * wtf/Language.cpp:
3237         * wtf/ListDump.h:
3238         * wtf/Lock.cpp:
3239         * wtf/Lock.h:
3240         * wtf/LockAlgorithm.h:
3241         * wtf/LockedPrintStream.cpp:
3242         * wtf/Locker.h:
3243         * wtf/MD5.cpp:
3244         * wtf/MD5.h:
3245         * wtf/MainThread.cpp:
3246         * wtf/MainThread.h:
3247         * wtf/MallocPtr.h:
3248         * wtf/MathExtras.h:
3249         * wtf/MediaTime.cpp:
3250         * wtf/MediaTime.h:
3251         * wtf/MemoryPressureHandler.cpp:
3252         * wtf/MessageQueue.h:
3253         * wtf/MetaAllocator.cpp:
3254         * wtf/MetaAllocator.h:
3255         * wtf/MetaAllocatorHandle.h:
3256         * wtf/MonotonicTime.cpp:
3257         * wtf/MonotonicTime.h:
3258         * wtf/NakedPtr.h:
3259         * wtf/NoLock.h:
3260         * wtf/NoTailCalls.h:
3261         * wtf/Noncopyable.h:
3262         * wtf/NumberOfCores.cpp:
3263         * wtf/NumberOfCores.h:
3264         * wtf/OSAllocator.h:
3265         * wtf/OSAllocatorPosix.cpp:
3266         * wtf/OSRandomSource.cpp:
3267         * wtf/OSRandomSource.h:
3268         * wtf/ObjcRuntimeExtras.h:
3269         * wtf/OrderMaker.h:
3270         * wtf/PackedIntVector.h:
3271         * wtf/PageAllocation.h:
3272         * wtf/PageBlock.cpp:
3273         * wtf/PageBlock.h:
3274         * wtf/PageReservation.h:
3275         * wtf/ParallelHelperPool.cpp:
3276         * wtf/ParallelHelperPool.h:
3277         * wtf/ParallelJobs.h:
3278         * wtf/ParallelJobsLibdispatch.h:
3279         * wtf/ParallelVectorIterator.h:
3280         * wtf/ParkingLot.cpp:
3281         * wtf/ParkingLot.h:
3282         * wtf/Platform.h:
3283         * wtf/PointerComparison.h:
3284         * wtf/Poisoned.cpp:
3285         * wtf/PrintStream.cpp:
3286         * wtf/PrintStream.h:
3287         * wtf/ProcessID.h:
3288         * wtf/ProcessPrivilege.cpp:
3289         * wtf/RAMSize.cpp:
3290         * wtf/RAMSize.h:
3291         * wtf/RandomDevice.cpp:
3292         * wtf/RandomNumber.cpp:
3293         * wtf/RandomNumber.h:
3294         * wtf/RandomNumberSeed.h:
3295         * wtf/RangeSet.h:
3296         * wtf/RawPointer.h:
3297         * wtf/ReadWriteLock.cpp:
3298         * wtf/RedBlackTree.h:
3299         * wtf/Ref.h:
3300         * wtf/RefCountedArray.h:
3301         * wtf/RefCountedLeakCounter.cpp:
3302         * wtf/RefCountedLeakCounter.h:
3303         * wtf/RefCounter.h:
3304         * wtf/RefPtr.h:
3305         * wtf/RetainPtr.h:
3306         * wtf/RunLoop.cpp:
3307         * wtf/RunLoop.h:
3308         * wtf/RunLoopTimer.h:
3309         * wtf/RunLoopTimerCF.cpp:
3310         * wtf/SHA1.cpp:
3311         * wtf/SHA1.h:
3312         * wtf/SaturatedArithmetic.h:
3313         (saturatedSubtraction):
3314         * wtf/SchedulePair.h:
3315         * wtf/SchedulePairCF.cpp:
3316         * wtf/SchedulePairMac.mm:
3317         * wtf/ScopedLambda.h:
3318         * wtf/Seconds.cpp:
3319         * wtf/Seconds.h:
3320         * wtf/SegmentedVector.h:
3321         * wtf/SentinelLinkedList.h:
3322         * wtf/SharedTask.h:
3323         * wtf/SimpleStats.h:
3324         * wtf/SingleRootGraph.h:
3325         * wtf/SinglyLinkedList.h:
3326         * wtf/SixCharacterHash.cpp:
3327         * wtf/SixCharacterHash.h:
3328         * wtf/SmallPtrSet.h:
3329         * wtf/Spectrum.h:
3330         * wtf/StackBounds.cpp:
3331         * wtf/StackBounds.h:
3332         * wtf/StackStats.cpp:
3333         * wtf/StackStats.h:
3334         * wtf/StackTrace.cpp:
3335         * wtf/StdLibExtras.h:
3336         * wtf/StreamBuffer.h:
3337         * wtf/StringHashDumpContext.h:
3338         * wtf/StringPrintStream.cpp:
3339         * wtf/StringPrintStream.h:
3340         * wtf/ThreadGroup.cpp:
3341         * wtf/ThreadMessage.cpp:
3342         * wtf/ThreadSpecific.h:
3343         * wtf/Threading.cpp:
3344         * wtf/Threading.h:
3345         * wtf/ThreadingPrimitives.h:
3346         * wtf/ThreadingPthreads.cpp:
3347         * wtf/TimeWithDynamicClockType.cpp:
3348         * wtf/TimeWithDynamicClockType.h:
3349         * wtf/TimingScope.cpp:
3350         * wtf/TinyLRUCache.h:
3351         * wtf/TinyPtrSet.h:
3352         * wtf/TriState.h:
3353         * wtf/TypeCasts.h:
3354         * wtf/UUID.cpp:
3355         * wtf/UnionFind.h:
3356         * wtf/VMTags.h:
3357         * wtf/ValueCheck.h:
3358         * wtf/Vector.h:
3359         * wtf/VectorTraits.h:
3360         * wtf/WallTime.cpp:
3361         * wtf/WallTime.h:
3362         * wtf/WeakPtr.h:
3363         * wtf/WeakRandom.h:
3364         * wtf/WordLock.cpp:
3365         * wtf/WordLock.h:
3366         * wtf/WorkQueue.cpp:
3367         * wtf/WorkQueue.h:
3368         * wtf/WorkerPool.cpp:
3369         * wtf/cf/LanguageCF.cpp:
3370         * wtf/cf/RunLoopCF.cpp:
3371         * wtf/cocoa/Entitlements.mm:
3372         * wtf/cocoa/MachSendRight.cpp:
3373         * wtf/cocoa/MainThreadCocoa.mm:
3374         * wtf/cocoa/MemoryFootprintCocoa.cpp:
3375         * wtf/cocoa/WorkQueueCocoa.cpp:
3376         * wtf/dtoa.cpp:
3377         * wtf/dtoa.h:
3378         * wtf/ios/WebCoreThread.cpp:
3379         * wtf/ios/WebCoreThread.h:
3380         * wtf/mac/AppKitCompatibilityDeclarations.h:
3381         * wtf/mac/DeprecatedSymbolsUsedBySafari.mm:
3382         * wtf/mbmalloc.cpp:
3383         * wtf/persistence/PersistentCoders.cpp:
3384         * wtf/persistence/PersistentDecoder.cpp:
3385         * wtf/persistence/PersistentEncoder.cpp:
3386         * wtf/spi/cf/CFBundleSPI.h:
3387         * wtf/spi/darwin/CommonCryptoSPI.h:
3388         * wtf/text/ASCIIFastPath.h:
3389         * wtf/text/ASCIILiteral.cpp:
3390         * wtf/text/AtomicString.cpp:
3391         * wtf/text/AtomicString.h:
3392         * wtf/text/AtomicStringHash.h:
3393         * wtf/text/AtomicStringImpl.cpp:
3394         * wtf/text/AtomicStringImpl.h:
3395         * wtf/text/AtomicStringTable.cpp:
3396         * wtf/text/AtomicStringTable.h:
3397         * wtf/text/Base64.cpp:
3398         * wtf/text/CString.cpp:
3399         * wtf/text/CString.h:
3400         * wtf/text/ConversionMode.h:
3401         * wtf/text/ExternalStringImpl.cpp:
3402         * wtf/text/IntegerToStringConversion.h:
3403         * wtf/text/LChar.h:
3404         * wtf/text/LineEnding.cpp:
3405         * wtf/text/StringBuffer.h:
3406         * wtf/text/StringBuilder.cpp:
3407         * wtf/text/StringBuilder.h:
3408         * wtf/text/StringBuilderJSON.cpp:
3409         * wtf/text/StringCommon.h:
3410         * wtf/text/StringConcatenate.h:
3411         * wtf/text/StringHash.h:
3412         * wtf/text/StringImpl.cpp:
3413         * wtf/text/StringImpl.h:
3414         * wtf/text/StringOperators.h:
3415         * wtf/text/StringView.cpp:
3416         * wtf/text/StringView.h:
3417         * wtf/text/SymbolImpl.cpp:
3418         * wtf/text/SymbolRegistry.cpp:
3419         * wtf/text/SymbolRegistry.h:
3420         * wtf/text/TextBreakIterator.cpp:
3421         * wtf/text/TextBreakIterator.h:
3422         * wtf/text/TextBreakIteratorInternalICU.h:
3423         * wtf/text/TextPosition.h:
3424         * wtf/text/TextStream.cpp:
3425         * wtf/text/UniquedStringImpl.h:
3426         * wtf/text/WTFString.cpp:
3427         * wtf/text/WTFString.h:
3428         * wtf/text/cocoa/StringCocoa.mm:
3429         * wtf/text/cocoa/StringViewCocoa.mm:
3430         * wtf/text/cocoa/TextBreakIteratorInternalICUCocoa.cpp:
3431         * wtf/text/icu/UTextProvider.cpp:
3432         * wtf/text/icu/UTextProvider.h:
3433         * wtf/text/icu/UTextProviderLatin1.cpp:
3434         * wtf/text/icu/UTextProviderLatin1.h:
3435         * wtf/text/icu/UTextProviderUTF16.cpp:
3436         * wtf/text/icu/UTextProviderUTF16.h:
3437         * wtf/threads/BinarySemaphore.cpp:
3438         * wtf/threads/BinarySemaphore.h:
3439         * wtf/threads/Signals.cpp:
3440         * wtf/unicode/CharacterNames.h:
3441         * wtf/unicode/Collator.h:
3442         * wtf/unicode/CollatorDefault.cpp:
3443         * wtf/unicode/UTF8.cpp:
3444         * wtf/unicode/UTF8.h:
3445
3446 2018-10-12  Alex Christensen  <achristensen@webkit.org>
3447
3448         Allow encoding of small enum classes
3449         https://bugs.webkit.org/show_bug.cgi?id=190531
3450
3451         Reviewed by Tim Horton.
3452
3453         * wtf/Forward.h:
3454
3455 2018-10-11  Alexey Proskuryakov  <ap@apple.com>
3456
3457         Add PLATFORM(IOS_FAMILY) and OS(IOS_FAMILY)
3458         https://bugs.webkit.org/show_bug.cgi?id=190477
3459
3460         Reviewed by Tim Horton.
3461
3462         Currently, PLATFORM(IOS) and OS(IOS) are true when building for any
3463         TARGET_OS_IPHONE target, which is quite confusing. Add a better named alternative,
3464         as a first step towards mass replacing PLATFORM(IOS). Can't so it all at once
3465         because of dependencies in other source repositories.
3466
3467         * wtf/Platform.h: Changed to the new name in this file though. Kept a few
3468         instances that actually target iOS only, having a version check.
3469
3470 2018-10-11  Yusuke Suzuki  <yusukesuzuki@slowstart.org>
3471
3472         Use currentStackPointer more
3473         https://bugs.webkit.org/show_bug.cgi?id=190503
3474
3475         Reviewed by Saam Barati.
3476
3477         Use WTF::currentStackPointer more in WebKit to adopt ASAN detect_stack_use_after_return option.
3478
3479         * wtf/StackBounds.cpp:
3480         (WTF::testStackDirection2):
3481         (WTF::testStackDirection):
3482         * wtf/ThreadingPthreads.cpp:
3483         (WTF::Thread::signalHandlerSuspendResume):
3484         (WTF::getApproximateStackPointer): Deleted.
3485
3486 2018-10-11  Ross Kirsling  <ross.kirsling@sony.com>
3487
3488         [WTF] Semaphore.h conflicts with POSIX header
3489         https://bugs.webkit.org/show_bug.cgi?id=190486
3490
3491         Reviewed by Yusuke Suzuki.
3492
3493         Rename Semaphore.h to WTFSemaphore.h to avoid conflict with POSIX semaphore.h on case-insensitive file systems.
3494
3495         * WTF.xcodeproj/project.pbxproj:
3496         * wtf/CMakeLists.txt:
3497         * wtf/WTFSemaphore.h: Renamed from wtf/Semaphore.h.
3498
3499 2018-10-10  Mark Lam  <mark.lam@apple.com>
3500
3501         Changes towards allowing use of the ASAN detect_stack_use_after_return option.
3502         https://bugs.webkit.org/show_bug.cgi?id=190405
3503         <rdar://problem/45131464>
3504
3505         Reviewed by Michael Saboff.
3506
3507         Introduce WTF::currentStackPointer() which computes its caller's stack pointer value.
3508
3509         * WTF.xcodeproj/project.pbxproj:
3510         * wtf/CMakeLists.txt:
3511         * wtf/StackBounds.h:
3512         (WTF::StackBounds::checkConsistency const):
3513         * wtf/StackPointer.cpp: Added.
3514         (WTF::currentStackPointer):
3515         * wtf/StackPointer.h: Added.
3516
3517 2018-10-09  Mark Lam  <mark.lam@apple.com>
3518
3519         StringTypeAdapter constructor is not properly enforcing String::MaxLength.
3520         https://bugs.webkit.org/show_bug.cgi?id=190392
3521         <rdar://problem/45116210>
3522
3523         Reviewed by Saam Barati.
3524
3525         Previously, the StringTypeAdapter constructor for a UChar* string was summing the
3526         unsigned length of the source string without an overflow check.  We now make that
3527         length a size_t which removes this issue, and assert that it's within
3528         String::MaxLength thereafter.
3529
3530         Also made the StringTypeAdapter constructor for a LChar* string behave in an
3531         equivalent manner for consistency.  In both cases, we'll crash in a RELEASE_ASSERT
3532         if the source string length exceeds String::MaxLength.
3533
3534         * wtf/text/StringConcatenate.h:
3535
3536 2018-10-09  Mark Lam  <mark.lam@apple.com>
3537
3538         Revert temporary asserts for debugging a mysterious ASAN bot crash.
3539         https://bugs.webkit.org/show_bug.cgi?id=190396
3540
3541         Reviewed by Yusuke Suzuki.
3542
3543         * wtf/StackBounds.cpp:
3544         (WTF::StackBounds::newThreadStackBounds):
3545         * wtf/StackBounds.h:
3546         (WTF::StackBounds::checkConsistency const):
3547
3548 2018-10-08  Aditya Keerthi  <akeerthi@apple.com>
3549
3550         Make <input type=color> a runtime enabled (on-by-default) feature
3551         https://bugs.webkit.org/show_bug.cgi?id=189162
3552
3553         Reviewed by Wenson Hsieh and Tim Horton.
3554
3555         * wtf/FeatureDefines.h:
3556
3557 2018-10-06  Mark Lam  <mark.lam@apple.com>
3558
3559         Adding some temporary asserts with data logging to debug a mysterious ASAN bot crash.
3560         https://bugs.webkit.org/show_bug.cgi?id=190334
3561         <rdar://problem/45071303>
3562
3563         Reviewed by Yusuke Suzuki.
3564
3565         These assertions are needed because we can't reproduce the issue locally.
3566         We'll remove these asserts after the needed data has been collected from the bot.
3567
3568         * wtf/StackBounds.cpp:
3569         (WTF::StackBounds::newThreadStackBounds):
3570         * wtf/StackBounds.h:
3571         (WTF::StackBounds::checkConsistency const):
3572
3573 2018-10-07  Yusuke Suzuki  <yusukesuzuki@slowstart.org>
3574
3575         Name Heap threads
3576         https://bugs.webkit.org/show_bug.cgi?id=190337
3577
3578         Reviewed by Mark Lam.
3579
3580         Add a functionality naming threads of ParallelHelperPool.
3581
3582         * wtf/ParallelHelperPool.cpp:
3583         (WTF::ParallelHelperPool::ParallelHelperPool):
3584         * wtf/ParallelHelperPool.h:
3585
3586 2018-10-06  Mark Lam  <mark.lam@apple.com>
3587
3588         Adding some temporary asserts to debug a mysterious ASAN bot crash.
3589         https://bugs.webkit.org/show_bug.cgi?id=190331
3590
3591         Reviewed by Filip Pizlo.
3592
3593         These assertions are needed because we can't reproduce the issue locally.
3594         We'll remove these asserts after the needed data has been collected from the bot.
3595
3596         * wtf/StackBounds.h:
3597         (WTF::StackBounds::checkConsistency const):
3598
3599 2018-10-05  Yusuke Suzuki  <yusukesuzuki@slowstart.org>
3600
3601         [JSC][Linux] Support Perf JITDump logging
3602         https://bugs.webkit.org/show_bug.cgi?id=189893
3603
3604         Reviewed by Mark Lam.
3605
3606         * wtf/PageReservation.h:
3607         (WTF::PageReservation::reserveAndCommitWithGuardPages):
3608
3609 2018-10-03  Dan Bernstein  <mitz@apple.com>
3610
3611         WTF part of [Xcode] Update some build settings as recommended by Xcode 10
3612         https://bugs.webkit.org/show_bug.cgi?id=190250
3613
3614         Reviewed by Alex Christensen.
3615
3616         * Configurations/Base.xcconfig: Enabled CLANG_WARN_COMMA, CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS,
3617           and CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF.
3618
3619         * WTF.xcodeproj/project.pbxproj: Let Xcode update LastUpgradeCheck.
3620
3621         * wtf/MathExtras.h:
3622         (WTF::fastLog2): Addressed newly-enabled CLANG_WARN_COMMA by splitting some comma-separated
3623           expressions into individual statements.
3624
3625 2018-10-03  Mark Lam  <mark.lam@apple.com>
3626
3627         Make string MaxLength for all WTF and JS strings consistently equal to INT_MAX.
3628         https://bugs.webkit.org/show_bug.cgi?id=190187
3629         <rdar://problem/42512909>
3630
3631         Reviewed by Michael Saboff.
3632
3633         * wtf/text/StringConcatenate.h:
3634         (WTF::tryMakeStringFromAdapters):
3635         (WTF::sumWithOverflow): Deleted.
3636         * wtf/text/StringImpl.h:
3637         * wtf/text/WTFString.h:
3638
3639 2018-10-03  Michael Catanzaro  <mcatanzaro@igalia.com>
3640
3641         -Wunused-variable in RenderLayer::updateScrollableAreaSet
3642         https://bugs.webkit.org/show_bug.cgi?id=190200
3643
3644         Reviewed by Yusuke Suzuki.
3645
3646         Add a new UNUSED_VARIABLE() macro. It's the same as UNUSED_PARAM(), just named differently.
3647
3648         * wtf/Compiler.h:
3649
3650 2018-10-01  Dean Jackson  <dino@apple.com>
3651
3652         [macOS] Switching to discrete GPU should be done in the UI process
3653         https://bugs.webkit.org/show_bug.cgi?id=189361
3654         <rdar://problem/43949622>
3655
3656         Reviewed by Simon Fraser.
3657
3658         Define GL_SILENCE_DEPRECATION to avoid deprecation warnings for OpenGL.
3659
3660         * wtf/Platform.h:
3661
3662 2018-10-02  Commit Queue  <commit-queue@webkit.org>
3663
3664         Unreviewed, rolling out r236624 and r236671.
3665         https://bugs.webkit.org/show_bug.cgi?id=190207
3666
3667         The change in r236624 introduced crashes on the bots
3668         (Requested by ryanhaddad on #webkit).
3669
3670         Reverted changesets:
3671
3672         "Refactoring: eliminate raw pointer usage in Fullscreen code"
3673         https://bugs.webkit.org/show_bug.cgi?id=188747
3674         https://trac.webkit.org/changeset/236624
3675
3676         "Unify implementation in VideoFullscreenInterfaceAVKit"
3677         https://bugs.webkit.org/show_bug.cgi?id=190091
3678         https://trac.webkit.org/changeset/236671
3679
3680 2018-10-02  Caio Lima  <ticaiolima@gmail.com>
3681
3682         [BigInt] BigInt.proptotype.toString is broken when radix is power of 2
3683         https://bugs.webkit.org/show_bug.cgi?id=190033
3684
3685         Reviewed by Yusuke Suzuki.
3686
3687         * wtf/MathExtras.h:
3688         (WTF::ctz32):
3689
3690 2018-10-01  Andy Estes  <aestes@apple.com>
3691
3692         [watchOS] Adopt NSURLSessionCompanionProxyPreference
3693         https://bugs.webkit.org/show_bug.cgi?id=190177
3694         <rdar://problem/43402114>
3695
3696         Reviewed by Wenson Hsieh.
3697
3698         * wtf/FeatureDefines.h:
3699
3700 2018-10-01  Koby Boyango  <koby.b@mce-sys.com>
3701
3702         [WTF][JSCONLY] Use MainThreadWin on Windows in the JSCOnly port
3703         https://bugs.webkit.org/show_bug.cgi?id=190121
3704
3705         Reviewed by Yusuke Suzuki.
3706
3707         This fixes JSCOnly build on Windows after r236617.
3708
3709         * wtf/PlatformJSCOnly.cmake:
3710
3711 2018-10-01  Commit Queue  <commit-queue@webkit.org>
3712
3713         Unreviewed, rolling out r236647.
3714         https://bugs.webkit.org/show_bug.cgi?id=190124
3715
3716         Breaking test stress/big-int-to-string.js (Requested by
3717         caiolima_ on #webkit).
3718
3719         Reverted changeset:
3720
3721         "[BigInt] BigInt.proptotype.toString is broken when radix is
3722         power of 2"
3723         https://bugs.webkit.org/show_bug.cgi?id=190033
3724         https://trac.webkit.org/changeset/236647
3725
3726 2018-09-30  Caio Lima  <ticaiolima@gmail.com>
3727
3728         [BigInt] BigInt.proptotype.toString is broken when radix is power of 2
3729         https://bugs.webkit.org/show_bug.cgi?id=190033
3730
3731         Reviewed by Yusuke Suzuki.
3732
3733         * wtf/MathExtras.h:
3734         (WTF::ctz32):
3735
3736 2018-09-28  Jer Noble  <jer.noble@apple.com>
3737
3738         Refactoring: eliminate raw pointer usage in Fullscreen code
3739         https://bugs.webkit.org/show_bug.cgi?id=188747
3740         <rdar://problem/43541164>
3741
3742         Reviewed by Alex Christensen.
3743
3744         * WTF.xcodeproj/project.pbxproj:
3745         * wtf/WeakPtrContainer.h: Added.
3746
3747 2018-09-28  Yusuke Suzuki  <yusukesuzuki@slowstart.org>
3748
3749         [WTF] Make isMainThread more reliable
3750         https://bugs.webkit.org/show_bug.cgi?id=189880
3751
3752         Reviewed by Mark Lam.
3753
3754         isMainThread() relied on Thread::current(). This API becomes broken in Windows
3755         when the Thread is about to be destroyed since TLS is already cleared. This causes
3756         a bug since `isMainThread()` is called in Thread::didExit in Windows.
3757
3758         This patch makes this `isMainThread` more reliable in all the platforms. In Windows,
3759         we use `Thread::currentID()` instead of `Thread::current()` since `Thread::currentID`
3760         uses Win32 GetCurrentThreadId directly. In the other system, we use `pthread_main_np`
3761         or `pthread_self` instead.
3762
3763         We also move `holdLock` code inside `if (shouldRemoveThreadFromThreadGroup())`. If
3764         the other thread takes a mutex and destroyed, this `holdLock` waits forever. This problem
3765         only happens in Windows since Windows calls TLS destructor for the main thread.
3766
3767         * WTF.xcodeproj/project.pbxproj:
3768         * wtf/MainThread.cpp:
3769         (WTF::initializeMainThread):
3770         (): Deleted.
3771         (WTF::isMainThread): Deleted.
3772         (WTF::isMainThreadIfInitialized): Deleted.
3773         * wtf/Platform.h:
3774         * wtf/PlatformMac.cmake:
3775         * wtf/Threading.cpp:
3776         (WTF::Thread::didExit):
3777         * wtf/cocoa/MainThreadCocoa.mm: Renamed from Source/WTF/wtf/mac/MainThreadMac.mm.
3778         * wtf/generic/MainThreadGeneric.cpp:
3779         (WTF::initializeMainThreadPlatform):
3780         (WTF::isMainThread):
3781         (WTF::isMainThreadIfInitialized):
3782         * wtf/win/MainThreadWin.cpp:
3783         (WTF::initializeMainThreadPlatform):
3784         (WTF::isMainThread):
3785         (WTF::isMainThreadIfInitialized):
3786
3787 2018-09-28  Commit Queue  <commit-queue@webkit.org>
3788
3789         Unreviewed, rolling out r236605.
3790         https://bugs.webkit.org/show_bug.cgi?id=190087
3791
3792         caused three API test timeouts (Requested by jernoble on
3793         #webkit).
3794
3795         Reverted changeset:
3796
3797         "Refactoring: eliminate raw pointer usage in Fullscreen code"
3798         https://bugs.webkit.org/show_bug.cgi?id=188747
3799         https://trac.webkit.org/changeset/236605
3800
3801 2018-09-28  Brian Burg  <bburg@apple.com>
3802
3803         Replace recently added line comments in Compiler.h
3804         https://bugs.webkit.org/show_bug.cgi?id=190062
3805         <rdar://problem/44838618>
3806
3807         Reviewed by Joseph Pecoraro.
3808
3809         This breaks some Apple-internal tooling. For now, work around it by
3810         changing the comment style. On the other side, the issue will be fixed
3811         more permanently by adopting the approach from r230213.
3812
3813         * wtf/Compiler.h: Use multiline comments.
3814
3815 2018-09-28  Jer Noble  <jer.noble@apple.com>
3816
3817         Refactoring: eliminate raw pointer usage in Fullscreen code
3818         https://bugs.webkit.org/show_bug.cgi?id=188747
3819         <rdar://problem/43541164>
3820
3821         Reviewed by Alex Christensen.
3822
3823         * WTF.xcodeproj/project.pbxproj:
3824         * wtf/WeakPtrContainer.h: Added.
3825
3826 2018-09-28  Koby Boyango  <koby.b@mce.systems>
3827
3828         [WTF] Add ExternalStringImpl, a StringImpl for user controlled buffers
3829         https://bugs.webkit.org/show_bug.cgi?id=189991
3830
3831         Reviewed by Yusuke Suzuki.
3832
3833         * WTF.xcodeproj/project.pbxproj:
3834         * wtf/CMakeLists.txt:
3835         * wtf/text/ExternalStringImpl.cpp: Added.
3836         * wtf/text/ExternalStringImpl.h: Added.
3837         * wtf/text/StringImpl.cpp:
3838         * wtf/text/StringImpl.h:
3839
3840 2018-09-27  Saam barati  <sbarati@apple.com>
3841
3842         Verify the contents of AssemblerBuffer on arm64e
3843         https://bugs.webkit.org/show_bug.cgi?id=190057
3844         <rdar://problem/38916630>
3845
3846         Reviewed by Mark Lam.
3847
3848         * wtf/PtrTag.h:
3849         (WTF::tagInt):
3850
3851 2018-09-27  Jer Noble  <jer.noble@apple.com>
3852
3853         MediaPlayer should have mediaPlayerWaitingForKeyChanged() / bool waitingForKey() accessor
3854         https://bugs.webkit.org/show_bug.cgi?id=189951
3855
3856         Reviewed by Eric Carlson.
3857
3858         Templated functions should take r-value references, as they have perfect type deduction for
3859         all parameter types; references, l-value references, and r-value references in template function
3860         parameters have special type deduction semantics.
3861         See: <https://en.cppreference.com/w/cpp/language/reference#Forwarding_references>
3862
3863         Previously, const reference parameters would be copied when passed into anyOf(), and containers
3864         of Ref<> would generate compile errors when passed into anyOf, as they cannot be copied. Now,
3865         with r-value reference types in template parameters, a const reference is mapped to a const reference,
3866         a non-const reference is mapped to a non-const reference, and a r-value reference is mapped to
3867         an r-value reference.
3868
3869         * wtf/Algorithms.h:
3870         (WTF::forEach):
3871         (WTF::anyOf):
3872         (WTF::allOf):
3873
3874 2018-09-25  John Wilander  <wilander@apple.com>
3875
3876         Change from HAVE(CFNETWORK_STORAGE_PARTITIONING) to ENABLE(RESOURCE_LOAD_STATISTICS)
3877         https://bugs.webkit.org/show_bug.cgi?id=189959
3878         <rdar://problem/44767642>
3879
3880         Reviewed by Chris Dumez.
3881
3882         * wtf/Platform.h:
3883             Enables RESOURCE_LOAD_STATISTICS for Cocoa platforms.
3884
3885 2018-09-24  Fujii Hironori  <Hironori.Fujii@sony.com>
3886
3887         Rename WTF_COMPILER_GCC_OR_CLANG to WTF_COMPILER_GCC_COMPATIBLE
3888         https://bugs.webkit.org/show_bug.cgi?id=189733
3889
3890         Reviewed by Michael Catanzaro.
3891
3892         Clang for Windows build enables WTF_COMPILER_CLANG and
3893         WTF_COMPILER_MSVC, but disables WTF_COMPILER_GCC_OR_CLANG. It is
3894         strange WTF_COMPILER_GCC_OR_CLANG is not enabled even though
3895         WTF_COMPILER_CLANG is enabled. However, Clang for Windows imitates
3896         MSVC, and codes for COMPILER(GCC_OR_CLANG) are for non MSVC. At
3897         least at the moment, it is not feasible to define
3898         WTF_COMPILER_GCC_OR_CLANG for Clang for Windows.
3899
3900         To solve the issue, this change renames WTF_COMPILER_GCC_OR_CLANG
3901         to WTF_COMPILER_GCC_COMPATIBLE.
3902
3903         As an exception, I'd like to use IGNORE_WARNINGS_* macros even in
3904         Clang for Windows builds.
3905
3906         * wtf/Assertions.cpp: Replaced COMPILER(GCC_OR_CLANG) with COMPILER(GCC_COMPATIBLE).
3907         * wtf/Assertions.h: Ditto.
3908         * wtf/Atomics.h: Ditto.
3909         * wtf/CheckedArithmetic.h: Ditto.
3910         * wtf/FastMalloc.h: Ditto.
3911         * wtf/MathExtras.h: Ditto.
3912         * wtf/Platform.h: Ditto.
3913         * wtf/StdLibExtras.h: Ditto.
3914         * wtf/Vector.h: Ditto.
3915         * wtf/text/ASCIIFastPath.h: Ditto.
3916         * wtf/Compiler.h:  Ditto. Replaced "COMPILER(GCC_OR_CLANG)" with "COMPILER(GCC) || COMPILER(CLANG)" of IGNORE_WARNINGS_* macros.
3917
3918 2018-09-21  Yusuke Suzuki  <yusukesuzuki@slowstart.org>
3919
3920         [JSC] Enable LLInt ASM interpreter on X64 and ARM64 in non JIT configuration
3921         https://bugs.webkit.org/show_bug.cgi?id=189778
3922
3923         Reviewed by Keith Miller.
3924
3925         This patch adds ENABLE(C_LOOP) which indicates we use CLoop as the interpreter.
3926         Previously, we used !ENABLE(JIT) for this configuration. But now, we have
3927         a build configuration that has LLInt ASM interpreter (not CLoop) and !ENABLE(JIT).
3928
3929         We enable LLInt ASM interpreter for non JIT environment in X86_64 and ARM64 architectures.
3930         And we enable ENABLE(ASSEMBLER) for non JIT environment since it offers machine register
3931         information which is used for LLInt and SamplingProfiler.
3932
3933         * wtf/Platform.h:
3934
3935 2018-09-21  Keith Miller  <keith_miller@apple.com>
3936
3937         Add Promise SPI
3938         https://bugs.webkit.org/show_bug.cgi?id=189809
3939
3940         Reviewed by Saam Barati.
3941
3942         Fix issue where creating a JSContextRef off the main thread before
3943         creating initializing the main thread would cause an assertion
3944         failure.
3945
3946         * wtf/MainThread.cpp:
3947         (WTF::isMainThreadIfInitialized):
3948         * wtf/MainThread.h:
3949         * wtf/mac/MainThreadMac.mm:
3950         (WTF::isMainThreadIfInitialized):
3951         * wtf/text/cf/StringImplCF.cpp:
3952         (WTF::StringImpl::createCFString):
3953
3954 2018-09-21  Ryan Haddad  <ryanhaddad@apple.com>
3955
3956         Unreviewed, rolling out r236359.
3957
3958         Broke the Windows build.
3959
3960         Reverted changeset:
3961
3962         "Add Promise SPI"
3963         https://bugs.webkit.org/show_bug.cgi?id=189809
3964         https://trac.webkit.org/changeset/236359
3965
3966 2018-09-21  Keith Miller  <keith_miller@apple.com>
3967
3968         Add Promise SPI
3969         https://bugs.webkit.org/show_bug.cgi?id=189809
3970
3971         Reviewed by Saam Barati.
3972
3973         Fix issue where creating a JSContextRef off the main thread before
3974         creating initializing the main thread would cause an assertion
3975         failure.
3976
3977         * wtf/MainThread.cpp:
3978         (WTF::isMainThreadIfInitialized):
3979         * wtf/MainThread.h:
3980         * wtf/mac/MainThreadMac.mm:
3981         (WTF::isMainThreadIfInitialized):
3982         * wtf/text/cf/StringImplCF.cpp:
3983         (WTF::StringImpl::createCFString):
3984
3985 2018-09-20  Fujii Hironori  <Hironori.Fujii@sony.com>
3986
3987         [Win][Clang] UNUSED_PARAM(this) causes compilation error of "cannot take the address of an rvalue of type"
3988         https://bugs.webkit.org/show_bug.cgi?id=189732
3989
3990         Reviewed by Per Arne Vollan.
3991
3992         Clang for Windows can't compile the MSVC workaround of
3993         UNUSED_PARAM which has been introduced for Windows CE and Visual
3994         Studio 10. I think it's safe just to remove it.
3995
3996         * wtf/Compiler.h: Removed the code for COMPILER(MSVC).
3997
3998 2018-09-20  Alex Christensen  <achristensen@webkit.org>
3999
4000         Unreviewed, rolling out r235976.
4001
4002         Broke ARM
4003
4004         Reverted changeset:
4005
4006         "Use a Variant instead of a union in CSSSelector"
4007         https://bugs.webkit.org/show_bug.cgi?id=188559
4008         https://trac.webkit.org/changeset/235976
4009
4010 2018-09-17  Yusuke Suzuki  <utatane.tea@gmail.com>
4011
4012         [WTF] Use Semaphore and BinarySemaphore instead of dispatch_semaphore_t
4013         https://bugs.webkit.org/show_bug.cgi?id=185339
4014
4015         Reviewed by Mark Lam.
4016
4017         This patch adds WTF::Semaphore, which is based on WTF::Lock and WTF::Condition.
4018
4019         * WTF.xcodeproj/project.pbxproj:
4020         * wtf/CMakeLists.txt:
4021         * wtf/Semaphore.h: Added.
4022         (WTF::Semaphore::Semaphore):
4023         (WTF::Semaphore::signal):
4024         (WTF::Semaphore::waitUntil):
4025         (WTF::Semaphore::waitFor):
4026         (WTF::Semaphore::wait):
4027         * wtf/generic/WorkQueueGeneric.cpp:
4028         (WorkQueue::platformInitialize):
4029         * wtf/threads/BinarySemaphore.cpp:
4030         (WTF::BinarySemaphore::waitUntil):
4031         (WTF::BinarySemaphore::wait): Deleted.
4032         * wtf/threads/BinarySemaphore.h:
4033         (WTF::BinarySemaphore::waitFor):
4034         (WTF::BinarySemaphore::wait):
4035         Align the names of the functions to WTF::Condition.
4036         Add BinarySemaphore::wait(), which is the same to waitUntil(WallTime::infinity()).
4037
4038 2018-09-17  Jer Noble  <jer.noble@apple.com>
4039
4040         Add support for HEVC codec types in Media Capabilities
4041         https://bugs.webkit.org/show_bug.cgi?id=189565
4042
4043         Reviewed by Eric Carlson.
4044
4045         Extract the toIntegralType template into its own header.
4046
4047         * wtf/CMakeLists.txt:
4048         * wtf/text/StringConversion.h: Added.
4049         (isCharacterAllowedInBase):
4050         (toIntegralType):
4051         * wtf/text/WTFString.cpp:
4052
4053 2018-09-17  Jer Noble  <jer.noble@apple.com>
4054
4055         Enable USE_MEDIAREMOTE on iOS
4056         https://bugs.webkit.org/show_bug.cgi?id=189096
4057
4058         Reviewed by Eric Carlson.
4059
4060         * wtf/Platform.h:
4061
4062 2018-09-17  Frederic Wang  <fwang@igalia.com>
4063
4064         Build error in ImageBufferCG when compiled with IOSurfacePool
4065         https://bugs.webkit.org/show_bug.cgi?id=189579
4066
4067         Reviewed by Tim Horton.
4068
4069         IOSurface.h might be included with different value of IOSURFACE_CANVAS_BACKING_STORE, causing
4070         compilation errors when files in the same unified source do not agree on the definition.
4071         This patch moves the definition of IOSURFACE_CANVAS_BACKING_STORE from ImageBufferDataCG.h
4072         to Platform.h so that IOSURFACE_CANVAS_BACKING_STORE is set to the same value in all files.
4073         Finally some minors changes to explicitly declare/define ImageBuffer are performed in order
4074         to prevent future issues with Unified build rotating.
4075
4076         * wtf/Platform.h: Move definition from ImageBufferDataCG.h.
4077
4078 2018-09-14  Ryan Haddad  <ryanhaddad@apple.com>
4079
4080         Unreviewed, rolling out r235990.
4081
4082         Introduced TestWebKitAPI.NowPlayingTest timeouts on iOS
4083
4084         Reverted changeset:
4085
4086         "Enable USE_MEDIAREMOTE on iOS"
4087         https://bugs.webkit.org/show_bug.cgi?id=189096
4088         https://trac.webkit.org/changeset/235990
4089
4090 2018-09-13  Jer Noble  <jer.noble@apple.com>
4091
4092         Enable USE_MEDIAREMOTE on iOS
4093         https://bugs.webkit.org/show_bug.cgi?id=189096
4094
4095         Reviewed by Eric Carlson.
4096
4097         * wtf/Platform.h:
4098
4099 2018-09-13  Alex Christensen  <achristensen@webkit.org>
4100
4101         Use a Variant instead of a union in CSSSelector
4102         https://bugs.webkit.org/show_bug.cgi?id=188559
4103
4104         Reviewed by Antti Koivisto.
4105
4106         * wtf/Variant.h:
4107         Add packing macros to make it so Variant-containing structures don't always have 7 bytes of padding per Variant.
4108
4109 2018-09-12  Guillaume Emont  <guijemont@igalia.com>
4110
4111         Add IGNORE_WARNING_.* macros
4112         https://bugs.webkit.org/show_bug.cgi?id=188996
4113
4114         Reviewed by Michael Catanzaro.
4115
4116         * wtf/Assertions.cpp:
4117         * wtf/Assertions.h:
4118         * wtf/Compiler.h:
4119         * wtf/MD5.cpp:
4120         (WTF::MD5::MD5):
4121         (WTF::MD5::addBytes):
4122         (WTF::MD5::checksum):
4123         * wtf/PrintStream.cpp:
4124         (WTF::PrintStream::printfVariableFormat):
4125         * wtf/SHA1.cpp:
4126         (WTF::SHA1::SHA1):
4127         (WTF::SHA1::addBytes):
4128         (WTF::SHA1::computeHash):
4129         * wtf/ThreadingPthreads.cpp:
4130         * wtf/Vector.h:
4131         (WTF::VectorBuffer::endOfBuffer):
4132         * wtf/text/WTFString.cpp:
4133         (WTF::createWithFormatAndArguments):
4134
4135 == Rolled over to ChangeLog-2018-09-11 ==