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