Cache bytecode to disk
[WebKit-https.git] / Source / WTF / ChangeLog
1 2019-01-22  Tadeu Zagallo  <tzagallo@apple.com>
2
3         Cache bytecode to disk
4         https://bugs.webkit.org/show_bug.cgi?id=192782
5         <rdar://problem/46084932>
6
7         Reviewed by Keith Miller.
8
9         BitVectors have to be friends with JSC::CacheBitVector to allow
10         serializing its buffer as part of the bytecode cache encoding.
11
12         * wtf/BitVector.h:
13
14 2019-01-21  Claudio Saavedra  <csaavedra@igalia.com>
15
16         [GTK] Speculative build fix for Ubuntu LTS
17         https://bugs.webkit.org/show_bug.cgi?id=193651
18
19         Unreviewed build fix.
20
21         * wtf/Assertions.h: Add missing <cstdlib> include.
22
23 2019-01-20  Saam Barati  <sbarati@apple.com>
24
25         Rollout r240210: It broke tests on iOS
26         https://bugs.webkit.org/show_bug.cgi?id=193640
27
28         Unreviewed.
29
30         * wtf/BitVector.h:
31
32 2019-01-20  Tadeu Zagallo  <tzagallo@apple.com>
33
34         Cache bytecode to disk
35         https://bugs.webkit.org/show_bug.cgi?id=192782
36         <rdar://problem/46084932>
37
38         Reviewed by Keith Miller.
39
40         BitVectors have to be friends with JSC::CacheBitVector to allow
41         serializing its buffer as part of the bytecode cache encoding.
42
43         * wtf/BitVector.h:
44
45 2019-01-18  Tim Horton  <timothy_horton@apple.com>
46
47         Get rid of ADVANCED_SPELL_CHECKING
48         https://bugs.webkit.org/show_bug.cgi?id=193592
49
50         Reviewed by Wenson Hsieh.
51
52         * wtf/Platform.h:
53
54 2019-01-18  Jer Noble  <jer.noble@apple.com>
55
56         SDK_VARIANT build destinations should be separate from non-SDK_VARIANT builds
57         https://bugs.webkit.org/show_bug.cgi?id=189553
58
59         Reviewed by Tim Horton.
60
61         * Configurations/Base.xcconfig:
62         * Configurations/SDKVariant.xcconfig: Added.
63
64 2019-01-18  Keith Miller  <keith_miller@apple.com>
65
66         Gigacages should start allocations from a slide
67         https://bugs.webkit.org/show_bug.cgi?id=193523
68
69         Reviewed by Mark Lam.
70
71         This patch changes some macros into constants since macros are the
72         devil.
73
74         * wtf/Gigacage.cpp:
75         * wtf/Gigacage.h:
76
77 2019-01-18  Matt Lewis  <jlewis3@apple.com>
78
79         Unreviewed, rolling out r240160.
80
81         This broke multiple internal builds.
82
83         Reverted changeset:
84
85         "Gigacages should start allocations from a slide"
86         https://bugs.webkit.org/show_bug.cgi?id=193523
87         https://trac.webkit.org/changeset/240160
88
89 2019-01-18  Keith Miller  <keith_miller@apple.com>
90
91         Gigacages should start allocations from a slide
92         https://bugs.webkit.org/show_bug.cgi?id=193523
93
94         Reviewed by Mark Lam.
95
96         This patch changes some macros into constants since macros are the
97         devil.
98
99         * wtf/Gigacage.cpp:
100         * wtf/Gigacage.h:
101
102 2019-01-17  Truitt Savell  <tsavell@apple.com>
103
104         Unreviewed, rolling out r240124.
105
106         This commit broke an internal build.
107
108         Reverted changeset:
109
110         "SDK_VARIANT build destinations should be separate from non-
111         SDK_VARIANT builds"
112         https://bugs.webkit.org/show_bug.cgi?id=189553
113         https://trac.webkit.org/changeset/240124
114
115 2019-01-17  Jer Noble  <jer.noble@apple.com>
116
117         SDK_VARIANT build destinations should be separate from non-SDK_VARIANT builds
118         https://bugs.webkit.org/show_bug.cgi?id=189553
119
120         Reviewed by Tim Horton.
121
122         * Configurations/Base.xcconfig:
123         * Configurations/SDKVariant.xcconfig: Added.
124
125 2019-01-16  Keith Miller  <keith_miller@apple.com>
126
127         bmalloc should use JSC VM tag for gigacage
128         https://bugs.webkit.org/show_bug.cgi?id=193496
129
130         Reviewed by Mark Lam.
131
132         Move most of the macros for vm tagging to bmalloc.
133
134         * wtf/VMTags.h:
135
136 2019-01-16  Alberto Garcia  <berto@igalia.com>
137
138         [WTF] Compilation fails with system malloc
139         https://bugs.webkit.org/show_bug.cgi?id=172445
140
141         Reviewed by Michael Catanzaro.
142
143         Follow-up to r217270. The sysinfo() system call is specific to
144         Linux so update the #ifdef checks accordingly.
145
146         * wtf/RAMSize.cpp:
147         (WTF::computeRAMSize):
148
149 2019-01-15  Chris Dumez  <cdumez@apple.com>
150
151         Unreviewed, revert part of r239997 as it is not needed to fix the build.
152
153         * wtf/RefCounter.h:
154
155 2019-01-15  Alex Christensen  <achristensen@webkit.org>
156
157         Fix iOS build after r239993
158         https://bugs.webkit.org/show_bug.cgi?id=193361
159
160         * wtf/RefCounter.h:
161
162 2019-01-14  Michael Catanzaro  <mcatanzaro@igalia.com>
163
164         Use unorm2_normalize instead of precomposedStringWithCanonicalMapping in userVisibleString
165         https://bugs.webkit.org/show_bug.cgi?id=192945
166
167         Reviewed by Alex Christensen.
168
169         Replace use of the nice NSString function precomposedStringWithCanonicalMapping with the ICU
170         API unorm2_normalize. This is to prep the code for translation to cross-platform C++. Of
171         course this is much worse than the preexisting code, but this is just a transitional
172         measure and not the final state of the code. It wouldn't make sense to do this if the code
173         were to remain Objective C++.
174
175         * wtf/cocoa/NSURLExtras.mm:
176         (WTF::toNormalizationFormC):
177         (WTF::userVisibleString):
178
179 2019-01-14  Alex Christensen  <achristensen@webkit.org>
180
181         Bulgarian TLD should not punycode-encode URLs with Bulgarian Cyrillic characters
182         https://bugs.webkit.org/show_bug.cgi?id=193411
183         <rdar://problem/47215929>
184
185         Reviewed by Alexey Proskuryakov.
186
187         * wtf/cocoa/NSURLExtras.mm:
188         (WTF::allCharactersAllowedByTLDRules):
189
190 2019-01-12  Timothy Hatcher  <timothy@apple.com>
191
192         Have prefers-color-scheme: light always match on macOS versions before Mojave.
193         https://bugs.webkit.org/show_bug.cgi?id=191655
194         rdar://problem/46074680
195
196         Reviewed by Megan Gardner.
197
198         * wtf/Platform.h: Define HAVE_OS_DARK_MODE_SUPPORT on macOS 10.14.
199
200 2019-01-11  David Kilzer  <ddkilzer@apple.com>
201
202         Follow-up: WorkQueue::concurrentApply() passes a raw pointer to a temporary String to Thread::create().
203         https://bugs.webkit.org/show_bug.cgi?id=191350
204
205         * wtf/WorkQueue.cpp:
206         (WTF::WorkQueue::concurrentApply): Fix whitespace.
207
208 2019-01-11  Devin Rousso  <drousso@apple.com>
209
210         Fix style CFNetworkSPI style checker warnings from r239698
211         https://bugs.webkit.org/show_bug.cgi?id=193369
212
213         Reviewed by Joseph Pecoraro.
214
215         * wtf/Platform.h:
216
217 2019-01-11  Said Abou-Hallawa  <sabouhallawa@apple.com>
218
219         WorkQueue::concurrentApply() passes a raw pointer to a temporary String to Thread::create().
220         https://bugs.webkit.org/show_bug.cgi?id=191350
221
222         Reviewed by Brent Fulgham.
223
224         The non COCOA version of WorkQueue::concurrentApply() creates a temporary
225         String for the threadName and passes the raw pointer of this String to
226         Thread::create(). After freeing this String, Thread::entryPoint() uses
227         the raw char pointer to internally initialize the thread.
228
229         The fix is to use a single literal string for all the threads' names since
230         they are created for a thread-pool.
231
232         * wtf/WorkQueue.cpp:
233         (WTF::WorkQueue::concurrentApply):
234
235 2019-01-11  Dominik Infuehr  <dinfuehr@igalia.com>
236
237         Enable DFG on ARM/Linux again
238         https://bugs.webkit.org/show_bug.cgi?id=192496
239
240         Reviewed by Yusuke Suzuki.
241
242         After changing the bytecode format DFG was disabled on all 32-bit
243         architectures. Enable DFG now again on ARM/Linux.
244
245         * wtf/Platform.h:
246
247 2019-01-10  Commit Queue  <commit-queue@webkit.org>
248
249         Unreviewed, rolling out r239825.
250         https://bugs.webkit.org/show_bug.cgi?id=193330
251
252         Broke tests on armv7/linux bots (Requested by guijemont on
253         #webkit).
254
255         Reverted changeset:
256
257         "Enable DFG on ARM/Linux again"
258         https://bugs.webkit.org/show_bug.cgi?id=192496
259         https://trac.webkit.org/changeset/239825
260
261 2019-01-10  John Wilander  <wilander@apple.com>
262
263         Override the session configuration for cookieAcceptPolicy
264         https://bugs.webkit.org/show_bug.cgi?id=190925
265         <rdar://problem/45497382>
266
267         Reviewed by Alexey Proskuryakov and Alex Christensen.
268
269         * wtf/Platform.h:
270             Definition of HAVE_CFNETWORK_OVERRIDE_SESSION_COOKIE_ACCEPT_POLICY.
271
272 2019-01-10  Dominik Infuehr  <dinfuehr@igalia.com>
273
274         Enable DFG on ARM/Linux again
275         https://bugs.webkit.org/show_bug.cgi?id=192496
276
277         Reviewed by Yusuke Suzuki.
278
279         After changing the bytecode format DFG was disabled on all 32-bit
280         architectures. Enable DFG now again on ARM/Linux.
281
282         * wtf/Platform.h:
283
284 2019-01-10  Carlos Garcia Campos  <cgarcia@igalia.com>
285
286         [FreeType] Color emoji not properly supported
287         https://bugs.webkit.org/show_bug.cgi?id=191976
288
289         Reviewed by Michael Catanzaro.
290
291         Add a name for combining enclosing keycap character.
292
293         * wtf/unicode/CharacterNames.h:
294
295 2019-01-09  Carlos Eduardo Ramalho  <cadubentzen@gmail.com> and Fujii Hironori  <Hironori.Fujii@sony.com>
296
297         Use directory local sequential numbers for Unified Sources filenames instead of global sequential numbers for CMake
298         https://bugs.webkit.org/show_bug.cgi?id=192391
299
300         Reviewed by Don Olmstead.
301
302         Unified Source Builds are using global sequential numbers for
303         bundle filenames UnifiedSource{sequential-number}.cpp. As the
304         result, every new source file added would shift the next ones and
305         prevent compiler caches from speeding up consecutive builds e.g.
306         in git-bisect sessions.
307
308         Changed it to directory local sequential numbers,
309         UnifiedSource-{hash-of-dir-name}-{sequential-number-within-the-dir}.cpp.
310
311         This is affecting only CMake builds which is where no
312         '--max-cpp-bundle-count' nor '--max-obj-c-bundle-count' options
313         are set. Xcode builds still use the old convention.
314
315         * Scripts/generate-unified-source-bundles.rb: Add new instance
316         variables @currentDirectory and @extraFiles to BundleManager.
317         Still use global sequential numbers if --max-cpp-bundle-count or
318         --max-obj-c-bundle-count is given.
319
320 2019-01-09  Alex Christensen  <achristensen@webkit.org>
321
322         Expand use of sourceApplicationAuditData
323         https://bugs.webkit.org/show_bug.cgi?id=192995
324         <rdar://problem/46627875>
325
326         Reviewed by Brady Eidson.
327
328         * wtf/Platform.h:
329
330 2019-01-09  Mark Lam  <mark.lam@apple.com>
331
332         Gigacage disabling checks should handle the GIGACAGE_ALLOCATION_CAN_FAIL case properly.
333         https://bugs.webkit.org/show_bug.cgi?id=193292
334         <rdar://problem/46485450>
335
336         Reviewed by Yusuke Suzuki.
337
338         Update the USE_SYSTEM_MALLOC version of Gigacage.h to match the bmalloc version.
339
340         * wtf/Gigacage.h:
341
342 2019-01-07  David Kilzer  <ddkilzer@apple.com>
343
344         Prefer RetainPtr<NSObject> to RetainPtr<NSObject *>
345         <https://webkit.org/b/193056>
346
347         Reviewed by Alex Christensen.
348
349         * wtf/RetainPtr.h:
350         (WTF::RetainPtr<T>::HelperPtrType):
351         - Use C++ template metaprogramming to define a shared return
352           type for adoptNS() and retainPtr() that uses
353           RetainPtr<NSObject> instead of RetainPtr<NSObject *>.  The
354           non-Objective-C typedef is used with retainPtr() for CFTypeRef
355           objects.
356         (WTF::adoptNS):
357         - Only make declarations available when compilng with
358           Objective-C.  The inline implementation is only available for
359           Objective-C, so this makes the declarations consistent.
360         - Change return type to remove '*' from NS types using
361           RetainPtr<T>::HelperPtrType.
362         (WTF::retainPtr):
363         - Change return type to remove '*' from NS types using
364           RetainPtr<T>::HelperPtrType.
365
366         * wtf/SchedulePair.h:
367         - Remove '*' from RetainPtr<> type.
368
369 2019-01-07  Eric Carlson  <eric.carlson@apple.com>
370
371         A MediaTime timescale must never be zero
372         https://bugs.webkit.org/show_bug.cgi?id=193156
373         <rdar://problem/32504501>
374
375         Reviewed by Jer Noble.
376
377         * wtf/MediaTime.cpp:
378         (WTF::greatestCommonDivisor): ASSERT if either parameter or return value is zero.
379         (WTF::MediaTime::MediaTime): Create +/- infinity if passed zero timescale.
380         (WTF::MediaTime::createWithFloat): Ditto.
381         (WTF::MediaTime::createWithDouble): Ditto.
382         (WTF::MediaTime::setTimeScale): Ditto.
383
384 2019-01-02  Alex Christensen  <achristensen@webkit.org>
385
386         Homograph with LATIN SMALL LETTER R WITH FISHHOOK
387         https://bugs.webkit.org/show_bug.cgi?id=192944
388
389         Reviewed by Tim Horton.
390
391         * wtf/cocoa/NSURLExtras.mm:
392         (WTF::isLookalikeCharacter):
393
394 2019-01-02  Commit Queue  <commit-queue@webkit.org>
395
396         Unreviewed, rolling out r239524.
397         https://bugs.webkit.org/show_bug.cgi?id=193083
398
399         basic browsing seems not to work (Requested by thorton on
400         #webkit).
401
402         Reverted changeset:
403
404         "Expand use of sourceApplicationAuditData"
405         https://bugs.webkit.org/show_bug.cgi?id=192995
406         https://trac.webkit.org/changeset/239524
407
408 2018-12-28  Yusuke Suzuki  <yusukesuzuki@slowstart.org>
409
410         Add ENABLE_UNIFIED_BUILDS option to cmake ports
411         https://bugs.webkit.org/show_bug.cgi?id=193045
412
413         Reviewed by Don Olmstead.
414
415         * Scripts/generate-unified-source-bundles.rb:
416
417 2018-12-27  Alex Christensen  <achristensen@webkit.org>
418
419         Resurrect Mac CMake build
420         https://bugs.webkit.org/show_bug.cgi?id=192658
421
422         Reviewed by Yusuke Suzuki.
423
424         * wtf/PlatformMac.cmake:
425         * wtf/cf/CFURLExtras.cpp:
426         * wtf/cf/CFURLExtras.h:
427         * wtf/cf/URLCF.cpp:
428         * wtf/cocoa/NSURLExtras.h:
429         * wtf/cocoa/NSURLExtras.mm:
430         * wtf/cocoa/URLCocoa.mm:
431
432 2018-12-21  Dan Bernstein  <mitz@apple.com>
433
434         Fixed building for macOS 10.13 using the macOS 10.14 SDK.
435
436         * wtf/Platform.h: Changed HAVE_AUTHORIZATION_STATUS_FOR_MEDIA_TYPE to depend on the
437           deployment target, not the SDK.
438
439 2018-12-20  Yusuke Suzuki  <yusukesuzuki@slowstart.org>
440
441         [JSC] Implement "well-formed JSON.stringify" proposal
442         https://bugs.webkit.org/show_bug.cgi?id=191677
443
444         Reviewed by Darin Adler.
445
446         This patch implements "well-formed JSON.stringify" proposal[1], which is now stage 3.
447         JSON.stringify appended surrogate pair codes even if it is not paired appropriately.
448         The proposal requires that broken surrogate pairs are unicode-escaped.
449
450         [1]: https://github.com/tc39/proposal-well-formed-stringify
451
452         * wtf/text/StringBuilderJSON.cpp:
453         (WTF::appendQuotedJSONStringInternal):
454
455 2018-12-21  Alex Christensen  <achristensen@webkit.org>
456
457         Expand use of sourceApplicationAuditData
458         https://bugs.webkit.org/show_bug.cgi?id=192995
459         <rdar://problem/46627875>
460
461         Reviewed by Brady Eidson.
462
463         * wtf/Platform.h:
464
465 2018-12-21  Alex Christensen  <achristensen@webkit.org>
466
467         Revert r239503.
468         https://bugs.webkit.org/show_bug.cgi?id=192944
469
470         * wtf/cocoa/NSURLExtras.mm:
471         (WTF::isLookalikeCharacter):
472
473 2018-12-20  Brent Fulgham  <bfulgham@apple.com>
474
475         Show punycode if URL contains Latin small letter dotless i
476         https://bugs.webkit.org/show_bug.cgi?id=192944
477         <rdar://problem/46103047>
478
479         Reviewed by Andy Estes.
480
481         Revise our "lookalike character" logic to include the small Latin
482         dotless i character.
483
484         Test: fast/url/host.html
485
486         * wtf/cocoa/NSURLExtras.mm:
487         (WTF::isLookalikeCharacter):
488
489 2018-12-20  Chris Dumez  <cdumez@apple.com>
490
491         Use Optional::hasValue() instead of Optional::has_value()
492         https://bugs.webkit.org/show_bug.cgi?id=192948
493
494         Reviewed by Tim Horton.
495
496         * wtf/Hasher.h:
497         (WTF::add):
498         * wtf/Optional.h:
499
500 2018-12-20  Chris Dumez  <cdumez@apple.com>
501
502         Use Optional::valueOr() instead of Optional::value_or()
503         https://bugs.webkit.org/show_bug.cgi?id=192933
504
505         Reviewed by Geoffrey Garen.
506
507         * wtf/Optional.h:
508         (WTF::Optional<T::valueOr const):
509
510 2018-12-20  Tadeu Zagallo  <tzagallo@apple.com>
511
512         Consistently use MaxLength for all WTF strings
513         https://bugs.webkit.org/show_bug.cgi?id=192853
514         <rdar://problem/45726906>
515
516         Reviewed by Mark Lam.
517
518         MaxLength was introduced to be INT_MAX for WTF::String and StringImpl,
519         but all the assertions were still done using UINT_MAX. Change it to
520         use MaxLength for all checks.
521
522         * wtf/text/StringImpl.cpp:
523         (WTF::StringImpl::createUninitializedInternalNonEmpty):
524         (WTF::StringImpl::reallocateInternal):
525         (WTF::StringImpl::create):
526         (WTF::StringImpl::convertToLowercaseWithoutLocale):
527         (WTF::StringImpl::convertToUppercaseWithoutLocale):
528         (WTF::StringImpl::convertToLowercaseWithLocale):
529         (WTF::StringImpl::convertToUppercaseWithLocale):
530         (WTF::StringImpl::foldCase):
531         (WTF::StringImpl::find):
532         (WTF::StringImpl::replace):
533         (WTF::StringImpl::utf8ForCharacters):
534         (WTF::StringImpl::tryGetUtf8ForRange const):
535         * wtf/text/StringImpl.h:
536         (WTF::lengthOfNullTerminatedString):
537         (WTF::StringImpl::tryCreateUninitialized):
538         (WTF::StringImpl::adopt):
539         (WTF::StringImpl::maxInternalLength):
540         * wtf/text/WTFString.cpp:
541         (WTF::String::append):
542         (WTF::String::insert):
543         (WTF::String::fromUTF8):
544         * wtf/text/WTFString.h:
545         (WTF::String::reverseFind const):
546
547 2018-12-19  Chris Dumez  <cdumez@apple.com>
548
549         wtf/Optional.h: move-constructor and move-assignment operator should disengage the value being moved from
550         https://bugs.webkit.org/show_bug.cgi?id=192728
551         <rdar://problem/46746779>
552
553         Reviewed by Geoff Garen.
554
555         Update optional's move-constructor and move-assignment operator to disengage the value being moved from.
556         Rename to optional to Optional, make_optional() to makeOptional(), and move class from std to WTF namespace.
557
558         Based on patch by David Kilzer.
559
560         * wtf/*:
561
562 2018-12-19  Eric Carlson  <eric.carlson@apple.com>
563
564         [MediaStream] Force system camera/microphone TCC prompt if necessary
565         https://bugs.webkit.org/show_bug.cgi?id=192820
566         <rdar://problem/42680098>
567
568         Reviewed by Jer Noble.
569
570         * wtf/Platform.h: Define HAVE_AUTHORIZATION_STATUS_FOR_MEDIA_TYPE.
571
572 2018-12-17  Chris Fleizach  <cfleizach@apple.com>
573
574         Some builds are broken after r239262
575         https://bugs.webkit.org/show_bug.cgi?id=192777
576
577         Reviewed by Simon Fraser.
578
579         * wtf/Platform.h:
580
581 2018-12-17  Daniel Bates  <dabates@apple.com>
582
583         Support concatenating StringView with other string types
584         https://bugs.webkit.org/show_bug.cgi?id=177566
585
586         Reviewed by Darin Adler.
587
588         Add operator+ overloads to StringOperators.h to support concatenating a StringView with
589         other string types (e.g. String). This lets a person write more naturally looking code:
590
591         stringView + string
592
593         Instead of:
594
595         makeString(stringView, string)
596
597         * wtf/text/StringOperators.h:
598         (WTF::operator+): Added various operator+ overloads.
599
600 2018-12-17  Commit Queue  <commit-queue@webkit.org>
601
602         Unreviewed, rolling out r239265 and r239274.
603         https://bugs.webkit.org/show_bug.cgi?id=192765
604
605         unorm_normalize is deprecated, and broke an internal build
606         (Requested by Truitt on #webkit).
607
608         Reverted changesets:
609
610         "[GTK][WPE] Need a function to convert internal URI to display
611         ("pretty") URI"
612         https://bugs.webkit.org/show_bug.cgi?id=174816
613         https://trac.webkit.org/changeset/239265
614
615         "Fix the Apple Internal Mac build with a newer SDK"
616         https://trac.webkit.org/changeset/239274
617
618 2018-12-17  Daniel Bates  <dabates@apple.com>
619
620         Fix the Apple Internal Mac build with a newer SDK
621
622         * wtf/URLHelpers.cpp:
623         (WTF::URLHelpers::userVisibleURL):
624
625 2018-12-17  Matt Lewis  <jlewis3@apple.com>
626
627         Unreviewed, rolling out r239254.
628
629         This broke the Windows 10 Debug build
630
631         Reverted changeset:
632
633         "Replace many uses of String::format with more type-safe
634         alternatives"
635         https://bugs.webkit.org/show_bug.cgi?id=192742
636         https://trac.webkit.org/changeset/239254
637
638 2018-12-17  Ms2ger  <Ms2ger@igalia.com>
639
640         [GTK][WPE] Need a function to convert internal URI to display ("pretty") URI
641         https://bugs.webkit.org/show_bug.cgi?id=174816
642
643         Reviewed by Michael Catanzaro.
644
645         Translate userVisibleString and dependent code into platform-neutral C++
646         in wtf/URLHelpers.{h,cpp}.
647
648         * WTF.xcodeproj/project.pbxproj:
649         * wtf/CMakeLists.txt:
650         * wtf/URLHelpers.cpp: Added.
651         (WTF::URLHelpers::loadIDNScriptWhiteList):
652         (WTF::URLHelpers::isArmenianLookalikeCharacter):
653         (WTF::URLHelpers::isArmenianScriptCharacter):
654         (WTF::URLHelpers::isASCIIDigitOrValidHostCharacter):
655         (WTF::URLHelpers::isLookalikeCharacter):
656         (WTF::URLHelpers::whiteListIDNScript):
657         (WTF::URLHelpers::initializeDefaultIDNScriptWhiteList):
658         (WTF::URLHelpers::allCharactersInIDNScriptWhiteList):
659         (WTF::URLHelpers::isSecondLevelDomainNameAllowedByTLDRules):
660         (WTF::URLHelpers::isRussianDomainNameCharacter):
661         (WTF::URLHelpers::allCharactersAllowedByTLDRules):
662         (WTF::URLHelpers::mapHostName):
663         (WTF::URLHelpers::collectRangesThatNeedMapping):
664         (WTF::URLHelpers::applyHostNameFunctionToMailToURLString):
665         (WTF::URLHelpers::applyHostNameFunctionToURLString):
666         (WTF::URLHelpers::mapHostNames):
667         (WTF::URLHelpers::createStringWithEscapedUnsafeCharacters):
668         (WTF::URLHelpers::userVisibleURL):
669         * wtf/URLHelpers.h: Added.
670         * wtf/cocoa/NSURLExtras.mm:
671         (WTF::URLHelpers::loadIDNScriptWhiteList):
672         (WTF::decodePercentEscapes):
673         (WTF::decodeHostName):
674         (WTF::encodeHostName):
675         (WTF::URLWithUserTypedString):
676         (WTF::userVisibleString):
677
678 2018-12-15  Darin Adler  <darin@apple.com>
679
680         Use warning-ignoring macros more consistently and simply
681         https://bugs.webkit.org/show_bug.cgi?id=192743
682
683         Reviewed by Mark Lam.
684
685         * wtf/Assertions.h: Use IGNORE_WARNINGS_BEGIN rather than
686         IGNORE_CLANG_WARNINGS_BEGIN since we don't need special handling for
687         non-clang compilers, in part since the code is already inside
688         #if COMPILER(CLANG), but also because it would be harmless to ignore this
689         warning on non-clang; we should almost never use IGNORE_CLANG_WARNINGS_BEGIN.
690
691 2018-12-15  Darin Adler  <darin@apple.com>
692
693         Replace many uses of String::format with more type-safe alternatives
694         https://bugs.webkit.org/show_bug.cgi?id=192742
695
696         Reviewed by Mark Lam.
697
698         * wtf/WorkQueue.cpp:
699         (WTF::WorkQueue::concurrentApply): Use makeString.
700
701         * wtf/dtoa.cpp:
702         (WTF::dtoa): Use sprintf instead of String::format in the comments,
703         since these functions have nothing to do with WTF::String.
704
705 2018-12-14  Darin Adler  <darin@apple.com>
706
707         Verify size is valid in USE_SYSTEM_MALLOC version of tryAllocateZeroedVirtualPages
708         https://bugs.webkit.org/show_bug.cgi?id=192738
709         rdar://problem/37502342
710
711         Reviewed by Mark Lam.
712
713         * wtf/Gigacage.cpp:
714         (Gigacage::tryAllocateZeroedVirtualPages): Added a RELEASE_ASSERT just
715         like the one in tryLargeZeroedMemalignVirtual in bmalloc.
716
717 2018-12-14  David Kilzer  <ddkilzer@apple.com>
718
719         clang-tidy: Fix unnecessary copy of AtomicString each time one is logged
720         <https://webkit.org/b/192710>
721         <rdar://problem/46738962>
722
723         Reviewed by Eric Carlson.
724
725         * wtf/Logger.h:
726         (WTF::LogArgument::toString): Make argument a const reference to
727         avoid the copy.
728
729 2018-12-14  Zan Dobersek  <zdobersek@igalia.com>
730
731         [GLib] RunLoop::dispatchAfter() GSource requires microsecond precision
732         https://bugs.webkit.org/show_bug.cgi?id=192696
733
734         Reviewed by Michael Catanzaro.
735
736         The GSource we set up in GLib's RunLoop::dispatchAfter() implementation
737         should support microsecond-precision delays. Such delays are common in
738         JSC's Watchdog implementation and missing support for them has been
739         causing test failures in the `testapi` program as well as some JSC
740         tests that depend on the termination determination functionality of the
741         JSC::Watchdog class.
742
743         RunLoop::dispatchAfter() is changed to spawn a raw GSource that uses the
744         existing GSourceFuncs implementation used elsewhere in GLib's RunLoop.
745         The GSource's ready time is set manually, now with the necessary
746         microsecond precision.
747
748         * wtf/glib/RunLoopGLib.cpp:
749         (WTF::RunLoop::dispatchAfter):
750
751 2018-12-13  Saam Barati  <sbarati@apple.com>
752
753         The JSC shell should listen for memory pressure events and respond to them
754         https://bugs.webkit.org/show_bug.cgi?id=192647
755
756         Reviewed by Keith Miller.
757
758         * wtf/MemoryPressureHandler.cpp:
759         (WTF::MemoryPressureHandler::MemoryPressureHandler):
760         (WTF::MemoryPressureHandler::setDispatchQueue):
761         Make it so that we can customize which dispatch queue memory pressure
762         events get handled on.
763
764         * wtf/MemoryPressureHandler.h:
765         (WTF::MemoryPressureHandler::setShouldLogMemoryMemoryPressureEvents):
766         Make it so that we can disable logging that happens on each memory
767         pressure event.
768
769         * wtf/cocoa/MemoryPressureHandlerCocoa.mm:
770         (WTF::MemoryPressureHandler::install):
771         (WTF::MemoryPressureHandler::uninstall):
772         (WTF::MemoryPressureHandler::holdOff):
773
774 2018-12-13  David Kilzer  <ddkilzer@apple.com>
775
776         clang-tidy: Fix unnecessary parameter copies in ParallelHelperPool.cpp
777         <https://webkit.org/b/192666>
778         <rdar://problem/46697952>
779
780         Reviewed by Alex Christensen.
781
782         * wtf/ParallelHelperPool.cpp:
783         (WTF::ParallelHelperClient::ParallelHelperClient): Use rvalue
784         reference and WTFMove().
785         (WTF::ParallelHelperClient::setTask): Ditto.
786         (WTF::ParallelHelperClient::runTaskInParallel): Ditto.
787         (WTF::ParallelHelperClient::runTask): Use const reference.
788         * wtf/ParallelHelperPool.h: Update declarations to match
789         implementations.
790
791 2018-12-12  Alex Christensen  <achristensen@webkit.org>
792
793         Implement safe browsing in WebKit on WatchOS
794         https://bugs.webkit.org/show_bug.cgi?id=192641
795         <rdar://problem/46376188>
796
797         Reviewed by Geoff Garen.
798
799         * wtf/Platform.h:
800         WatchOS has safe browsing, too!
801
802 2018-12-11  Fujii Hironori  <Hironori.Fujii@sony.com>
803
804         [Win][Clang] Fix compilation warnings of WTF
805         https://bugs.webkit.org/show_bug.cgi?id=192583
806
807         Reviewed by Alex Christensen.
808
809         clang-cl reports the following warnings.
810
811         > [92/206] Building CXX object Source\WTF\wtf\CMakeFiles\WTF.dir\StackBounds.cpp.obj
812         > ..\..\Source\WTF\wtf\StackBounds.cpp(163,48):  warning: missing field 'AllocationBase' initializer [-Wmissing-field-initializers]
813         >     MEMORY_BASIC_INFORMATION stackOrigin = { 0 };
814         >                                                ^
815         > 1 warning generated.
816         > [160/206] Building CXX object Source\WTF\wtf\CMakeFiles\WTF.dir\win\RunLoopWin.cpp.obj
817         > ..\..\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]
818         > static const LPWSTR kRunLoopMessageWindowClassName = L"RunLoopMessageWindow";
819         >                                                      ^
820         > ..\..\Source\WTF\wtf\win\RunLoopWin.cpp(86,32):  warning: missing field 'lpfnWndProc' initializer [-Wmissing-field-initializers]
821         >     WNDCLASS windowClass = { 0 };
822         >                                ^
823         > 2 warnings generated.
824         > [175/206] Building CXX object Source\WTF\wtf\CMakeFiles\WTF.dir\DateMath.cpp.obj
825         > ..\..\Source\WTF\wtf\DateMath.cpp(125,20):  warning: unused function 'getLocalTime' [-Wunused-function]
826         > static inline void getLocalTime(const time_t* localTime, struct tm* localTM)
827         >                    ^
828         > 1 warning generated.
829
830         * wtf/DateMath.cpp:
831         (WTF::getLocalTime): Defined only if used.
832         * wtf/StackBounds.cpp:
833         (WTF::StackBounds::currentThreadStackBoundsInternal): Initialize stackOrigin with '{ }'.
834         * wtf/win/RunLoopWin.cpp: Change the type of kRunLoopMessageWindowClassName to LPCWSTR.
835         (WTF::RunLoop::registerRunLoopMessageWindowClass): Initialize windowClass with '{ }'.
836
837 2018-12-11  Andy Estes  <aestes@apple.com>
838
839         Introduce makeBlockPtr for lambdas
840         https://bugs.webkit.org/show_bug.cgi?id=192594
841
842         Reviewed by Alex Christensen.
843
844         BlockPtr<...>::fromCallable is cumbersome because it requires repeating the callable's
845         signature as a class template argument. This patch introduces an overload of makeBlockPtr
846         that deduces the correct BlockPtr instantiation from a lambda's operator() signature.
847
848         * wtf/BlockPtr.h:
849         (WTF::makeBlockPtr):
850
851         Adopted makeBlockPtr.
852
853         * wtf/cocoa/WorkQueueCocoa.cpp:
854         (WTF::WorkQueue::dispatch):
855         (WTF::WorkQueue::dispatchAfter):
856         (WTF::WorkQueue::concurrentApply):
857
858 2018-12-10  Don Olmstead  <don.olmstead@sony.com>
859
860         Move ENABLE_RESOURCE_LOAD_STATISTICS to FeatureDefines.xcconfig
861         https://bugs.webkit.org/show_bug.cgi?id=192573
862
863         Reviewed by Simon Fraser.
864
865         Remove ENABLE_RESOURCE_LOAD_STATISTICS from Platform.h and instead rely
866         on it being set in FeatureDefines.xcconfig.
867
868         * wtf/Platform.h:
869
870 2018-12-10  Alexey Proskuryakov  <ap@apple.com>
871
872         Move ENABLE_SEC_ITEM_SHIM out of WebKit's config.h
873         https://bugs.webkit.org/show_bug.cgi?id=192428
874
875         Reviewed by Tim Horton.
876
877         * wtf/Platform.h:
878
879 2018-12-10  Alexey Proskuryakov  <ap@apple.com>
880
881         Move more macros out of WebKit's config.h
882         https://bugs.webkit.org/show_bug.cgi?id=192430
883
884         Reviewed by Tim Horton.
885
886         * wtf/Platform.h:
887
888 2018-12-09  Yusuke Suzuki  <yusukesuzuki@slowstart.org>
889
890         Unreviewed, fix build failure on GCC 8.2, part 2
891
892         Add RefCountedArray::assign, and use it instead of operator= internally.
893         We should have operator=(const RefCountedArray&) since it will be automatically generated
894         if we do not have correct implementation here.
895
896         * wtf/RefCountedArray.h:
897         (WTF::RefCountedArray::operator=):
898         (WTF::RefCountedArray::assign):
899
900 2018-12-09  Yusuke Suzuki  <yusukesuzuki@slowstart.org>
901
902         Unreviewed, fix build failure on GCC 8.2
903
904         We remove operator=<PtrTraits> call since it is not necessary.
905         This is a workaround. It seems that GCC 8.2 fails to parse this specialization.
906
907         * wtf/RefCountedArray.h:
908
909 2018-12-08  Darin Adler  <darin@apple.com>
910
911         Fix stray-semicolon warning seen with a new version of clang in Xcode
912         https://bugs.webkit.org/show_bug.cgi?id=192534
913
914         Reviewed by Alexey Proskuryakov.
915
916         * wtf/Lock.h: Removed an unneeded semicolon.
917
918 2018-12-08  Adrian Perez de Castro  <aperez@igalia.com>
919
920         [WTF] Debug build fails due conflicting abort() method
921         https://bugs.webkit.org/show_bug.cgi?id=192491
922
923         Reviewed by Michael Catanzaro.
924
925         * wtf/Assertions.h: Use namespaced std::abort() insted of plain abort() to avoid clashes
926         inside classes which have an ::abort() method, but only when __cplusplus is defined to
927         allow inclusion of the header in plain C sources.
928
929 2018-12-07  Andy Estes  <aestes@apple.com>
930
931         [Cocoa] Add optional variants of SOFT_LINK_CLASS_FOR_SOURCE
932         https://bugs.webkit.org/show_bug.cgi?id=192498
933
934         Reviewed by Tim Horton.
935
936         Added SOFT_LINK_CLASS_FOR_SOURCE_OPTIONAL and SOFT_LINK_CLASS_FOR_SOURCE_OPTIONAL_WITH_EXPORT,
937         which behave like their non-optional variants but do not require their classes to exist.
938
939         * wtf/cocoa/SoftLinking.h:
940
941 2018-12-06  Alexey Proskuryakov  <ap@apple.com>
942
943         Move USE_NEW_THEME out of WebCore's config.h
944         https://bugs.webkit.org/show_bug.cgi?id=192426
945
946         Reviewed by Tim Horton.
947
948         * wtf/Platform.h:
949
950 2018-12-04  Carlos Garcia Campos  <cgarcia@igalia.com>
951
952         [SOUP] Move URLSoup back to WebCore after r238771
953         https://bugs.webkit.org/show_bug.cgi?id=192306
954
955         Reviewed by Michael Catanzaro.
956
957         In r238771 URL was moved from WebCore to WTF, including the soup implementation. Unfortunately that added
958         libsoup as a new dependency of libjavascriptcoregtk.
959
960         * wtf/PlatformGTK.cmake:
961         * wtf/PlatformWPE.cmake:
962         * wtf/URL.h:
963         * wtf/glib/URLGLib.cpp: Copied from Source/WTF/wtf/glib/URLSoup.cpp.
964
965 2018-12-03  Don Olmstead  <don.olmstead@sony.com>
966
967         Fix some unused parameter warnings
968         https://bugs.webkit.org/show_bug.cgi?id=192336
969
970         Reviewed by Fujii Hironori.
971
972         * wtf/StackTrace.cpp:
973         (WTFGetBacktrace):
974         (WTF::StackTrace::demangle):
975         * wtf/generic/MemoryPressureHandlerGeneric.cpp:
976         (WTF::MemoryPressureHandler::holdOff):
977         (WTF::MemoryPressureHandler::respondToMemoryPressure):
978
979 2018-12-01  Alexey Proskuryakov  <ap@apple.com>
980
981         Modernize version check for _suppressedAutoAddedHTTPHeaders
982         https://bugs.webkit.org/show_bug.cgi?id=192175
983
984         Reviewed by Tim Horton.
985
986         * wtf/Platform.h:
987
988 2018-11-30  Alex Christensen  <achristensen@webkit.org>
989
990         Fix Windows build after r238771
991         https://bugs.webkit.org/show_bug.cgi?id=190234
992
993         * wtf/URLParser.h:
994         Just make defaultPortForProtocol public so we don't have to worry about DLL linkage.
995
996 2018-11-30  Alex Christensen  <achristensen@webkit.org>
997
998         Move URL from WebCore to WTF
999         https://bugs.webkit.org/show_bug.cgi?id=190234
1000
1001         Reviewed by Keith Miller.
1002
1003         * WTF.xcodeproj/project.pbxproj:
1004         * wtf/CMakeLists.txt:
1005         * wtf/Forward.h:
1006         * wtf/PlatformGTK.cmake:
1007         * wtf/PlatformMac.cmake:
1008         * wtf/PlatformWPE.cmake:
1009         * wtf/PlatformWin.cmake:
1010         * wtf/URL.cpp: Renamed from Source/WebCore/platform/URL.cpp.
1011         (WTF::URL::protocolIs):
1012         * wtf/URL.h: Renamed from Source/WebCore/platform/URL.h.
1013         * wtf/URLHash.h: Renamed from Source/WebCore/platform/URLHash.h.
1014         (WTF::URLHash::hash):
1015         (WTF::URLHash::equal):
1016         * wtf/URLParser.cpp: Renamed from Source/WebCore/platform/URLParser.cpp.
1017         (WTF::URLParser::isInUserInfoEncodeSet):
1018         (WTF::URLParser::parseAuthority):
1019         * wtf/URLParser.h: Renamed from Source/WebCore/platform/URLParser.h.
1020         (WTF::URLParser::URLParser):
1021         (WTF::URLParser::result):
1022         * wtf/cf/CFURLExtras.cpp: Renamed from Source/WebCore/platform/cf/CFURLExtras.cpp.
1023         * wtf/cf/CFURLExtras.h: Renamed from Source/WebCore/platform/cf/CFURLExtras.h.
1024         * wtf/cf/URLCF.cpp: Renamed from Source/WebCore/platform/cf/URLCF.cpp.
1025         * wtf/cocoa/NSURLExtras.h: Copied from Source/WebCore/loader/archive/ArchiveResourceCollection.h.
1026         * wtf/cocoa/NSURLExtras.mm: Copied from Source/WebCore/platform/mac/WebCoreNSURLExtras.mm.
1027         (WTF::isArmenianLookalikeCharacter):
1028         (WTF::isArmenianScriptCharacter):
1029         (WTF::isASCIIDigitOrValidHostCharacter):
1030         (WTF::isLookalikeCharacter):
1031         (WTF::whiteListIDNScript):
1032         (WTF::readIDNScriptWhiteListFile):
1033         (WTF::allCharactersInIDNScriptWhiteList):
1034         (WTF::isSecondLevelDomainNameAllowedByTLDRules):
1035         (WTF::isRussianDomainNameCharacter):
1036         (WTF::allCharactersAllowedByTLDRules):
1037         (WTF::mapHostNameWithRange):
1038         (WTF::hostNameNeedsDecodingWithRange):
1039         (WTF::hostNameNeedsEncodingWithRange):
1040         (WTF::decodeHostNameWithRange):
1041         (WTF::encodeHostNameWithRange):
1042         (WTF::decodeHostName):
1043         (WTF::encodeHostName):
1044         (WTF::collectRangesThatNeedMapping):
1045         (WTF::collectRangesThatNeedEncoding):
1046         (WTF::collectRangesThatNeedDecoding):
1047         (WTF::applyHostNameFunctionToMailToURLString):
1048         (WTF::applyHostNameFunctionToURLString):
1049         (WTF::mapHostNames):
1050         (WTF::stringByTrimmingWhitespace):
1051         (WTF::URLByTruncatingOneCharacterBeforeComponent):
1052         (WTF::URLByRemovingResourceSpecifier):
1053         (WTF::URLWithData):
1054         (WTF::dataWithUserTypedString):
1055         (WTF::URLWithUserTypedString):
1056         (WTF::URLWithUserTypedStringDeprecated):
1057         (WTF::hasQuestionMarkOnlyQueryString):
1058         (WTF::dataForURLComponentType):
1059         (WTF::URLByRemovingComponentAndSubsequentCharacter):
1060         (WTF::URLByRemovingUserInfo):
1061         (WTF::originalURLData):
1062         (WTF::createStringWithEscapedUnsafeCharacters):
1063         (WTF::userVisibleString):
1064         (WTF::isUserVisibleURL):
1065         (WTF::rangeOfURLScheme):
1066         (WTF::looksLikeAbsoluteURL):
1067         * wtf/cocoa/URLCocoa.mm: Renamed from Source/WebCore/platform/mac/URLMac.mm.
1068         (WTF::URL::URL):
1069         (WTF::URL::createCFURL const):
1070         * wtf/glib/GUniquePtrSoup.h: Renamed from Source/WebCore/platform/network/soup/GUniquePtrSoup.h.
1071         * wtf/glib/URLSoup.cpp: Renamed from Source/WebCore/platform/soup/URLSoup.cpp.
1072
1073 2018-11-30  Alexey Proskuryakov  <ap@apple.com>
1074
1075         Move USE_CFNETWORK_IGNORE_HSTS to its proper place
1076         https://bugs.webkit.org/show_bug.cgi?id=192173
1077
1078         Reviewed by Tim Horton.
1079
1080         * wtf/Platform.h: Also renamed it to better match other version checks.
1081
1082 2018-11-29  Alexey Proskuryakov  <ap@apple.com>
1083
1084         Modernize the check for kCFURLRequestContentDecoderSkipURLCheck existence
1085         https://bugs.webkit.org/show_bug.cgi?id=192041
1086
1087         Reviewed by Tim Horton.
1088
1089         * wtf/Platform.h:
1090
1091 2018-11-28  Mark Lam  <mark.lam@apple.com>
1092
1093         ENABLE_SEPARATED_WX_HEAP needs to be defined in Platform.h.
1094         https://bugs.webkit.org/show_bug.cgi?id=192110
1095         <rdar://problem/46317746>
1096
1097         Reviewed by Saam Barati.
1098
1099         Contrary my previous claim in r238564, ENABLE_SEPARATED_WX_HEAP needs to be
1100         defined in Platform.h because it is also needed in WebCore for the CSS JIT.  Also
1101         contrary to my previous claim, ENABLE(FAST_JIT_PERMISSIONS) is defined for WebCore
1102         (and other projects) as well as JSC.  Hence, there's no reason why
1103         ENABLE_SEPARATED_WX_HEAP cannot be defined in Platform.h.
1104
1105         * wtf/Platform.h:
1106
1107 2018-11-28  Keith Rollin  <krollin@apple.com>
1108
1109         Update generate-unified-source-bundles.rb to generate .xcfilelist files
1110         https://bugs.webkit.org/show_bug.cgi?id=192029
1111         <rdar://problem/46285918>
1112
1113         Reviewed by Alex Christensen.
1114
1115         Update generate-unified-source-bundles.rb to generate output for
1116         .xcfilelist files. These files are used to indicate the sets of input
1117         and output files to Run Script build phases in Xcode. By invoking
1118         generate-unified-source-bundles.rb with -generate-xcfilelists, the
1119         script generates these .xcfilelist files. These .xcfilelist files can
1120         then be used to specify the inputs and outputs of the Generate Unified
1121         Sources build phases.
1122
1123         * Scripts/generate-unified-source-bundles.rb:
1124
1125 2018-11-28  Alexey Proskuryakov  <ap@apple.com>
1126
1127         Remove another OS version check from NetworkDataTaskCocoa.mm
1128         https://bugs.webkit.org/show_bug.cgi?id=192046
1129
1130         Reviewed by Alex Christensen.
1131
1132         * wtf/Platform.h:
1133
1134 2018-11-28  Alexey Proskuryakov  <ap@apple.com>
1135
1136         Modernize version checks for same site cookie support
1137         https://bugs.webkit.org/show_bug.cgi?id=192054
1138
1139         Reviewed by Tim Horton.
1140
1141         * wtf/Platform.h:
1142
1143 2018-11-27  Alexey Proskuryakov  <ap@apple.com>
1144
1145         Modernize the check for async _saveCookies existence
1146         https://bugs.webkit.org/show_bug.cgi?id=191987
1147
1148         Reviewed by Dean Jackson.
1149
1150         * wtf/Platform.h: Added a specific macro for this. Not changing the behavior here,
1151         although it seems very likely that we want to do the same on other iOS family OSes.
1152
1153 2018-11-26  Fujii Hironori  <Hironori.Fujii@sony.com>
1154
1155         [Win][Clang] SOFT_LINK reports warning: implicit conversion between pointer-to-function and pointer-to-object is a Microsoft extension [-Wmicrosoft-cast]
1156         https://bugs.webkit.org/show_bug.cgi?id=191960
1157
1158         Reviewed by Alex Christensen.
1159
1160         * wtf/win/SoftLinking.h: Do reinterpret_cast<void*> a function
1161         pointer argument of EncodePointer. Changed the type of stored
1162         function pointer returned by EncodePointer.
1163
1164 2018-11-26  Sam Weinig  <sam@webkit.org>
1165
1166         Streamline ListHashSet use in floating object code
1167         https://bugs.webkit.org/show_bug.cgi?id=191957
1168
1169         Reviewed by Alex Christensen.
1170
1171         * wtf/ListHashSet.h:
1172         Reverses the order of the template arguments for the find() and contains()
1173         overload that allow specifying a hash translator to allow the compiler to
1174         deduce type T. This simplifies call sites and matches other WTF containers.
1175
1176 2018-11-25  Michael Catanzaro  <mcatanzaro@igalia.com>
1177
1178         CRASH() should call abort() except on Darwin and in developer builds
1179         https://bugs.webkit.org/show_bug.cgi?id=184408
1180
1181         Reviewed by Daniel Bates.
1182
1183         CRASH() should call abort() except on Darwin and in developer builds, as discussed on
1184         webkit-dev. This should be slightly nicer than dereferencing 0xbadbeef.
1185
1186         On Darwin, CRASH() uses a breakpoint trap, which seems to corrupt the stack on Linux, so we
1187         can't do that.
1188
1189         Continue to call WTFCrash() in developer mode, and make no changes to WTFCrash(), since it
1190         is reportedly useful in nightmare scenarios where core dumps are unavailable.
1191
1192         We also have to define CRASH_UNDER_CONSTEXPR_CONTEXT(). It's a bit odd that it's possible to
1193         use a non-constexpr function here, but it works. Currently this macro uses WTFCrash(), which
1194         is also non-constexpr.
1195
1196         * wtf/Assertions.h:
1197
1198 2018-11-25  Michael Catanzaro  <mcatanzaro@igalia.com>
1199
1200         Unreviewed, rolling out r238469.
1201
1202         Broke the build
1203
1204         Reverted changeset:
1205
1206         "CRASH() should call abort() except on Darwin and in developer
1207         builds"
1208         https://bugs.webkit.org/show_bug.cgi?id=184408
1209         https://trac.webkit.org/changeset/238469
1210
1211 2018-11-24  Andy Estes  <aestes@apple.com>
1212
1213         [Cocoa] SOFT_LINK_CLASS_FOR_{HEADER,SOURCE} should generate a more concise getter function
1214         https://bugs.webkit.org/show_bug.cgi?id=191899
1215
1216         Reviewed by Dean Jackson.
1217
1218         Currently, SOFT_LINK_CLASS_FOR_HEADER declares a class getter function that includes the
1219         framework name. For example, NSView would have a class getter named
1220         namespace::get_AppKit_NSViewClass().
1221
1222         Including the framework name in the getter is unnecessary. Objective-C classes already exist
1223         in a global namespace, so there is no need to disambiguate class names by framework. This
1224         patch elides the framework name from the getter function. For example, NSView would now have
1225         a getter named namespace::getNSViewClass().
1226
1227         * wtf/cocoa/SoftLinking.h:
1228
1229 2018-11-24  Michael Catanzaro  <mcatanzaro@igalia.com>
1230
1231         CRASH() should call abort() except on Darwin and in developer builds
1232         https://bugs.webkit.org/show_bug.cgi?id=184408
1233
1234         Reviewed by Daniel Bates.
1235
1236         CRASH() should call abort() except on Darwin and in developer builds, as discussed on
1237         webkit-dev. This should be slightly nicer than dereferencing 0xbadbeef.
1238
1239         On Darwin, CRASH() uses a breakpoint trap, which seems to corrupt the stack on Linux, so we
1240         can't do that.
1241
1242         Continue to call WTFCrash() in developer mode, and make no changes to WTFCrash(), since it
1243         is reportedly useful in nightmare scenarios where core dumps are unavailable.
1244
1245         * wtf/Assertions.h:
1246
1247 2018-11-23  Sam Weinig  <sam@webkit.org>
1248
1249         Add raw pointer overloads to ListHashSet via SmartPtr specialized functions
1250         https://bugs.webkit.org/show_bug.cgi?id=191936
1251
1252         Reviewed by Zalan Bujtas.
1253
1254         Adds overloads for find, contains, insertBefore and remove that take raw pointers
1255         when the value type V of a ListHashSet is true for the predicate IsSmartPtr<V>::value.
1256         This brings the interface to ListHashSet closer inline with HashSet, HashMap and HashCountedSet
1257         which already have this functionality. Like in the other collections, this is especially
1258         useful when using std::unique_ptr<> as the value, since there would be no way to pass it
1259         to these functions. One difference between this set of overloads is the inclusion of insertBefore,
1260         which is unique to ListHashSet. As would be expected, this specialization only changes the first
1261         parameter, the one that needs to be found, to support a raw pointer.  
1262
1263         * wtf/ListHashSet.h:
1264         (WTF::U>::find):
1265         (WTF::U>::find const):
1266         (WTF::U>::contains const):
1267         (WTF::U>::insertBefore):
1268         (WTF::U>::remove):
1269
1270 2018-11-21  Yusuke Suzuki  <yusukesuzuki@slowstart.org>
1271
1272         [JSC] Drop ARM_TRADITIONAL support in LLInt, baseline JIT, and DFG
1273         https://bugs.webkit.org/show_bug.cgi?id=191675
1274
1275         Reviewed by Mark Lam.
1276
1277         * wtf/InlineASM.h:
1278         * wtf/Platform.h:
1279
1280 2018-11-21  Andy Estes  <aestes@apple.com>
1281
1282         [Cocoa] Create a soft-linking file for PassKit
1283         https://bugs.webkit.org/show_bug.cgi?id=191875
1284         <rdar://problem/46203215>
1285
1286         Reviewed by Myles Maxfield.
1287
1288         * wtf/Platform.h: Defined USE_PASSKIT.
1289         * wtf/cocoa/SoftLinking.h: Added _WITH_EXPORT variants of SOFT_LINK_FRAMEWORK_FOR_SOURCE,
1290         SOFT_LINK_PRIVATE_FRAMEWORK_FOR_SOURCE, SOFT_LINK_CLASS_FOR_SOURCE,
1291         SOFT_LINK_FUNCTION_FOR_SOURCE, and SOFT_LINK_CONSTANT_FOR_SOURCE.
1292
1293 2018-11-21  Dominik Infuehr  <dinfuehr@igalia.com>
1294
1295         Enable JIT on ARM/Linux
1296         https://bugs.webkit.org/show_bug.cgi?id=191548
1297
1298         Reviewed by Yusuke Suzuki.
1299
1300         Enable JIT by default on ARMv7/Linux after it was disabled with
1301         recent bytcode format change.
1302
1303         * wtf/Platform.h:
1304
1305 2018-11-14  Keith Rollin  <krollin@apple.com>
1306
1307         Fix #end vs. #endif typo.
1308         https://bugs.webkit.org/show_bug.cgi?id=191668
1309         <rdar://problem/46081704>
1310
1311         Reviewed by Alexey Proskuryakov.
1312
1313         Source/WebCore/SourcesCocoa.txt had a #end that should have been a
1314         #endif. Fix this, an add a check to generate-unified-source-bundles.rb
1315         to detect similar typos.
1316
1317         * Scripts/generate-unified-source-bundles.rb:
1318
1319 2018-11-12  Mark Lam  <mark.lam@apple.com>
1320
1321         Add OOM detection to StringPrototype's substituteBackreferences().
1322         https://bugs.webkit.org/show_bug.cgi?id=191563
1323         <rdar://problem/45720428>
1324
1325         Reviewed by Saam Barati.
1326
1327         Enhanced StringBuilder::toString() to skip the shrinkToFit(), reifyString(), and
1328         the hasOverflowed() check if m_string is not null.  When m_string is not null,
1329         the StringBuilder either only has a single String in m_string (with m_buffer being 
1330         null), or reifyString() has already been called (resulting in a non-null m_string
1331         with a possibly non-null m_buffer).
1332
1333         We can skip the overflow check because:
1334         1. if the StringBuilder only has a single String, then there cannot be an overflow.
1335         2. if reifyString() has already been called, then the hasOverflowed() checked has
1336            already been done because every code path that calls reifyString() first does
1337            the hasOverflowed() check.
1338
1339         We can skip shrinkToFit() because it only applies to m_buffer.
1340         1. if the StringBuilder only has a single String, then there's no m_buffer to shrink.
1341         2. if reifyString() has already been called, then we either came down
1342            a. the toString() path with a null m_string previously, where we would have
1343               already called shrinkToFit() before reifyString(), or
1344            b. the toStringPreserveCapacity() path where we don't want to shrinkToFit().
1345
1346         We can skip reifyString() because:
1347         1. if the StringBuilder only has a single String, then the string is already reified.
1348         2. if reifyString() has been already called, then the string is already reified.
1349
1350         Note that if m_string is the null string and m_buffer is null, reifyString() will
1351         replace it with the empty string.  For this reason, we cannot solely check for
1352         !m_buffer because we need to reify the null string into the empty string.
1353
1354         Note also that if m_string is null and m_buffer is non-null, reifyString() will
1355         create a String and set m_string to it.  However, m_buffer remains non-null.
1356         For this reason, we cannot assert !m_buffer alone when m_string is non-null.
1357         We add a m_isReified flag (only when assertions are enabled) to track the reified
1358         case where both m_buffer and m_string are non-null.
1359
1360         * wtf/text/StringBuilder.cpp:
1361         (WTF::StringBuilder::reifyString const):
1362         * wtf/text/StringBuilder.h:
1363         (WTF::StringBuilder::toString):
1364
1365 2018-11-10  Benjamin Poulain  <benjamin@webkit.org>
1366
1367         Fix a fixme: rename wtfObjcMsgSend to wtfObjCMsgSend
1368         https://bugs.webkit.org/show_bug.cgi?id=191492
1369
1370         Reviewed by Alex Christensen.
1371
1372         Because renaming ObjcRuntimeExtras.h to ObjCRuntimeExtras.h only changes
1373         the cases, some systems have issues with applying this patch.
1374
1375         To work around the problem, the change is made is two patches, first rename to
1376         WTFObjCRuntimeExtras.h, then back to ObjCRuntimeExtras.h.
1377
1378         * WTF.xcodeproj/project.pbxproj:
1379         * wtf/CMakeLists.txt:
1380         * wtf/WTFObjCRuntimeExtras.h: Renamed from Source/WTF/wtf/ObjcRuntimeExtras.h.
1381         (wtfObjCMsgSend):
1382
1383 2018-11-09  Keith Miller  <keith_miller@apple.com>
1384
1385         LLInt VectorSizeOffset should be based on offset extraction
1386         https://bugs.webkit.org/show_bug.cgi?id=191468
1387
1388         Reviewed by Yusuke Suzuki.
1389
1390         Make things friends with LLIntOffsetsExtractor.
1391
1392         * wtf/RefCountedArray.h:
1393         * wtf/Vector.h:
1394
1395 2018-11-09  Jim Mason  <jmason@ibinx.com>
1396
1397         [WTF] Changes in bug 188867 break non-Linux Unix builds
1398         https://bugs.webkit.org/show_bug.cgi?id=191380
1399
1400         The intention of 188867 was to split out platform-specific
1401         heap query/release code.  Any unsupported platform
1402         would use a generic, no-op stub.  However, wtf/PlatformGTK.cmake
1403         ended up sending all non-Linux platforms through the Linux
1404         implementation, which breaks the build for those platforms.
1405         This includes any user of the GTK target which is not Linux,
1406         such as the *BSDs, Solaris, etc.
1407
1408         Reviewed by Yusuke Suzuki.
1409
1410         * wtf/PlatformGTK.cmake: Updated to include Linux-specific
1411         code only for Linux; all other platforms use the generic stub.
1412
1413 2018-11-06  Geoffrey Garen  <ggaren@apple.com>
1414
1415         Removed mbmalloc target from WTF
1416         https://bugs.webkit.org/show_bug.cgi?id=191313
1417
1418         Reviewed by Saam Barati.
1419
1420         For benchmarking, WTF::fastMalloc is no longer meaningfully different
1421         from bmalloc. (And bmalloc has its own mbmalloc target.)
1422
1423         * Configurations/mbmalloc.xcconfig: Removed.
1424         * WTF.xcodeproj/project.pbxproj:
1425         * wtf/mbmalloc.cpp: Removed.
1426
1427 2018-11-08  Alexey Proskuryakov  <ap@apple.com>
1428
1429         Re-add PLATFORM(IOS), now with the strict meaning
1430         https://bugs.webkit.org/show_bug.cgi?id=191281
1431
1432         Reviewed by Tim Horton.
1433
1434         * wtf/Platform.h: No change in behavior. Some of the macros look a bit weird
1435         when expanded, it might be that the values are incorrect for some flavors of iOS family.
1436
1437 2018-11-08  Dean Jackson  <dino@apple.com>
1438
1439         Add a String literal that returns a String
1440         https://bugs.webkit.org/show_bug.cgi?id=191425
1441         <rdar://problem/45914556>
1442
1443         Reviewed by Sam Weinig.
1444
1445         Add a new String literal, _str, that will return a String type.
1446         This is useful when ""_s won't work, such as for things that
1447         don't take an ASCIILiteral directly e.g. ExceptionOr<String>
1448         or Variants.
1449
1450         * wtf/text/WTFString.h:
1451         (WTF::StringLiterals::operator _str): Added.
1452
1453 2018-11-06  Justin Fan  <justin_fan@apple.com>
1454
1455         [WebGPU] Experimental prototype for WebGPURenderPipeline and WebGPUSwapChain
1456         https://bugs.webkit.org/show_bug.cgi?id=191291
1457
1458         Reviewed by Myles Maxfield.
1459
1460         Properly disable WEBGPU on all non-Metal platforms for now.
1461
1462         * wtf/Platform.h:
1463
1464 2018-11-05  Myles C. Maxfield  <mmaxfield@apple.com>
1465
1466         Cache glyph paths and share underline skipping code between all the ports
1467         https://bugs.webkit.org/show_bug.cgi?id=191239
1468
1469         Reviewed by Alex Christensen.
1470
1471         Remove CSS3_TEXT_DECORATION_SKIP_INK. It's now interoperable and part of the Web Platform.
1472
1473         * wtf/Platform.h:
1474
1475 2018-11-05  Dominik Infuehr  <dinfuehr@igalia.com>
1476
1477         Enable LLInt on ARMv7/Linux
1478         https://bugs.webkit.org/show_bug.cgi?id=191190
1479
1480         Reviewed by Yusuke Suzuki.
1481
1482         After enabling the new bytecode format in r237547, C_LOOP was
1483         forced on all 32-bit platforms. Now enable LLInt again on
1484         ARMv7-Thumb2/Linux by default.
1485
1486         * wtf/Platform.h:
1487
1488 2018-11-04  Fujii Hironori  <Hironori.Fujii@sony.com>
1489
1490         [Win] Use C++14, not C++17
1491         https://bugs.webkit.org/show_bug.cgi?id=191101
1492
1493         Reviewed by Alex Christensen.
1494
1495         * wtf/StdLibExtras.h: Use _MSVC_LANG to check C++ language version
1496         instead of _MSC_FULL_VER.
1497
1498 2018-11-02  Justin Fan  <justin_fan@apple.com>
1499
1500         [WebGPU] Experimental prototype for MSL shaders
1501         https://bugs.webkit.org/show_bug.cgi?id=191084
1502
1503         Reviewed by Dean Jackson.
1504
1505         Disabling WebGPU on non-Cocoa platforms and iOS Simulator.
1506
1507         * wtf/Platform.h:
1508
1509 2018-11-01  Jiewen Tan  <jiewen_tan@apple.com>
1510
1511         Replace CommonRandom SPI with API
1512         https://bugs.webkit.org/show_bug.cgi?id=191178
1513         <rdar://problem/45722391>
1514
1515         Reviewed by Brent Fulgham.
1516
1517         * WTF.xcodeproj/project.pbxproj:
1518         * wtf/CMakeLists.txt:
1519         * wtf/RandomDevice.cpp:
1520         (WTF::RandomDevice::cryptographicallyRandomValues):
1521         * wtf/spi/darwin/CommonCryptoSPI.h: Removed.
1522
1523 2018-11-01  Fujii Hironori  <Hironori.Fujii@sony.com>
1524
1525         Rename <wtf/unicode/UTF8.h> to <wtf/unicode/UTF8Conversion.h> in order to avoid conflicting with ICU's unicode/utf8.h
1526         https://bugs.webkit.org/show_bug.cgi?id=189693
1527
1528         Reviewed by Yusuke Suzuki.
1529
1530         * WTF.xcodeproj/project.pbxproj: Replaced unicode/UTF8.{cpp,h} with unicode/UTF8Conversion.{cpp,h}.
1531         * wtf/CMakeLists.txt: Ditto.
1532         * wtf/text/AtomicStringImpl.cpp: Replaced <wtf/unicode/UTF8.h> with <wtf/unicode/UTF8Conversion.h>.
1533         * wtf/text/StringImpl.cpp: Ditto.
1534         * wtf/text/StringView.cpp: Ditto.
1535         * wtf/text/WTFString.cpp: Ditto.
1536         * wtf/unicode/UTF8Conversion.cpp: Renamed from Source/WTF/wtf/unicode/UTF8.cpp.
1537         * wtf/unicode/UTF8Conversion.h: Renamed from Source/WTF/wtf/unicode/UTF8.h.
1538
1539 2018-10-30  Don Olmstead  <don.olmstead@sony.com>
1540
1541         [PlayStation] Enable JavaScriptCore
1542         https://bugs.webkit.org/show_bug.cgi?id=191072
1543
1544         Reviewed by Brent Fulgham.
1545
1546         Add platform files for the PlayStation port.
1547
1548         * wtf/PlatformPlayStation.cmake: Added.
1549
1550 2018-10-30  David Kilzer  <ddkilzer@apple.com>
1551
1552         XSLTProcessor should limit max transform depth
1553         <https://webkit.org/b/191075>
1554         <rdar://problem/45531453>
1555
1556         Reviewed by Alex Christensen.
1557
1558         * wtf/cocoa/SoftLinking.h:
1559         (SOFT_LINK_VARIABLE_FOR_HEADER):
1560         (SOFT_LINK_VARIABLE_FOR_SOURCE):
1561         - Add macros for non-constant global variables.
1562
1563 2018-10-30  Alexey Proskuryakov  <ap@apple.com>
1564
1565         Clean up some obsolete MAX_ALLOWED macros
1566         https://bugs.webkit.org/show_bug.cgi?id=190916
1567
1568         Reviewed by Tim Horton.
1569
1570         * WTF.xcodeproj/project.pbxproj:
1571         * wtf/PlatformMac.cmake:
1572         * wtf/spi/cocoa/NSMapTableSPI.h: Removed. This was only needed for old SDKs.
1573
1574 2018-10-29  Mark Lam  <mark.lam@apple.com>
1575
1576         Correctly detect string overflow when using the 'Function' constructor.
1577         https://bugs.webkit.org/show_bug.cgi?id=184883
1578         <rdar://problem/36320331>
1579
1580         Reviewed by Saam Barati.
1581
1582         1. Enhanced StringBuilder so that it supports 2 modes of behavior:
1583            a. StringBuilder::OverflowHandler::CrashOnOverflow.
1584            b. StringBuilder::OverflowHandler::RecordOverflow.
1585
1586            CrashOnOverflow will crash the moment an overflow or failure to allocate
1587            memory is detected.
1588
1589            RecordOverflow will make StringBuilder::hasOverflowed() return true when an
1590            overflow or failure to allocate memory is detected.  However, if the user
1591            invokes toString(), toStringPreserveCapacity(), toAtomicString(), length(),
1592            capacity(), isEmpty(), characters8(), or characters16(), then the StringBuilder
1593            will crash regardless because these methods can only meaningfully do their
1594            work and return a result if and only if the builder has not overflowed.
1595
1596            By default, the StringBuilder crashes on overflow (the old behavior) unless it
1597            is explicitly constructed with the StringBuilder::OverflowHandler::RecordOverflow
1598            enum.
1599
1600            Design note:
1601
1602            The StringBuilder can only be put in 1 of the 2 modes at the time of
1603            construction.  This means that we could have implemented it as a template
1604            that is parameterized on an OverflowHandler class (like CheckedArithmetic)
1605            instead of using a runtime check in the ConditionalCrashOnOverflow handler.
1606
1607            However, I was not able to get clang to export the explicitly instantiated
1608            instances (despite the methods having being decorated with WTF_EXPORT_PRIVATE).
1609            Since the StringBuilder is a transient object (not stored for a long time on
1610            the heap), and the runtime check of the boolean is not that costly compared
1611            to other work that StringBuilder routinely does (e.g. memcpy), using the
1612            new ConditionalCrashOnOverflow (which does a runtime check to determine to
1613            crash or not on overflow) is fine.
1614
1615            When clang is able to export explicitly instantiated template methods, we can
1616            templatize StringBuilder and do away with ConditionalCrashOnOverflow.
1617            See https://bugs.webkit.org/show_bug.cgi?id=191050.
1618
1619         To support the above, we also did:
1620
1621         2. Enhanced all StringBuilder append and buffer allocation methods to be able to
1622            fail without crashing.  This also meant that ...
1623
1624         3. Added tryReallocate() support to StringImpl.  tryRealloc() was added to
1625            FastMalloc, and bmalloc (and related peers) to enable this.
1626
1627         4. Added ConditionalCrashOnOverflow, which can choose at runtime whether to behave
1628            like CrashOnOverflow or RecordOverflow.
1629
1630         * wtf/CheckedArithmetic.h:
1631         (WTF::ConditionalCrashOnOverflow::overflowed):
1632         (WTF::ConditionalCrashOnOverflow::shouldCrashOnOverflow const):
1633         (WTF::ConditionalCrashOnOverflow::setShouldCrashOnOverflow):
1634         (WTF::ConditionalCrashOnOverflow::hasOverflowed const):
1635         (WTF::ConditionalCrashOnOverflow::clearOverflow):
1636         (WTF::ConditionalCrashOnOverflow::crash):
1637         (WTF::RecordOverflow::overflowed):
1638         (WTF::Checked::unsafeGet const):
1639         * wtf/FastMalloc.cpp:
1640         (WTF::tryFastRealloc):
1641         * wtf/FastMalloc.h:
1642         * wtf/text/StringBuilder.cpp:
1643         (WTF::expandedCapacity):
1644         (WTF::StringBuilder::reifyString const):
1645         (WTF::StringBuilder::resize):
1646         (WTF::StringBuilder::allocateBuffer):
1647         (WTF::StringBuilder::allocateBufferUpConvert):
1648         (WTF::StringBuilder::reallocateBuffer<LChar>):
1649         (WTF::StringBuilder::reallocateBuffer<UChar>):
1650         (WTF::StringBuilder::reserveCapacity):
1651         (WTF::StringBuilder::appendUninitialized):
1652         (WTF::StringBuilder::appendUninitializedSlow):
1653         (WTF::StringBuilder::append):
1654         (WTF::StringBuilder::canShrink const):
1655         (WTF::StringBuilder::shrinkToFit):
1656         * wtf/text/StringBuilder.h:
1657         (WTF::StringBuilder::StringBuilder):
1658         (WTF::StringBuilder::didOverflow):
1659         (WTF::StringBuilder::hasOverflowed const):
1660         (WTF::StringBuilder::crashesOnOverflow const):
1661         (WTF::StringBuilder::append):
1662         (WTF::StringBuilder::toString):
1663         (WTF::StringBuilder::toStringPreserveCapacity const):
1664         (WTF::StringBuilder::toAtomicString const):
1665         (WTF::StringBuilder::length const):
1666         (WTF::StringBuilder::capacity const):
1667         (WTF::StringBuilder::operator[] const):
1668         (WTF::StringBuilder::swap):
1669         (WTF::StringBuilder::getBufferCharacters<UChar>):
1670         * wtf/text/StringBuilderJSON.cpp:
1671         (WTF::StringBuilder::appendQuotedJSONString):
1672         * wtf/text/StringImpl.cpp:
1673         (WTF::StringImpl::reallocateInternal):
1674         (WTF::StringImpl::reallocate):
1675         (WTF::StringImpl::tryReallocate):
1676         * wtf/text/StringImpl.h:
1677
1678 2018-10-29  Tim Horton  <timothy_horton@apple.com>
1679
1680         Modernize WebKit nibs and lprojs for localization's sake
1681         https://bugs.webkit.org/show_bug.cgi?id=190911
1682         <rdar://problem/45349466>
1683
1684         Reviewed by Dan Bernstein.
1685
1686         * WTF.xcodeproj/project.pbxproj:
1687         English->en
1688
1689 2018-10-29  Tadeu Zagallo  <tzagallo@apple.com>
1690
1691         New bytecode format for JSC
1692         https://bugs.webkit.org/show_bug.cgi?id=187373
1693         <rdar://problem/44186758>
1694
1695         Reviewed by Filip Pizlo.
1696
1697         * wtf/Forward.h: Fix WTF_LAZY_FOR_EACH_TERM on MSVC and add WTF_LAZY_HAS_REST to check whether
1698         a macro was passed multiple arguments
1699         * wtf/Platform.h: Force ENABLE_JIT=false on all 32-bit platforms
1700         * wtf/Vector.h:
1701         (WTF::minCapacity>::insertVector): Allow vectors with different overflow handlers to be passed to insertVector
1702
1703 2018-10-28  Geoffrey Garen  <ggaren@apple.com>
1704
1705         HashMap should support selecting a random entry
1706         https://bugs.webkit.org/show_bug.cgi?id=190814
1707
1708         Reviewed by Ryosuke Niwa.
1709
1710         * wtf/HashTable.h:
1711         (WTF::HashTable::random):
1712         (WTF::HashTable::random const): Merge the empty and deleted checks, and
1713         use more idiomatic addressing.
1714
1715 2018-10-26  Commit Queue  <commit-queue@webkit.org>
1716
1717         Unreviewed, rolling out r237479 and r237484.
1718         https://bugs.webkit.org/show_bug.cgi?id=190978
1719
1720         broke JSC on iOS (Requested by tadeuzagallo on #webkit).
1721
1722         Reverted changesets:
1723
1724         "New bytecode format for JSC"
1725         https://bugs.webkit.org/show_bug.cgi?id=187373
1726         https://trac.webkit.org/changeset/237479
1727
1728         "Gardening: Build fix after r237479."
1729         https://bugs.webkit.org/show_bug.cgi?id=187373
1730         https://trac.webkit.org/changeset/237484
1731
1732 2018-10-26  Tadeu Zagallo  <tzagallo@apple.com>
1733
1734         New bytecode format for JSC
1735         https://bugs.webkit.org/show_bug.cgi?id=187373
1736         <rdar://problem/44186758>
1737
1738         Reviewed by Filip Pizlo.
1739
1740         * wtf/Forward.h: Fix WTF_LAZY_FOR_EACH_TERM on MSVC and add WTF_LAZY_HAS_REST to check whether
1741         a macro was passed multiple arguments
1742         * wtf/Platform.h: Force ENABLE_JIT=false on all 32-bit platforms
1743         * wtf/Vector.h:
1744         (WTF::minCapacity>::insertVector): Allow vectors with different overflow handlers to be passed to insertVector
1745
1746 2018-10-26  Geoffrey Garen  <ggaren@apple.com>
1747
1748         HashMap should support selecting a random entry
1749         https://bugs.webkit.org/show_bug.cgi?id=190814
1750
1751         Reviewed by Antti Koivisto.
1752
1753         * wtf/HashTable.h:
1754         (WTF::HashTable::random):
1755         (WTF::HashTable::random const): Draw a new random bucket any time we
1756         have a miss, to avoid bias caused by lopsided tables.
1757
1758 2018-10-26  Antti Koivisto  <antti@apple.com>
1759
1760         hashSet.remove(hashSet.random()) doesn't build
1761         https://bugs.webkit.org/show_bug.cgi?id=190953
1762
1763         Reviewed by Chris Dumez.
1764
1765         * wtf/HashSet.h:
1766
1767         Remove non-const random(). HashSet only returns const iterators (it is immutable via iterator).
1768
1769         * wtf/HashTable.h:
1770         (WTF::HashTable::random const):
1771
1772         Invoke const_iterator() by using static_cast<> instead of trying to do it directly.
1773
1774 2018-10-26  Alicia Boya García  <aboya@igalia.com>
1775
1776         [MSE][WTF][Media] Invalid MediaTime should be falsy
1777         https://bugs.webkit.org/show_bug.cgi?id=190893
1778
1779         Reviewed by Jer Noble.
1780
1781         This patch modifies the definition of MediaTime so that invalid times
1782         are evaluated to false in the context of a boolean expression.
1783
1784         * wtf/MediaTime.cpp:
1785         (WTF::MediaTime::operator! const):
1786         (WTF::MediaTime::operator bool const):
1787
1788 2018-10-26  Keith Miller  <keith_miller@apple.com>
1789
1790         Some internal projects include wtf headers and build with C++11
1791         https://bugs.webkit.org/show_bug.cgi?id=190791
1792
1793         Reviewed by Alexey Proskuryakov.
1794
1795         C++11 doesn't support constexpr functions that contain
1796         statements. This patch removes getLSBSet set from builds before
1797         C++14 to avoid this for now.
1798
1799         * wtf/MathExtras.h:
1800         (getLSBSet):
1801
1802 2018-10-25  Ross Kirsling  <ross.kirsling@sony.com>
1803
1804         Cleanup: inline constexpr is redundant as constexpr implies inline
1805         https://bugs.webkit.org/show_bug.cgi?id=190819
1806
1807         Reviewed by Mark Lam.
1808
1809         * wtf/Bitmap.h:
1810         (WTF::WordType>::Bitmap):
1811         * wtf/LEBDecoder.h:
1812         (WTF::LEBDecoder::maxByteLength):
1813         * wtf/MathExtras.h:
1814         (defaultMinimumForClamp):
1815         (defaultMaximumForClamp):
1816         (clampToAccepting64):
1817         (isLessThan):
1818         (isLessThanEqual):
1819         (isGreaterThan):
1820         (isGreaterThanEqual):
1821         (WTF::roundUpToPowerOfTwo):
1822         (WTF::maskForSize):
1823         * wtf/Optional.h:
1824         * wtf/PtrTag.h:
1825         (WTF::tagCodePtr):
1826         (WTF::untagCodePtr):
1827         (WTF::retagCodePtr):
1828         (WTF::removeCodePtrTag):
1829         * wtf/StdLibExtras.h:
1830         (WTF::roundUpToMultipleOf):
1831         * wtf/Variant.h:
1832         (WTF::operator==):
1833         (WTF::operator!=):
1834         (WTF::operator>=):
1835         (WTF::operator<=):
1836         (WTF::operator>):
1837         (WTF::operator<):
1838         * wtf/text/StringImpl.h:
1839         (WTF::StringImplShape::StringImplShape):
1840         (WTF::StringImpl::StaticStringImpl::StaticStringImpl):
1841
1842 2018-10-25  Geoffrey Garen  <ggaren@apple.com>
1843
1844         HashMap should support selecting a random entry
1845         https://bugs.webkit.org/show_bug.cgi?id=190814
1846
1847         Reviewed by Antti Koivisto.
1848
1849         In some cases, remove(begin()) is not quite good enough as a random
1850         eviction strategy. (See https://bugs.webkit.org/show_bug.cgi?id=190792.)
1851         So, let's support real random eviction.
1852
1853         (And by "real" I mean "pseudo".)
1854
1855         * wtf/HashCountedSet.h:
1856         * wtf/HashMap.h:
1857         * wtf/HashSet.h:
1858         * wtf/ListHashSet.h:
1859         (WTF::ListHashSet::random):
1860         (WTF::ListHashSet::random const):
1861         * wtf/LoggingHashMap.h:
1862         * wtf/LoggingHashSet.h: Plumb through the random() iterator.
1863
1864         * wtf/HashTable.h:
1865         (WTF::HashTable::random):
1866         (WTF::HashTable::random const): Implement the random() iterator.
1867         makeIterator() already supports starting from any bucket, so this is
1868         pretty easy.
1869
1870         In the subtle case where we select end(), we choose to wrap around and
1871         return begin(). We expect that clients don't really think of the end()
1872         bucket as being in the domain of the random search. Also, we don't want
1873         to annoy clients who know their tables are non-empty with needless
1874         checks for end().
1875
1876         * wtf/RandomNumber.cpp:
1877         (WTF::weakRandomUint32):
1878         * wtf/RandomNumber.h: Added a free function for weak random numbers so
1879         that clients that want cheap random numbers aren't required to allocate
1880         storage for a WeakRandom generator.
1881
1882 2018-10-24  Megan Gardner  <megan_gardner@apple.com>
1883
1884         Turn on Conic Gradients
1885         https://bugs.webkit.org/show_bug.cgi?id=190810
1886
1887         Reviewed by Tim Horton.
1888
1889         * wtf/FeatureDefines.h:
1890
1891 2018-10-24  Christopher Reid  <chris.reid@sony.com>
1892
1893         [Win] Add function call name information to stack traces
1894         https://bugs.webkit.org/show_bug.cgi?id=190761
1895
1896         Reviewed by Fujii Hironori.
1897
1898         Add symbol information to stack traces using dbghelp.dll
1899         This library will use symbols files from these sources:
1900             - The current working directory
1901             - The directory containing the application's executable
1902             - _NT_SYMBOL_PATH environment variable
1903             - _NT_ALTERNATE_SYMBOL_PATH environment variable
1904
1905         This functionality is currently only enabled in debug mode since dbghelp is not threadsafe.
1906         The DbgHelper class attempts to synchronize calls to dbghelp.dll but external code
1907         can still attempt to call the library at the same time as WebKit.
1908
1909         * wtf/CMakeLists.txt:
1910         * wtf/PlatformWin.cmake:
1911         * wtf/StackTrace.cpp:
1912         * wtf/win/DbgHelperWin.cpp: Added.
1913         * wtf/win/DbgHelperWin.h: Added.
1914
1915 2018-10-22  Alexey Proskuryakov  <ap@apple.com>
1916
1917         Really prevent PLATFORM(IOS) from being used
1918         https://bugs.webkit.org/show_bug.cgi?id=190813
1919
1920         Reviewed by Tim Horton.
1921
1922         * wtf/Platform.h: This relies on -Wundef, which we have enabled.
1923
1924 2018-10-22  Chris Dumez  <cdumez@apple.com>
1925
1926         Deque's contains() and findIf() should be const
1927         https://bugs.webkit.org/show_bug.cgi?id=190796
1928
1929         Reviewed by Antti Koivisto.
1930
1931         Deque's contains() and findIf() should be const as they do not modify the container.
1932
1933         * wtf/Deque.h:
1934         (WTF::inlineCapacity>::findIf):
1935         (WTF::inlineCapacity>::findIf const):
1936         (WTF::inlineCapacity>::contains const):
1937         (WTF::inlineCapacity>::contains): Deleted.
1938
1939 2018-10-18  Alicia Boya García  <aboya@igalia.com>
1940
1941         [Media] Use nanoseconds as MaximumTimeScale
1942         https://bugs.webkit.org/show_bug.cgi?id=190631
1943
1944         1e9 is a much more useful timescale than the previous one 2^31-1.
1945         Unlike 2^31-1, which is a prime number, nanosecond scale is pretty
1946         common among some formats like WebM and frameworks like GStreamer
1947         where base 10 timescale is common... and it's those big timescales the
1948         ones that are usually scaled up to MaximumTimeScale.
1949
1950         Reviewed by Jer Noble.
1951
1952         * wtf/MediaTime.cpp:
1953
1954 2018-10-18  Alexey Proskuryakov  <ap@apple.com>
1955
1956         Remove PLATFORM(IOS) for now
1957         https://bugs.webkit.org/show_bug.cgi?id=190737
1958
1959         Reviewed by Tim Horton.
1960
1961         * wtf/Platform.h:
1962
1963 2018-10-18  Alexey Proskuryakov  <ap@apple.com>
1964
1965         Switch from PLATFORM(IOS) to PLATFORM(IOS_FAMILY)
1966         https://bugs.webkit.org/show_bug.cgi?id=190729
1967
1968         Reviewed by Tim Horton.
1969
1970         * wtf/Assertions.h:
1971         * wtf/FeatureDefines.h:
1972         * wtf/InlineASM.h:
1973         * wtf/MemoryPressureHandler.cpp:
1974         (WTF::thresholdForPolicy):
1975         * wtf/Platform.h:
1976         * wtf/cocoa/MemoryPressureHandlerCocoa.mm:
1977         (WTF::MemoryPressureHandler::install):
1978         (WTF::MemoryPressureHandler::respondToMemoryPressure):
1979         * wtf/spi/cocoa/NSMapTableSPI.h:
1980         * wtf/spi/darwin/XPCSPI.h:
1981         * wtf/text/StringCommon.h:
1982         * wtf/text/TextBreakIterator.cpp:
1983         * wtf/text/TextBreakIterator.h:
1984         * wtf/unicode/icu/CollatorICU.cpp:
1985         (WTF::copyDefaultLocale):
1986
1987 2018-10-18  Alex Christensen  <achristensen@webkit.org>
1988
1989         Clean up FrameLoader two-state enums
1990         https://bugs.webkit.org/show_bug.cgi?id=190731
1991
1992         Reviewed by Chris Dumez.
1993
1994         * wtf/EnumTraits.h:
1995         (WTF::isValidEnum):
1996
1997 2018-10-17  Commit Queue  <commit-queue@webkit.org>
1998
1999         Unreviewed, rolling out r237208.
2000         https://bugs.webkit.org/show_bug.cgi?id=190691
2001
2002         Caused the API test that was changed to failure continuously
2003         (Requested by Truitt on #webkit).
2004
2005         Reverted changeset:
2006
2007         "[Media] Use nanoseconds as MaximumTimeScale"
2008         https://bugs.webkit.org/show_bug.cgi?id=190631
2009         https://trac.webkit.org/changeset/237208
2010
2011 2018-10-16  Alicia Boya García  <aboya@igalia.com>
2012
2013         [Media] Use nanoseconds as MaximumTimeScale
2014         https://bugs.webkit.org/show_bug.cgi?id=190631
2015
2016         1e9 is a much more useful timescale than the previous one 2^31-1.
2017         Unlike 2^31-1, which is a prime number, nanosecond scale is pretty
2018         common among some formats like WebM and frameworks like GStreamer
2019         where base 10 timescale is common... and it's those big timescales the
2020         ones that are usually scaled up to MaximumTimeScale.
2021
2022         Reviewed by Jer Noble.
2023
2024         * wtf/MediaTime.cpp:
2025
2026 2018-10-15  Keith Miller  <keith_miller@apple.com>
2027
2028         Support arm64 CPUs with a 32-bit address space
2029         https://bugs.webkit.org/show_bug.cgi?id=190273
2030
2031         Reviewed by Michael Saboff.
2032
2033         Use WTF_CPU_ADDRESS64/32 to decide if the system is running on arm64_32.
2034
2035         * wtf/MathExtras.h:
2036         (getLSBSet):
2037         * wtf/Platform.h:
2038
2039 2018-10-15  Timothy Hatcher  <timothy@apple.com>
2040
2041         Add support for prefers-color-scheme media query
2042         https://bugs.webkit.org/show_bug.cgi?id=190499
2043         rdar://problem/45212025
2044
2045         Reviewed by Dean Jackson.
2046
2047         * wtf/FeatureDefines.h: Added ENABLE_DARK_MODE_CSS.
2048
2049 2018-10-15  Saam barati  <sbarati@apple.com>
2050
2051         Emit fjcvtzs on ARM64E on Darwin
2052         https://bugs.webkit.org/show_bug.cgi?id=184023
2053
2054         Reviewed by Yusuke Suzuki and Filip Pizlo.
2055
2056         * wtf/Platform.h:
2057
2058 2018-10-15  Alex Christensen  <achristensen@webkit.org>
2059
2060         Use pragma once in WTF
2061         https://bugs.webkit.org/show_bug.cgi?id=190527
2062
2063         Reviewed by Chris Dumez.
2064
2065         We also need to consistently include wtf headers from within wtf so we can build wtf without
2066         symbol redefinition errors from including the copy in Source and the copy in the build directory.
2067
2068         * wtf/ASCIICType.h:
2069         * wtf/Assertions.cpp:
2070         * wtf/Assertions.h:
2071         * wtf/Atomics.h:
2072         * wtf/AutomaticThread.cpp:
2073         * wtf/AutomaticThread.h:
2074         * wtf/BackwardsGraph.h:
2075         * wtf/Bag.h:
2076         * wtf/BagToHashMap.h:
2077         * wtf/BitVector.cpp:
2078         * wtf/BitVector.h:
2079         * wtf/Bitmap.h:
2080         * wtf/BloomFilter.h:
2081         * wtf/Box.h:
2082         * wtf/BubbleSort.h:
2083         * wtf/BumpPointerAllocator.h:
2084         * wtf/ByteOrder.h:
2085         * wtf/CPUTime.cpp:
2086         * wtf/CallbackAggregator.h:
2087         * wtf/CheckedArithmetic.h:
2088         * wtf/CheckedBoolean.h:
2089         * wtf/ClockType.cpp:
2090         * wtf/ClockType.h:
2091         * wtf/CommaPrinter.h:
2092         * wtf/CompilationThread.cpp:
2093         * wtf/CompilationThread.h:
2094         * wtf/Compiler.h:
2095         * wtf/ConcurrentPtrHashSet.cpp:
2096         * wtf/ConcurrentVector.h:
2097         * wtf/Condition.h:
2098         * wtf/CountingLock.cpp:
2099         * wtf/CrossThreadTaskHandler.cpp:
2100         * wtf/CryptographicUtilities.cpp:
2101         * wtf/CryptographicUtilities.h:
2102         * wtf/CryptographicallyRandomNumber.cpp:
2103         * wtf/CryptographicallyRandomNumber.h:
2104         * wtf/CurrentTime.cpp:
2105         * wtf/DataLog.cpp:
2106         * wtf/DataLog.h:
2107         * wtf/DateMath.cpp:
2108         * wtf/DateMath.h:
2109         * wtf/DecimalNumber.cpp:
2110         * wtf/DecimalNumber.h:
2111         * wtf/Deque.h:
2112         * wtf/DisallowCType.h:
2113         * wtf/Dominators.h:
2114         * wtf/DoublyLinkedList.h:
2115         * wtf/FastBitVector.cpp:
2116         * wtf/FastMalloc.cpp:
2117         * wtf/FastMalloc.h:
2118         * wtf/FeatureDefines.h:
2119         * wtf/FilePrintStream.cpp:
2120         * wtf/FilePrintStream.h:
2121         * wtf/FlipBytes.h:
2122         * wtf/FunctionDispatcher.cpp:
2123         * wtf/FunctionDispatcher.h:
2124         * wtf/GetPtr.h:
2125         * wtf/Gigacage.cpp:
2126         * wtf/GlobalVersion.cpp:
2127         * wtf/GraphNodeWorklist.h:
2128         * wtf/GregorianDateTime.cpp:
2129         * wtf/GregorianDateTime.h:
2130         * wtf/HashFunctions.h:
2131         * wtf/HashMap.h:
2132         * wtf/HashMethod.h:
2133         * wtf/HashSet.h:
2134         * wtf/HashTable.cpp:
2135         * wtf/HashTraits.h:
2136         * wtf/Indenter.h:
2137         * wtf/IndexSparseSet.h:
2138         * wtf/InlineASM.h:
2139         * wtf/Insertion.h:
2140         * wtf/IteratorAdaptors.h:
2141         * wtf/IteratorRange.h:
2142         * wtf/JSONValues.cpp:
2143         * wtf/JSValueMalloc.cpp:
2144         * wtf/LEBDecoder.h:
2145         * wtf/Language.cpp:
2146         * wtf/ListDump.h:
2147         * wtf/Lock.cpp:
2148         * wtf/Lock.h:
2149         * wtf/LockAlgorithm.h:
2150         * wtf/LockedPrintStream.cpp:
2151         * wtf/Locker.h:
2152         * wtf/MD5.cpp:
2153         * wtf/MD5.h:
2154         * wtf/MainThread.cpp:
2155         * wtf/MainThread.h:
2156         * wtf/MallocPtr.h:
2157         * wtf/MathExtras.h:
2158         * wtf/MediaTime.cpp:
2159         * wtf/MediaTime.h:
2160         * wtf/MemoryPressureHandler.cpp:
2161         * wtf/MessageQueue.h:
2162         * wtf/MetaAllocator.cpp:
2163         * wtf/MetaAllocator.h:
2164         * wtf/MetaAllocatorHandle.h:
2165         * wtf/MonotonicTime.cpp:
2166         * wtf/MonotonicTime.h:
2167         * wtf/NakedPtr.h:
2168         * wtf/NoLock.h:
2169         * wtf/NoTailCalls.h:
2170         * wtf/Noncopyable.h:
2171         * wtf/NumberOfCores.cpp:
2172         * wtf/NumberOfCores.h:
2173         * wtf/OSAllocator.h:
2174         * wtf/OSAllocatorPosix.cpp:
2175         * wtf/OSRandomSource.cpp:
2176         * wtf/OSRandomSource.h:
2177         * wtf/ObjcRuntimeExtras.h:
2178         * wtf/OrderMaker.h:
2179         * wtf/PackedIntVector.h:
2180         * wtf/PageAllocation.h:
2181         * wtf/PageBlock.cpp:
2182         * wtf/PageBlock.h:
2183         * wtf/PageReservation.h:
2184         * wtf/ParallelHelperPool.cpp:
2185         * wtf/ParallelHelperPool.h:
2186         * wtf/ParallelJobs.h:
2187         * wtf/ParallelJobsLibdispatch.h:
2188         * wtf/ParallelVectorIterator.h:
2189         * wtf/ParkingLot.cpp:
2190         * wtf/ParkingLot.h:
2191         * wtf/Platform.h:
2192         * wtf/PointerComparison.h:
2193         * wtf/Poisoned.cpp:
2194         * wtf/PrintStream.cpp:
2195         * wtf/PrintStream.h:
2196         * wtf/ProcessID.h:
2197         * wtf/ProcessPrivilege.cpp:
2198         * wtf/RAMSize.cpp:
2199         * wtf/RAMSize.h:
2200         * wtf/RandomDevice.cpp:
2201         * wtf/RandomNumber.cpp:
2202         * wtf/RandomNumber.h:
2203         * wtf/RandomNumberSeed.h:
2204         * wtf/RangeSet.h:
2205         * wtf/RawPointer.h:
2206         * wtf/ReadWriteLock.cpp:
2207         * wtf/RedBlackTree.h:
2208         * wtf/Ref.h:
2209         * wtf/RefCountedArray.h:
2210         * wtf/RefCountedLeakCounter.cpp:
2211         * wtf/RefCountedLeakCounter.h:
2212         * wtf/RefCounter.h:
2213         * wtf/RefPtr.h:
2214         * wtf/RetainPtr.h:
2215         * wtf/RunLoop.cpp:
2216         * wtf/RunLoop.h:
2217         * wtf/RunLoopTimer.h:
2218         * wtf/RunLoopTimerCF.cpp:
2219         * wtf/SHA1.cpp:
2220         * wtf/SHA1.h:
2221         * wtf/SaturatedArithmetic.h:
2222         (saturatedSubtraction):
2223         * wtf/SchedulePair.h:
2224         * wtf/SchedulePairCF.cpp:
2225         * wtf/SchedulePairMac.mm:
2226         * wtf/ScopedLambda.h:
2227         * wtf/Seconds.cpp:
2228         * wtf/Seconds.h:
2229         * wtf/SegmentedVector.h:
2230         * wtf/SentinelLinkedList.h:
2231         * wtf/SharedTask.h:
2232         * wtf/SimpleStats.h:
2233         * wtf/SingleRootGraph.h:
2234         * wtf/SinglyLinkedList.h:
2235         * wtf/SixCharacterHash.cpp:
2236         * wtf/SixCharacterHash.h:
2237         * wtf/SmallPtrSet.h:
2238         * wtf/Spectrum.h:
2239         * wtf/StackBounds.cpp:
2240         * wtf/StackBounds.h:
2241         * wtf/StackStats.cpp:
2242         * wtf/StackStats.h:
2243         * wtf/StackTrace.cpp:
2244         * wtf/StdLibExtras.h:
2245         * wtf/StreamBuffer.h:
2246         * wtf/StringHashDumpContext.h:
2247         * wtf/StringPrintStream.cpp:
2248         * wtf/StringPrintStream.h:
2249         * wtf/ThreadGroup.cpp:
2250         * wtf/ThreadMessage.cpp:
2251         * wtf/ThreadSpecific.h:
2252         * wtf/Threading.cpp:
2253         * wtf/Threading.h:
2254         * wtf/ThreadingPrimitives.h:
2255         * wtf/ThreadingPthreads.cpp:
2256         * wtf/TimeWithDynamicClockType.cpp:
2257         * wtf/TimeWithDynamicClockType.h:
2258         * wtf/TimingScope.cpp:
2259         * wtf/TinyLRUCache.h:
2260         * wtf/TinyPtrSet.h:
2261         * wtf/TriState.h:
2262         * wtf/TypeCasts.h:
2263         * wtf/UUID.cpp:
2264         * wtf/UnionFind.h:
2265         * wtf/VMTags.h:
2266         * wtf/ValueCheck.h:
2267         * wtf/Vector.h:
2268         * wtf/VectorTraits.h:
2269         * wtf/WallTime.cpp:
2270         * wtf/WallTime.h:
2271         * wtf/WeakPtr.h:
2272         * wtf/WeakRandom.h:
2273         * wtf/WordLock.cpp:
2274         * wtf/WordLock.h:
2275         * wtf/WorkQueue.cpp:
2276         * wtf/WorkQueue.h:
2277         * wtf/WorkerPool.cpp:
2278         * wtf/cf/LanguageCF.cpp:
2279         * wtf/cf/RunLoopCF.cpp:
2280         * wtf/cocoa/Entitlements.mm:
2281         * wtf/cocoa/MachSendRight.cpp:
2282         * wtf/cocoa/MainThreadCocoa.mm:
2283         * wtf/cocoa/MemoryFootprintCocoa.cpp:
2284         * wtf/cocoa/WorkQueueCocoa.cpp:
2285         * wtf/dtoa.cpp:
2286         * wtf/dtoa.h:
2287         * wtf/ios/WebCoreThread.cpp:
2288         * wtf/ios/WebCoreThread.h:
2289         * wtf/mac/AppKitCompatibilityDeclarations.h:
2290         * wtf/mac/DeprecatedSymbolsUsedBySafari.mm:
2291         * wtf/mbmalloc.cpp:
2292         * wtf/persistence/PersistentCoders.cpp:
2293         * wtf/persistence/PersistentDecoder.cpp:
2294         * wtf/persistence/PersistentEncoder.cpp:
2295         * wtf/spi/cf/CFBundleSPI.h:
2296         * wtf/spi/darwin/CommonCryptoSPI.h:
2297         * wtf/text/ASCIIFastPath.h:
2298         * wtf/text/ASCIILiteral.cpp:
2299         * wtf/text/AtomicString.cpp:
2300         * wtf/text/AtomicString.h:
2301         * wtf/text/AtomicStringHash.h:
2302         * wtf/text/AtomicStringImpl.cpp:
2303         * wtf/text/AtomicStringImpl.h:
2304         * wtf/text/AtomicStringTable.cpp:
2305         * wtf/text/AtomicStringTable.h:
2306         * wtf/text/Base64.cpp:
2307         * wtf/text/CString.cpp:
2308         * wtf/text/CString.h:
2309         * wtf/text/ConversionMode.h:
2310         * wtf/text/ExternalStringImpl.cpp:
2311         * wtf/text/IntegerToStringConversion.h:
2312         * wtf/text/LChar.h:
2313         * wtf/text/LineEnding.cpp:
2314         * wtf/text/StringBuffer.h:
2315         * wtf/text/StringBuilder.cpp:
2316         * wtf/text/StringBuilder.h:
2317         * wtf/text/StringBuilderJSON.cpp:
2318         * wtf/text/StringCommon.h:
2319         * wtf/text/StringConcatenate.h:
2320         * wtf/text/StringHash.h:
2321         * wtf/text/StringImpl.cpp:
2322         * wtf/text/StringImpl.h:
2323         * wtf/text/StringOperators.h:
2324         * wtf/text/StringView.cpp:
2325         * wtf/text/StringView.h:
2326         * wtf/text/SymbolImpl.cpp:
2327         * wtf/text/SymbolRegistry.cpp:
2328         * wtf/text/SymbolRegistry.h:
2329         * wtf/text/TextBreakIterator.cpp:
2330         * wtf/text/TextBreakIterator.h:
2331         * wtf/text/TextBreakIteratorInternalICU.h:
2332         * wtf/text/TextPosition.h:
2333         * wtf/text/TextStream.cpp:
2334         * wtf/text/UniquedStringImpl.h:
2335         * wtf/text/WTFString.cpp:
2336         * wtf/text/WTFString.h:
2337         * wtf/text/cocoa/StringCocoa.mm:
2338         * wtf/text/cocoa/StringViewCocoa.mm:
2339         * wtf/text/cocoa/TextBreakIteratorInternalICUCocoa.cpp:
2340         * wtf/text/icu/UTextProvider.cpp:
2341         * wtf/text/icu/UTextProvider.h:
2342         * wtf/text/icu/UTextProviderLatin1.cpp:
2343         * wtf/text/icu/UTextProviderLatin1.h:
2344         * wtf/text/icu/UTextProviderUTF16.cpp:
2345         * wtf/text/icu/UTextProviderUTF16.h:
2346         * wtf/threads/BinarySemaphore.cpp:
2347         * wtf/threads/BinarySemaphore.h:
2348         * wtf/threads/Signals.cpp:
2349         * wtf/unicode/CharacterNames.h:
2350         * wtf/unicode/Collator.h:
2351         * wtf/unicode/CollatorDefault.cpp:
2352         * wtf/unicode/UTF8.cpp:
2353         * wtf/unicode/UTF8.h:
2354
2355 2018-10-12  Alex Christensen  <achristensen@webkit.org>
2356
2357         Allow encoding of small enum classes
2358         https://bugs.webkit.org/show_bug.cgi?id=190531
2359
2360         Reviewed by Tim Horton.
2361
2362         * wtf/Forward.h:
2363
2364 2018-10-11  Alexey Proskuryakov  <ap@apple.com>
2365
2366         Add PLATFORM(IOS_FAMILY) and OS(IOS_FAMILY)
2367         https://bugs.webkit.org/show_bug.cgi?id=190477
2368
2369         Reviewed by Tim Horton.
2370
2371         Currently, PLATFORM(IOS) and OS(IOS) are true when building for any
2372         TARGET_OS_IPHONE target, which is quite confusing. Add a better named alternative,
2373         as a first step towards mass replacing PLATFORM(IOS). Can't so it all at once
2374         because of dependencies in other source repositories.
2375
2376         * wtf/Platform.h: Changed to the new name in this file though. Kept a few
2377         instances that actually target iOS only, having a version check.
2378
2379 2018-10-11  Yusuke Suzuki  <yusukesuzuki@slowstart.org>
2380
2381         Use currentStackPointer more
2382         https://bugs.webkit.org/show_bug.cgi?id=190503
2383
2384         Reviewed by Saam Barati.
2385
2386         Use WTF::currentStackPointer more in WebKit to adopt ASAN detect_stack_use_after_return option.
2387
2388         * wtf/StackBounds.cpp:
2389         (WTF::testStackDirection2):
2390         (WTF::testStackDirection):
2391         * wtf/ThreadingPthreads.cpp:
2392         (WTF::Thread::signalHandlerSuspendResume):
2393         (WTF::getApproximateStackPointer): Deleted.
2394
2395 2018-10-11  Ross Kirsling  <ross.kirsling@sony.com>
2396
2397         [WTF] Semaphore.h conflicts with POSIX header
2398         https://bugs.webkit.org/show_bug.cgi?id=190486
2399
2400         Reviewed by Yusuke Suzuki.
2401
2402         Rename Semaphore.h to WTFSemaphore.h to avoid conflict with POSIX semaphore.h on case-insensitive file systems.
2403
2404         * WTF.xcodeproj/project.pbxproj:
2405         * wtf/CMakeLists.txt:
2406         * wtf/WTFSemaphore.h: Renamed from wtf/Semaphore.h.
2407
2408 2018-10-10  Mark Lam  <mark.lam@apple.com>
2409
2410         Changes towards allowing use of the ASAN detect_stack_use_after_return option.
2411         https://bugs.webkit.org/show_bug.cgi?id=190405
2412         <rdar://problem/45131464>
2413
2414         Reviewed by Michael Saboff.
2415
2416         Introduce WTF::currentStackPointer() which computes its caller's stack pointer value.
2417
2418         * WTF.xcodeproj/project.pbxproj:
2419         * wtf/CMakeLists.txt:
2420         * wtf/StackBounds.h:
2421         (WTF::StackBounds::checkConsistency const):
2422         * wtf/StackPointer.cpp: Added.
2423         (WTF::currentStackPointer):
2424         * wtf/StackPointer.h: Added.
2425
2426 2018-10-09  Mark Lam  <mark.lam@apple.com>
2427
2428         StringTypeAdapter constructor is not properly enforcing String::MaxLength.
2429         https://bugs.webkit.org/show_bug.cgi?id=190392
2430         <rdar://problem/45116210>
2431
2432         Reviewed by Saam Barati.
2433
2434         Previously, the StringTypeAdapter constructor for a UChar* string was summing the
2435         unsigned length of the source string without an overflow check.  We now make that
2436         length a size_t which removes this issue, and assert that it's within
2437         String::MaxLength thereafter.
2438
2439         Also made the StringTypeAdapter constructor for a LChar* string behave in an
2440         equivalent manner for consistency.  In both cases, we'll crash in a RELEASE_ASSERT
2441         if the source string length exceeds String::MaxLength.
2442
2443         * wtf/text/StringConcatenate.h:
2444
2445 2018-10-09  Mark Lam  <mark.lam@apple.com>
2446
2447         Revert temporary asserts for debugging a mysterious ASAN bot crash.
2448         https://bugs.webkit.org/show_bug.cgi?id=190396
2449
2450         Reviewed by Yusuke Suzuki.
2451
2452         * wtf/StackBounds.cpp:
2453         (WTF::StackBounds::newThreadStackBounds):
2454         * wtf/StackBounds.h:
2455         (WTF::StackBounds::checkConsistency const):
2456
2457 2018-10-08  Aditya Keerthi  <akeerthi@apple.com>
2458
2459         Make <input type=color> a runtime enabled (on-by-default) feature
2460         https://bugs.webkit.org/show_bug.cgi?id=189162
2461
2462         Reviewed by Wenson Hsieh and Tim Horton.
2463
2464         * wtf/FeatureDefines.h:
2465
2466 2018-10-06  Mark Lam  <mark.lam@apple.com>
2467
2468         Adding some temporary asserts with data logging to debug a mysterious ASAN bot crash.
2469         https://bugs.webkit.org/show_bug.cgi?id=190334
2470         <rdar://problem/45071303>
2471
2472         Reviewed by Yusuke Suzuki.
2473
2474         These assertions are needed because we can't reproduce the issue locally.
2475         We'll remove these asserts after the needed data has been collected from the bot.
2476
2477         * wtf/StackBounds.cpp:
2478         (WTF::StackBounds::newThreadStackBounds):
2479         * wtf/StackBounds.h:
2480         (WTF::StackBounds::checkConsistency const):
2481
2482 2018-10-07  Yusuke Suzuki  <yusukesuzuki@slowstart.org>
2483
2484         Name Heap threads
2485         https://bugs.webkit.org/show_bug.cgi?id=190337
2486
2487         Reviewed by Mark Lam.
2488
2489         Add a functionality naming threads of ParallelHelperPool.
2490
2491         * wtf/ParallelHelperPool.cpp:
2492         (WTF::ParallelHelperPool::ParallelHelperPool):
2493         * wtf/ParallelHelperPool.h:
2494
2495 2018-10-06  Mark Lam  <mark.lam@apple.com>
2496
2497         Adding some temporary asserts to debug a mysterious ASAN bot crash.
2498         https://bugs.webkit.org/show_bug.cgi?id=190331
2499
2500         Reviewed by Filip Pizlo.
2501
2502         These assertions are needed because we can't reproduce the issue locally.
2503         We'll remove these asserts after the needed data has been collected from the bot.
2504
2505         * wtf/StackBounds.h:
2506         (WTF::StackBounds::checkConsistency const):
2507
2508 2018-10-05  Yusuke Suzuki  <yusukesuzuki@slowstart.org>
2509
2510         [JSC][Linux] Support Perf JITDump logging
2511         https://bugs.webkit.org/show_bug.cgi?id=189893
2512
2513         Reviewed by Mark Lam.
2514
2515         * wtf/PageReservation.h:
2516         (WTF::PageReservation::reserveAndCommitWithGuardPages):
2517
2518 2018-10-03  Dan Bernstein  <mitz@apple.com>
2519
2520         WTF part of [Xcode] Update some build settings as recommended by Xcode 10
2521         https://bugs.webkit.org/show_bug.cgi?id=190250
2522
2523         Reviewed by Alex Christensen.
2524
2525         * Configurations/Base.xcconfig: Enabled CLANG_WARN_COMMA, CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS,
2526           and CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF.
2527
2528         * WTF.xcodeproj/project.pbxproj: Let Xcode update LastUpgradeCheck.
2529
2530         * wtf/MathExtras.h:
2531         (WTF::fastLog2): Addressed newly-enabled CLANG_WARN_COMMA by splitting some comma-separated
2532           expressions into individual statements.
2533
2534 2018-10-03  Mark Lam  <mark.lam@apple.com>
2535
2536         Make string MaxLength for all WTF and JS strings consistently equal to INT_MAX.
2537         https://bugs.webkit.org/show_bug.cgi?id=190187
2538         <rdar://problem/42512909>
2539
2540         Reviewed by Michael Saboff.
2541
2542         * wtf/text/StringConcatenate.h:
2543         (WTF::tryMakeStringFromAdapters):
2544         (WTF::sumWithOverflow): Deleted.
2545         * wtf/text/StringImpl.h:
2546         * wtf/text/WTFString.h:
2547
2548 2018-10-03  Michael Catanzaro  <mcatanzaro@igalia.com>
2549
2550         -Wunused-variable in RenderLayer::updateScrollableAreaSet
2551         https://bugs.webkit.org/show_bug.cgi?id=190200
2552
2553         Reviewed by Yusuke Suzuki.
2554
2555         Add a new UNUSED_VARIABLE() macro. It's the same as UNUSED_PARAM(), just named differently.
2556
2557         * wtf/Compiler.h:
2558
2559 2018-10-01  Dean Jackson  <dino@apple.com>
2560
2561         [macOS] Switching to discrete GPU should be done in the UI process
2562         https://bugs.webkit.org/show_bug.cgi?id=189361
2563         <rdar://problem/43949622>
2564
2565         Reviewed by Simon Fraser.
2566
2567         Define GL_SILENCE_DEPRECATION to avoid deprecation warnings for OpenGL.
2568
2569         * wtf/Platform.h:
2570
2571 2018-10-02  Commit Queue  <commit-queue@webkit.org>
2572
2573         Unreviewed, rolling out r236624 and r236671.
2574         https://bugs.webkit.org/show_bug.cgi?id=190207
2575
2576         The change in r236624 introduced crashes on the bots
2577         (Requested by ryanhaddad on #webkit).
2578
2579         Reverted changesets:
2580
2581         "Refactoring: eliminate raw pointer usage in Fullscreen code"
2582         https://bugs.webkit.org/show_bug.cgi?id=188747
2583         https://trac.webkit.org/changeset/236624
2584
2585         "Unify implementation in VideoFullscreenInterfaceAVKit"
2586         https://bugs.webkit.org/show_bug.cgi?id=190091
2587         https://trac.webkit.org/changeset/236671
2588
2589 2018-10-02  Caio Lima  <ticaiolima@gmail.com>
2590
2591         [BigInt] BigInt.proptotype.toString is broken when radix is power of 2
2592         https://bugs.webkit.org/show_bug.cgi?id=190033
2593
2594         Reviewed by Yusuke Suzuki.
2595
2596         * wtf/MathExtras.h:
2597         (WTF::ctz32):
2598
2599 2018-10-01  Andy Estes  <aestes@apple.com>
2600
2601         [watchOS] Adopt NSURLSessionCompanionProxyPreference
2602         https://bugs.webkit.org/show_bug.cgi?id=190177
2603         <rdar://problem/43402114>
2604
2605         Reviewed by Wenson Hsieh.
2606
2607         * wtf/FeatureDefines.h:
2608
2609 2018-10-01  Koby Boyango  <koby.b@mce-sys.com>
2610
2611         [WTF][JSCONLY] Use MainThreadWin on Windows in the JSCOnly port
2612         https://bugs.webkit.org/show_bug.cgi?id=190121
2613
2614         Reviewed by Yusuke Suzuki.
2615
2616         This fixes JSCOnly build on Windows after r236617.
2617
2618         * wtf/PlatformJSCOnly.cmake:
2619
2620 2018-10-01  Commit Queue  <commit-queue@webkit.org>
2621
2622         Unreviewed, rolling out r236647.
2623         https://bugs.webkit.org/show_bug.cgi?id=190124
2624
2625         Breaking test stress/big-int-to-string.js (Requested by
2626         caiolima_ on #webkit).
2627
2628         Reverted changeset:
2629
2630         "[BigInt] BigInt.proptotype.toString is broken when radix is
2631         power of 2"
2632         https://bugs.webkit.org/show_bug.cgi?id=190033
2633         https://trac.webkit.org/changeset/236647
2634
2635 2018-09-30  Caio Lima  <ticaiolima@gmail.com>
2636
2637         [BigInt] BigInt.proptotype.toString is broken when radix is power of 2
2638         https://bugs.webkit.org/show_bug.cgi?id=190033
2639
2640         Reviewed by Yusuke Suzuki.
2641
2642         * wtf/MathExtras.h:
2643         (WTF::ctz32):
2644
2645 2018-09-28  Jer Noble  <jer.noble@apple.com>
2646
2647         Refactoring: eliminate raw pointer usage in Fullscreen code
2648         https://bugs.webkit.org/show_bug.cgi?id=188747
2649         <rdar://problem/43541164>
2650
2651         Reviewed by Alex Christensen.
2652
2653         * WTF.xcodeproj/project.pbxproj:
2654         * wtf/WeakPtrContainer.h: Added.
2655
2656 2018-09-28  Yusuke Suzuki  <yusukesuzuki@slowstart.org>
2657
2658         [WTF] Make isMainThread more reliable
2659         https://bugs.webkit.org/show_bug.cgi?id=189880
2660
2661         Reviewed by Mark Lam.
2662
2663         isMainThread() relied on Thread::current(). This API becomes broken in Windows
2664         when the Thread is about to be destroyed since TLS is already cleared. This causes
2665         a bug since `isMainThread()` is called in Thread::didExit in Windows.
2666
2667         This patch makes this `isMainThread` more reliable in all the platforms. In Windows,
2668         we use `Thread::currentID()` instead of `Thread::current()` since `Thread::currentID`
2669         uses Win32 GetCurrentThreadId directly. In the other system, we use `pthread_main_np`
2670         or `pthread_self` instead.
2671
2672         We also move `holdLock` code inside `if (shouldRemoveThreadFromThreadGroup())`. If
2673         the other thread takes a mutex and destroyed, this `holdLock` waits forever. This problem
2674         only happens in Windows since Windows calls TLS destructor for the main thread.
2675
2676         * WTF.xcodeproj/project.pbxproj:
2677         * wtf/MainThread.cpp:
2678         (WTF::initializeMainThread):
2679         (): Deleted.
2680         (WTF::isMainThread): Deleted.
2681         (WTF::isMainThreadIfInitialized): Deleted.
2682         * wtf/Platform.h:
2683         * wtf/PlatformMac.cmake:
2684         * wtf/Threading.cpp:
2685         (WTF::Thread::didExit):
2686         * wtf/cocoa/MainThreadCocoa.mm: Renamed from Source/WTF/wtf/mac/MainThreadMac.mm.
2687         * wtf/generic/MainThreadGeneric.cpp:
2688         (WTF::initializeMainThreadPlatform):
2689         (WTF::isMainThread):
2690         (WTF::isMainThreadIfInitialized):
2691         * wtf/win/MainThreadWin.cpp:
2692         (WTF::initializeMainThreadPlatform):
2693         (WTF::isMainThread):
2694         (WTF::isMainThreadIfInitialized):
2695
2696 2018-09-28  Commit Queue  <commit-queue@webkit.org>
2697
2698         Unreviewed, rolling out r236605.
2699         https://bugs.webkit.org/show_bug.cgi?id=190087
2700
2701         caused three API test timeouts (Requested by jernoble on
2702         #webkit).
2703
2704         Reverted changeset:
2705
2706         "Refactoring: eliminate raw pointer usage in Fullscreen code"
2707         https://bugs.webkit.org/show_bug.cgi?id=188747
2708         https://trac.webkit.org/changeset/236605
2709
2710 2018-09-28  Brian Burg  <bburg@apple.com>
2711
2712         Replace recently added line comments in Compiler.h
2713         https://bugs.webkit.org/show_bug.cgi?id=190062
2714         <rdar://problem/44838618>
2715
2716         Reviewed by Joseph Pecoraro.
2717
2718         This breaks some Apple-internal tooling. For now, work around it by
2719         changing the comment style. On the other side, the issue will be fixed
2720         more permanently by adopting the approach from r230213.
2721
2722         * wtf/Compiler.h: Use multiline comments.
2723
2724 2018-09-28  Jer Noble  <jer.noble@apple.com>
2725
2726         Refactoring: eliminate raw pointer usage in Fullscreen code
2727         https://bugs.webkit.org/show_bug.cgi?id=188747
2728         <rdar://problem/43541164>
2729
2730         Reviewed by Alex Christensen.
2731
2732         * WTF.xcodeproj/project.pbxproj:
2733         * wtf/WeakPtrContainer.h: Added.
2734
2735 2018-09-28  Koby Boyango  <koby.b@mce.systems>
2736
2737         [WTF] Add ExternalStringImpl, a StringImpl for user controlled buffers
2738         https://bugs.webkit.org/show_bug.cgi?id=189991
2739
2740         Reviewed by Yusuke Suzuki.
2741
2742         * WTF.xcodeproj/project.pbxproj:
2743         * wtf/CMakeLists.txt:
2744         * wtf/text/ExternalStringImpl.cpp: Added.
2745         * wtf/text/ExternalStringImpl.h: Added.
2746         * wtf/text/StringImpl.cpp:
2747         * wtf/text/StringImpl.h:
2748
2749 2018-09-27  Saam barati  <sbarati@apple.com>
2750
2751         Verify the contents of AssemblerBuffer on arm64e
2752         https://bugs.webkit.org/show_bug.cgi?id=190057
2753         <rdar://problem/38916630>
2754
2755         Reviewed by Mark Lam.
2756
2757         * wtf/PtrTag.h:
2758         (WTF::tagInt):
2759
2760 2018-09-27  Jer Noble  <jer.noble@apple.com>
2761
2762         MediaPlayer should have mediaPlayerWaitingForKeyChanged() / bool waitingForKey() accessor
2763         https://bugs.webkit.org/show_bug.cgi?id=189951
2764
2765         Reviewed by Eric Carlson.
2766
2767         Templated functions should take r-value references, as they have perfect type deduction for
2768         all parameter types; references, l-value references, and r-value references in template function
2769         parameters have special type deduction semantics.
2770         See: <https://en.cppreference.com/w/cpp/language/reference#Forwarding_references>
2771
2772         Previously, const reference parameters would be copied when passed into anyOf(), and containers
2773         of Ref<> would generate compile errors when passed into anyOf, as they cannot be copied. Now,
2774         with r-value reference types in template parameters, a const reference is mapped to a const reference,
2775         a non-const reference is mapped to a non-const reference, and a r-value reference is mapped to
2776         an r-value reference.
2777
2778         * wtf/Algorithms.h:
2779         (WTF::forEach):
2780         (WTF::anyOf):
2781         (WTF::allOf):
2782
2783 2018-09-25  John Wilander  <wilander@apple.com>
2784
2785         Change from HAVE(CFNETWORK_STORAGE_PARTITIONING) to ENABLE(RESOURCE_LOAD_STATISTICS)
2786         https://bugs.webkit.org/show_bug.cgi?id=189959
2787         <rdar://problem/44767642>
2788
2789         Reviewed by Chris Dumez.
2790
2791         * wtf/Platform.h:
2792             Enables RESOURCE_LOAD_STATISTICS for Cocoa platforms.
2793
2794 2018-09-24  Fujii Hironori  <Hironori.Fujii@sony.com>
2795
2796         Rename WTF_COMPILER_GCC_OR_CLANG to WTF_COMPILER_GCC_COMPATIBLE
2797         https://bugs.webkit.org/show_bug.cgi?id=189733
2798
2799         Reviewed by Michael Catanzaro.
2800
2801         Clang for Windows build enables WTF_COMPILER_CLANG and
2802         WTF_COMPILER_MSVC, but disables WTF_COMPILER_GCC_OR_CLANG. It is
2803         strange WTF_COMPILER_GCC_OR_CLANG is not enabled even though
2804         WTF_COMPILER_CLANG is enabled. However, Clang for Windows imitates
2805         MSVC, and codes for COMPILER(GCC_OR_CLANG) are for non MSVC. At
2806         least at the moment, it is not feasible to define
2807         WTF_COMPILER_GCC_OR_CLANG for Clang for Windows.
2808
2809         To solve the issue, this change renames WTF_COMPILER_GCC_OR_CLANG
2810         to WTF_COMPILER_GCC_COMPATIBLE.
2811
2812         As an exception, I'd like to use IGNORE_WARNINGS_* macros even in
2813         Clang for Windows builds.
2814
2815         * wtf/Assertions.cpp: Replaced COMPILER(GCC_OR_CLANG) with COMPILER(GCC_COMPATIBLE).
2816         * wtf/Assertions.h: Ditto.
2817         * wtf/Atomics.h: Ditto.
2818         * wtf/CheckedArithmetic.h: Ditto.
2819         * wtf/FastMalloc.h: Ditto.
2820         * wtf/MathExtras.h: Ditto.
2821         * wtf/Platform.h: Ditto.
2822         * wtf/StdLibExtras.h: Ditto.
2823         * wtf/Vector.h: Ditto.
2824         * wtf/text/ASCIIFastPath.h: Ditto.
2825         * wtf/Compiler.h:  Ditto. Replaced "COMPILER(GCC_OR_CLANG)" with "COMPILER(GCC) || COMPILER(CLANG)" of IGNORE_WARNINGS_* macros.
2826
2827 2018-09-21  Yusuke Suzuki  <yusukesuzuki@slowstart.org>
2828
2829         [JSC] Enable LLInt ASM interpreter on X64 and ARM64 in non JIT configuration
2830         https://bugs.webkit.org/show_bug.cgi?id=189778
2831
2832         Reviewed by Keith Miller.
2833
2834         This patch adds ENABLE(C_LOOP) which indicates we use CLoop as the interpreter.
2835         Previously, we used !ENABLE(JIT) for this configuration. But now, we have
2836         a build configuration that has LLInt ASM interpreter (not CLoop) and !ENABLE(JIT).
2837
2838         We enable LLInt ASM interpreter for non JIT environment in X86_64 and ARM64 architectures.
2839         And we enable ENABLE(ASSEMBLER) for non JIT environment since it offers machine register
2840         information which is used for LLInt and SamplingProfiler.
2841
2842         * wtf/Platform.h:
2843
2844 2018-09-21  Keith Miller  <keith_miller@apple.com>
2845
2846         Add Promise SPI
2847         https://bugs.webkit.org/show_bug.cgi?id=189809
2848
2849         Reviewed by Saam Barati.
2850
2851         Fix issue where creating a JSContextRef off the main thread before
2852         creating initializing the main thread would cause an assertion
2853         failure.
2854
2855         * wtf/MainThread.cpp:
2856         (WTF::isMainThreadIfInitialized):
2857         * wtf/MainThread.h:
2858         * wtf/mac/MainThreadMac.mm:
2859         (WTF::isMainThreadIfInitialized):
2860         * wtf/text/cf/StringImplCF.cpp:
2861         (WTF::StringImpl::createCFString):
2862
2863 2018-09-21  Ryan Haddad  <ryanhaddad@apple.com>
2864
2865         Unreviewed, rolling out r236359.
2866
2867         Broke the Windows build.
2868
2869         Reverted changeset:
2870
2871         "Add Promise SPI"
2872         https://bugs.webkit.org/show_bug.cgi?id=189809
2873         https://trac.webkit.org/changeset/236359
2874
2875 2018-09-21  Keith Miller  <keith_miller@apple.com>
2876
2877         Add Promise SPI
2878         https://bugs.webkit.org/show_bug.cgi?id=189809
2879
2880         Reviewed by Saam Barati.
2881
2882         Fix issue where creating a JSContextRef off the main thread before
2883         creating initializing the main thread would cause an assertion
2884         failure.
2885
2886         * wtf/MainThread.cpp:
2887         (WTF::isMainThreadIfInitialized):
2888         * wtf/MainThread.h:
2889         * wtf/mac/MainThreadMac.mm:
2890         (WTF::isMainThreadIfInitialized):
2891         * wtf/text/cf/StringImplCF.cpp:
2892         (WTF::StringImpl::createCFString):
2893
2894 2018-09-20  Fujii Hironori  <Hironori.Fujii@sony.com>
2895
2896         [Win][Clang] UNUSED_PARAM(this) causes compilation error of "cannot take the address of an rvalue of type"
2897         https://bugs.webkit.org/show_bug.cgi?id=189732
2898
2899         Reviewed by Per Arne Vollan.
2900
2901         Clang for Windows can't compile the MSVC workaround of
2902         UNUSED_PARAM which has been introduced for Windows CE and Visual
2903         Studio 10. I think it's safe just to remove it.
2904
2905         * wtf/Compiler.h: Removed the code for COMPILER(MSVC).
2906
2907 2018-09-20  Alex Christensen  <achristensen@webkit.org>
2908
2909         Unreviewed, rolling out r235976.
2910
2911         Broke ARM
2912
2913         Reverted changeset:
2914
2915         "Use a Variant instead of a union in CSSSelector"
2916         https://bugs.webkit.org/show_bug.cgi?id=188559
2917         https://trac.webkit.org/changeset/235976
2918
2919 2018-09-17  Yusuke Suzuki  <utatane.tea@gmail.com>
2920
2921         [WTF] Use Semaphore and BinarySemaphore instead of dispatch_semaphore_t
2922         https://bugs.webkit.org/show_bug.cgi?id=185339
2923
2924         Reviewed by Mark Lam.
2925
2926         This patch adds WTF::Semaphore, which is based on WTF::Lock and WTF::Condition.
2927
2928         * WTF.xcodeproj/project.pbxproj:
2929         * wtf/CMakeLists.txt:
2930         * wtf/Semaphore.h: Added.
2931         (WTF::Semaphore::Semaphore):
2932         (WTF::Semaphore::signal):
2933         (WTF::Semaphore::waitUntil):
2934         (WTF::Semaphore::waitFor):
2935         (WTF::Semaphore::wait):
2936         * wtf/generic/WorkQueueGeneric.cpp:
2937         (WorkQueue::platformInitialize):
2938         * wtf/threads/BinarySemaphore.cpp:
2939         (WTF::BinarySemaphore::waitUntil):
2940         (WTF::BinarySemaphore::wait): Deleted.
2941         * wtf/threads/BinarySemaphore.h:
2942         (WTF::BinarySemaphore::waitFor):
2943         (WTF::BinarySemaphore::wait):
2944         Align the names of the functions to WTF::Condition.
2945         Add BinarySemaphore::wait(), which is the same to waitUntil(WallTime::infinity()).
2946
2947 2018-09-17  Jer Noble  <jer.noble@apple.com>
2948
2949         Add support for HEVC codec types in Media Capabilities
2950         https://bugs.webkit.org/show_bug.cgi?id=189565
2951
2952         Reviewed by Eric Carlson.
2953
2954         Extract the toIntegralType template into its own header.
2955
2956         * wtf/CMakeLists.txt:
2957         * wtf/text/StringConversion.h: Added.
2958         (isCharacterAllowedInBase):
2959         (toIntegralType):
2960         * wtf/text/WTFString.cpp:
2961
2962 2018-09-17  Jer Noble  <jer.noble@apple.com>
2963
2964         Enable USE_MEDIAREMOTE on iOS
2965         https://bugs.webkit.org/show_bug.cgi?id=189096
2966
2967         Reviewed by Eric Carlson.
2968
2969         * wtf/Platform.h:
2970
2971 2018-09-17  Frederic Wang  <fwang@igalia.com>
2972
2973         Build error in ImageBufferCG when compiled with IOSurfacePool
2974         https://bugs.webkit.org/show_bug.cgi?id=189579
2975
2976         Reviewed by Tim Horton.
2977
2978         IOSurface.h might be included with different value of IOSURFACE_CANVAS_BACKING_STORE, causing
2979         compilation errors when files in the same unified source do not agree on the definition.
2980         This patch moves the definition of IOSURFACE_CANVAS_BACKING_STORE from ImageBufferDataCG.h
2981         to Platform.h so that IOSURFACE_CANVAS_BACKING_STORE is set to the same value in all files.
2982         Finally some minors changes to explicitly declare/define ImageBuffer are performed in order
2983         to prevent future issues with Unified build rotating.
2984
2985         * wtf/Platform.h: Move definition from ImageBufferDataCG.h.
2986
2987 2018-09-14  Ryan Haddad  <ryanhaddad@apple.com>
2988
2989         Unreviewed, rolling out r235990.
2990
2991         Introduced TestWebKitAPI.NowPlayingTest timeouts on iOS
2992
2993         Reverted changeset:
2994
2995         "Enable USE_MEDIAREMOTE on iOS"
2996         https://bugs.webkit.org/show_bug.cgi?id=189096
2997         https://trac.webkit.org/changeset/235990
2998
2999 2018-09-13  Jer Noble  <jer.noble@apple.com>
3000
3001         Enable USE_MEDIAREMOTE on iOS
3002         https://bugs.webkit.org/show_bug.cgi?id=189096
3003
3004         Reviewed by Eric Carlson.
3005
3006         * wtf/Platform.h:
3007
3008 2018-09-13  Alex Christensen  <achristensen@webkit.org>
3009
3010         Use a Variant instead of a union in CSSSelector
3011         https://bugs.webkit.org/show_bug.cgi?id=188559
3012
3013         Reviewed by Antti Koivisto.
3014
3015         * wtf/Variant.h:
3016         Add packing macros to make it so Variant-containing structures don't always have 7 bytes of padding per Variant.
3017
3018 2018-09-12  Guillaume Emont  <guijemont@igalia.com>
3019
3020         Add IGNORE_WARNING_.* macros
3021         https://bugs.webkit.org/show_bug.cgi?id=188996
3022
3023         Reviewed by Michael Catanzaro.
3024
3025         * wtf/Assertions.cpp:
3026         * wtf/Assertions.h:
3027         * wtf/Compiler.h:
3028         * wtf/MD5.cpp:
3029         (WTF::MD5::MD5):
3030         (WTF::MD5::addBytes):
3031         (WTF::MD5::checksum):
3032         * wtf/PrintStream.cpp:
3033         (WTF::PrintStream::printfVariableFormat):
3034         * wtf/SHA1.cpp:
3035         (WTF::SHA1::SHA1):
3036         (WTF::SHA1::addBytes):
3037         (WTF::SHA1::computeHash):
3038         * wtf/ThreadingPthreads.cpp:
3039         * wtf/Vector.h:
3040         (WTF::VectorBuffer::endOfBuffer):
3041         * wtf/text/WTFString.cpp:
3042         (WTF::createWithFormatAndArguments):
3043
3044 == Rolled over to ChangeLog-2018-09-11 ==