Reduce size of internal windows build output
[WebKit-https.git] / Source / WTF / ChangeLog
1 2016-03-01  Alex Christensen  <achristensen@webkit.org>
2
3         Reduce size of internal windows build output
4         https://bugs.webkit.org/show_bug.cgi?id=154763
5
6         Reviewed by Brent Fulgham.
7
8         * WTF.vcxproj/WTF.proj:
9
10 2016-03-01  Commit Queue  <commit-queue@webkit.org>
11
12         Unreviewed, rolling out r197056.
13         https://bugs.webkit.org/show_bug.cgi?id=154870
14
15         broke win ews (Requested by alexchristensen on #webkit).
16
17         Reverted changeset:
18
19         "[cmake] Moved PRE/POST_BUILD_COMMAND to WEBKIT_FRAMEWORK."
20         https://bugs.webkit.org/show_bug.cgi?id=154651
21         http://trac.webkit.org/changeset/197056
22
23 2016-02-29  Gavin Barraclough  <barraclough@apple.com>
24
25         RefCounter<T>::Event -> RefCounterEvent
26         https://bugs.webkit.org/show_bug.cgi?id=154767
27
28         Reviewed by Darin Adler.
29
30         RefCounter<T>::Event is kinda verbose to use, and there is no need for this
31         to be specific to a particular typeof RefCounter. Move the enum class up to
32         the top level & rename to RefCounterEvent.
33
34         * wtf/RefCounter.h:
35         (WTF::RefCounter<T>::Count::ref):
36         (WTF::RefCounter<T>::Count::deref):
37
38 2016-02-26  Oliver Hunt  <oliver@apple.com>
39
40         Remove the on demand executable allocator
41         https://bugs.webkit.org/show_bug.cgi?id=154749
42
43         Reviewed by Geoffrey Garen.
44
45         Remove the DeamndExecutableAllocator compile flags.
46
47         * wtf/Platform.h:
48
49 2016-02-26  Keith Rollin  <krollin@apple.com>
50
51         Enhance logging: Add "always on" macros
52         https://bugs.webkit.org/show_bug.cgi?id=154498
53         <rdar://problem/24757759>
54
55         Reviewed by Chris Dumez.
56
57         Add support for efficient always-on logging (logging that is available
58         in both debug and release builds). This is implemented in the form of
59         some new macros:
60
61         - LOG_ALWAYS: Always log information-level statements.
62         - LOG_ALWAYS_ERROR: Always log error-level statements. These can be
63           filtered out of the normal logging so that they can be found more
64           easily.
65
66         In cases where there is no efficient underlying facility for it to
67         utilize, LOG_ALWAYS_ERROR is redirected to WTFReportError as a backup
68         mechanism. LOG_ALWAYS is not given a similar treatment so that we
69         don't overwhelm other logging systems that aren't prepared for "always
70         on" logging.
71
72         * wtf/Assertions.h:
73         * wtf/Platform.h:
74
75 2016-02-26  Anders Carlsson  <andersca@apple.com>
76
77         Add WTF::OptionSet and use it for the website data types enum
78         https://bugs.webkit.org/show_bug.cgi?id=154733
79
80         Reviewed by Geoffrey Garen.
81
82         Add WTF::OptionSet which makes it easier to use strong enums as flags.
83
84         * WTF.xcodeproj/project.pbxproj:
85         * wtf/Forward.h:
86         * wtf/OptionSet.h: Copied from Source/WebKit2/Shared/WebsiteData/WebsiteData.h.
87         (WTF::OptionSet::fromRaw):
88         (WTF::OptionSet::OptionSet):
89         (WTF::OptionSet::toRaw):
90         (WTF::OptionSet::contains):
91         (WTF::OptionSet::operator|=):
92
93 2016-02-26  Commit Queue  <commit-queue@webkit.org>
94
95         Unreviewed, rolling out r197168.
96         https://bugs.webkit.org/show_bug.cgi?id=154728
97
98         crashing on some devices (Requested by kling on #webkit).
99
100         Reverted changeset:
101
102         "[Darwin] Use vm_kernel_page_size for WTF::pageSize()."
103         https://bugs.webkit.org/show_bug.cgi?id=154726
104         http://trac.webkit.org/changeset/197168
105
106 2016-02-26  Andreas Kling  <akling@apple.com>
107
108         [Darwin] Use vm_kernel_page_size for WTF::pageSize().
109         <https://webkit.org/b/154726>
110
111         Reviewed by Antti Koivisto.
112
113         Make sure we use the right VM page size on Darwin systems.
114         On devices where the native page size is 4 KB, it's both
115         possible and profitable to madvise in smaller chunks.
116
117         * wtf/PageBlock.cpp:
118         (WTF::systemPageSize):
119
120 2016-02-25  Gavin Barraclough  <barraclough@apple.com>
121
122         RefCounter value changed callback should be called on all changes (not just zero edge).
123         https://bugs.webkit.org/show_bug.cgi?id=154699
124
125         Reviewed by Anders Carlsson.
126
127         RefCounter currently only triggers a callback when the count goes from zero
128         to non-zero and vice-versa. Change that, to be useful to more clients.
129
130         * wtf/RefCounter.h:
131         (WTF::RefCounter::Count::Count):
132         (WTF::RefCounter::RefCounter):
133             - Removed superfluous WTF_EXPORT_PRIVATE.
134         (WTF::RefCounter::value):
135             - Changed value() to a size_t.
136         (WTF::RefCounter<T>::Count::ref):
137         (WTF::RefCounter<T>::Count::deref):
138             - Trigger the callback on all increments/decrements.
139         (WTF::RefCounter<T>::RefCounter):
140             - Changed siganture of callback.
141
142 2016-02-25  Gavin Barraclough  <barraclough@apple.com>
143
144         Replace RefCounter::Token implementation with RefPtr
145         https://bugs.webkit.org/show_bug.cgi?id=154698
146
147         Reviewed by Anders Carlsson.
148
149         * wtf/RefCounter.h:
150         (WTF::RefCounter::RefCounter):
151         (WTF::RefCounter::count):
152         (WTF::RefCounter::value):
153         (WTF::RefCounter<T>::~RefCounter):
154         (WTF::RefCounter::Token::Token): Deleted.
155         (WTF::RefCounter::Token::operator bool): Deleted.
156         (WTF::RefCounter<T>::Token::Token): Deleted.
157         (WTF::=): Deleted.
158             - Delete.
159
160 2016-02-25  Gavin Barraclough  <barraclough@apple.com>
161
162         Should template RefCounter instead of RefCounter::Token
163         https://bugs.webkit.org/show_bug.cgi?id=154691
164
165         Speculative windows build fix.
166
167         * wtf/RefCounter.h:
168         (WTF::RefCounter::RefCounter):
169         (WTF::RefCounter::count):
170
171 2016-02-25  Commit Queue  <commit-queue@webkit.org>
172
173         Unreviewed, rolling out r197137.
174         https://bugs.webkit.org/show_bug.cgi?id=154700
175
176         broke windows build (Requested by alexchristensen on #webkit).
177
178         Reverted changeset:
179
180         "Replace RefCounter::Token implementation with RefPtr"
181         https://bugs.webkit.org/show_bug.cgi?id=154698
182         http://trac.webkit.org/changeset/197137
183
184 2016-02-25  Gavin Barraclough  <barraclough@apple.com>
185
186         Replace RefCounter::Token implementation with RefPtr
187         https://bugs.webkit.org/show_bug.cgi?id=154698
188
189         Reviewed by Anders Carlsson.
190
191         * wtf/RefCounter.h:
192         (WTF::RefCounter::RefCounter):
193         (WTF::RefCounter::count):
194         (WTF::RefCounter::value):
195         (WTF::RefCounter<T>::~RefCounter):
196         (WTF::RefCounter::Token::Token): Deleted.
197         (WTF::RefCounter::Token::operator bool): Deleted.
198         (WTF::RefCounter<T>::Token::Token): Deleted.
199         (WTF::=): Deleted.
200             - Delete.
201
202 2016-02-25  Gavin Barraclough  <barraclough@apple.com>
203
204         Should template RefCounter instead of RefCounter::Token
205         https://bugs.webkit.org/show_bug.cgi?id=154691
206
207         Reviewed by Anders Carlsson.
208
209         My real goal here is to make the counter accurate. Currently returning a Token from token<>()
210         results in ref-count churn. Fixing this either means changing the return value, or improving
211         Token (which will probably mean replacing it with RefPtr). Either way would break the current
212         type checking. Move type tag to RefCount so this can still be enforced.
213
214         * WTF.vcxproj/WTF.vcxproj:
215         * WTF.vcxproj/WTF.vcxproj.filters:
216         * WTF.xcodeproj/project.pbxproj:
217         * wtf/CMakeLists.txt:
218         * wtf/RefCounter.cpp: Removed.
219             - Removed RefCounter.cpp.
220         * wtf/RefCounter.h:
221         (WTF::RefCounter::Token::Token):
222         (WTF::RefCounter::Token::operator bool):
223         (WTF::RefCounter::RefCounter):
224         (WTF::RefCounter::count):
225         (WTF::RefCounter::value):
226         (WTF::RefCounter<T>::Count::ref):
227         (WTF::RefCounter<T>::Count::deref):
228         (WTF::RefCounter<T>::RefCounter):
229         (WTF::RefCounter<T>::~RefCounter):
230         (WTF::RefCounter<T>::Token::Token):
231         (WTF::=):
232         (WTF::RefCounter::token): Deleted.
233         (WTF::RefCounter::Token<T>::Token): Deleted.
234             - RefCounter -> RefCounter<T>,
235             - Token<T> -> Token,
236             - renamed token<>() -> count().
237
238 2016-02-25  Sam Weinig  <sam@webkit.org>
239
240         HashMap::ensure() should return an AddResult like all the other add-like functions.
241         https://bugs.webkit.org/show_bug.cgi?id=154680
242
243         Reviewed by Anders Carlsson.
244
245         While adopting HashMap::ensure(), I found it was useful in some circumstances to know
246         if the value was added or not. While I could discern this information by setting a bool
247         in the passed in lambda, it seemed clearer and more idiomatic to just have ensure return
248         an AddResult like all the other add-like functions do.
249
250         * wtf/HashMap.h:
251         Change return type of HashMap::ensure() to be an AddResult.
252
253 2016-02-24  Nikos Andronikos  <nikos.andronikos-webkit@cisra.canon.com.au>
254
255         [web-animations] Add AnimationTimeline, DocumentTimeline and add extensions to Document interface
256         https://bugs.webkit.org/show_bug.cgi?id=151688
257
258         Reviewed by Dean Jackson.
259
260         Enables the WEB_ANIMATIONS compiler switch.
261
262         * wtf/FeatureDefines.h:
263
264 2016-02-24  Konstantin Tokarev  <annulen@yandex.ru>
265
266         [cmake] Moved PRE/POST_BUILD_COMMAND to WEBKIT_FRAMEWORK.
267         https://bugs.webkit.org/show_bug.cgi?id=154651
268
269         Reviewed by Alex Christensen.
270
271         * CMakeLists.txt: Moved shared code to WEBKIT_FRAMEWORK macro.
272
273 2016-02-23  Dan Bernstein  <mitz@apple.com>
274
275         [Xcode] Linker errors display mangled names, but no longer should
276         https://bugs.webkit.org/show_bug.cgi?id=154632
277
278         Reviewed by Sam Weinig.
279
280         * Configurations/Base.xcconfig: Stop setting LINKER_DISPLAYS_MANGLED_NAMES to YES.
281
282 2016-02-23  Gavin Barraclough  <barraclough@apple.com>
283
284         Remove HIDDEN_PAGE_DOM_TIMER_THROTTLING feature define
285         https://bugs.webkit.org/show_bug.cgi?id=112323
286
287         Reviewed by Chris Dumez.
288
289         This feature is controlled by a runtime switch, and defaults off.
290
291         * wtf/FeatureDefines.h:
292
293 2016-02-22  Konstantin Tokarev  <annulen@yandex.ru>
294
295         [cmake] Moved library setup code to WEBKIT_FRAMEWORK macro.
296         https://bugs.webkit.org/show_bug.cgi?id=154450
297
298         Reviewed by Alex Christensen.
299
300         * wtf/CMakeLists.txt:
301
302 2016-02-20  Mark Lam  <mark.lam@apple.com>
303
304         Use of inlined asm statements causes problems for -std=c99 builds.
305         https://bugs.webkit.org/show_bug.cgi?id=154507
306
307         Reviewed by Dan Bernstein.
308
309         WTF's Assertions.h may inadvertantly get included by other projects that are built
310         with -std=c99.  The use of the inlined asm statements with the keyword "asm" is
311         not recognized when the -std compiler flag is used.
312
313         https://gcc.gnu.org/onlinedocs/gcc/Extended-Asm.html says "When writing code that
314         can be compiled with -ansi and the various -std options, use __asm__ instead of
315         asm (see Alternate Keywords)."
316
317         So, to be a good citizen, we can change the use of "asm" in CRASH() to "__asm__"
318         so that we don't break the build of such other projects.
319
320         * wtf/Assertions.h:
321
322 2016-02-18  Brent Fulgham  <bfulgham@apple.com>
323
324         Extend HashCountedSet with a method to efficiently set the count of an entry
325         https://bugs.webkit.org/show_bug.cgi?id=154352
326
327         Reviewed by Geoffrey Garen.
328
329         Tested by new TestWebKitAPI tests.
330
331         Update the HashCountedSet class with a new 'add' method to support efficient initialization of
332         the count of a given key. Also provide move and pointer template specializations to expand the
333         types of data that can be used as 'keys' in the HashCountedSet to match the underlying HashMap
334         implementation.
335
336         * wtf/HashCountedSet.h:
337         (WTF::Traits>::add): Added new overload supporting a supplied count.
338
339 2016-02-18  Commit Queue  <commit-queue@webkit.org>
340
341         Unreviewed, rolling out r196791.
342         https://bugs.webkit.org/show_bug.cgi?id=154438
343
344         broke windows build (Requested by alexchristensen on #webkit).
345
346         Reverted changeset:
347
348         "Extend HashCountedSet with a method to efficiently set the
349         count of an entry"
350         https://bugs.webkit.org/show_bug.cgi?id=154352
351         http://trac.webkit.org/changeset/196791
352
353 2016-02-18  Brent Fulgham  <bfulgham@apple.com>
354
355         Extend HashCountedSet with a method to efficiently set the count of an entry
356         https://bugs.webkit.org/show_bug.cgi?id=154352
357
358         Reviewed by Geoffrey Garen.
359
360         Tested by new TestWebKitAPI tests.
361
362         Update the HashCountedSet class with a new 'add' method to support efficient initialization of
363         the count of a given key. Also provide move and pointer template specializations to expand the
364         types of data that can be used as 'keys' in the HashCountedSet to match the underlying HashMap
365         implementation.
366
367         * wtf/HashCountedSet.h:
368         (WTF::Traits>::add): Added new overload supporting a supplied count.
369
370 2016-02-17  Filip Pizlo  <fpizlo@apple.com>
371
372         Remove LLVM dependencies from WebKit
373         https://bugs.webkit.org/show_bug.cgi?id=154323
374
375         Reviewed by Antti Koivisto and Benjamin Poulain.
376
377         * wtf/Platform.h:
378
379 2016-02-16  Sam Weinig  <sam@webkit.org>
380
381         Add an ensure function on HashMap that takes a key and a function to make the lazy value initialization idiom easier
382         https://bugs.webkit.org/show_bug.cgi?id=134857
383
384         Reviewed by Geoffrey Garen.
385
386         The current idiom for adding a value to a HashMap if the key is not already present, to allow for not
387         unnecessarily constructing the new value if it won't be used, is:
388         
389         {
390             auto result = map.add(key, Value());
391             if (!result.isNewEntry)
392                 return result.iterator->value;
393
394             result.iterator->value = createNewValue();
395             return result.iterator->value;
396         }
397
398         or sometimes
399
400         {
401             auto& value = map.add(key, Value()).iterator->value;
402             if (!value)
403                 value = createNewValue();
404             return value;
405         }
406
407         With this patch, you can now use the new function HashMap::ensure(key, functor). This will allow us to 
408         change to using the following idiom:
409
410         {
411             return map.ensure(key, [] { return createNewValue(); });
412         }
413
414         The passed in functor will only be called if the key is not already present in the HashMap.
415
416         * wtf/HashMap.h:
417         (WTF::HashMapTranslator::translate):
418         (WTF::HashMapEnsureTranslator::hash):
419         (WTF::HashMapEnsureTranslator::equal):
420         (WTF::HashMapEnsureTranslator::translate):
421         (WTF::HashMapTranslatorAdapter::hash):
422
423 2016-02-16  Filip Pizlo  <fpizlo@apple.com>
424
425         FTL_USES_B3 should be unconditionally true
426         https://bugs.webkit.org/show_bug.cgi?id=154324
427
428         Reviewed by Benjamin Poulain.
429
430         * wtf/Platform.h:
431
432 2016-02-13  Mark Lam  <mark.lam@apple.com>
433
434         Eliminate the need for WTFCrashImpl().
435         https://bugs.webkit.org/show_bug.cgi?id=154202
436
437         Reviewed by Alexey Proskuryakov.
438
439         * wtf/Assertions.cpp:
440         * wtf/Assertions.h:
441
442 2016-02-12  Sukolsak Sakshuwong  <sukolsak@gmail.com>
443
444         Update ICU header files to version 52
445         https://bugs.webkit.org/show_bug.cgi?id=154160
446
447         Reviewed by Alex Christensen.
448
449         Update ICU header files to version 52 to allow the use of newer APIs.
450
451         * icu/unicode/bytestream.h:
452         * icu/unicode/localpointer.h:
453         * icu/unicode/platform.h:
454         * icu/unicode/ptypes.h:
455         * icu/unicode/putil.h:
456         * icu/unicode/rep.h:
457         (Replaceable::Replaceable):
458         * icu/unicode/std_string.h:
459         * icu/unicode/strenum.h:
460         * icu/unicode/stringpiece.h:
461         * icu/unicode/uchar.h:
462         * icu/unicode/ucnv.h:
463         * icu/unicode/ucol.h:
464         * icu/unicode/uconfig.h:
465         * icu/unicode/uenum.h:
466         * icu/unicode/uiter.h:
467         * icu/unicode/uloc.h:
468         * icu/unicode/umachine.h:
469         * icu/unicode/unistr.h:
470         (UnicodeString::UnicodeString):
471         (UnicodeString::operator== ):
472         (UnicodeString::startsWith):
473         (UnicodeString::setTo):
474         (UnicodeString::remove):
475         (UnicodeString::replace): Deleted.
476         (UnicodeString::extract): Deleted.
477         (UnicodeString::char32At): Deleted.
478         (UnicodeString::getChar32Start): Deleted.
479         (UnicodeString::getChar32Limit): Deleted.
480         (UnicodeString::getTerminatedBuffer): Deleted.
481         (UnicodeString::append): Deleted.
482         (UnicodeString::truncate): Deleted.
483         * icu/unicode/unorm2.h:
484         * icu/unicode/uobject.h:
485         * icu/unicode/urename.h:
486         * icu/unicode/uscript.h:
487         * icu/unicode/uset.h:
488         * icu/unicode/ustring.h:
489         * icu/unicode/utf.h:
490         * icu/unicode/utf16.h:
491         * icu/unicode/utf8.h:
492         * icu/unicode/utf_old.h:
493         * icu/unicode/utypes.h:
494         * icu/unicode/uvernum.h:
495         * icu/unicode/uversion.h:
496
497 2016-02-11  Mark Lam  <mark.lam@apple.com>
498
499         Need WTFCrash workaround for shipping SafariForWebKitDevelopment binaries.
500         https://bugs.webkit.org/show_bug.cgi?id=154125
501
502         Reviewed by Joseph Pecoraro.
503
504         Presently shipping SafariForWebKitDevelopment binaries still expect to link to a
505         WTFCrash function.  We need to provide this function as a workaround until we can
506         update SafariForWebKitDevelopment to use the new inlined version.
507
508         We do this by doing:
509         1. Make WTFCrashImpl() the sole function for implementing a crash.
510            The CRASH() macro is now defined to be WTFCrashImpl() instead of WTFCrash().
511         2. Renamed the legacy WTFCrash() to WTFCrashImpl() for debug or non-Darwin builds.
512            For (non-debug && OS(DARWIN)) builds, WTFCrashImpl() will be an inlined
513            function with an asm statement that issues a breakpoint trap.
514         3. Implement WTFCrash() as a function that calls CRASH().
515            This satisfies the need of shipping SafariForWebKitDevelopment binaries.
516         4. Change WTFCrashWithSecurityImplication() to call CRASH().
517            This ensures that we have a consistent implementation of how we crash.
518         5. Changed WTFLogAlwaysAndCrash() to call CRASH() instead of WTFCrash().
519            This is just to have consistency in that all code in the WebKit project
520            now crashes by calling CRASH(), not WTFCrash().
521
522         * wtf/Assertions.cpp:
523         * wtf/Assertions.h:
524
525 2016-02-09  Mark Lam  <mark.lam@apple.com>
526
527         Changed WTFCrash to not trash the crash site register state.
528         https://bugs.webkit.org/show_bug.cgi?id=153996
529
530         Reviewed by Geoffrey Garen.
531
532         When doing post-mortem crash site analysis using data from crash reports, it is
533         immensely valuable to be able to infer the crashing program's state from the
534         register values at crash time.  However, for RELEASE_ASSERT failures, we crash
535         using WTFCrash(), and WTFCrash() is currently implemented as a function call
536         that, in turn, calls a lot of other functions to do crash handling before
537         actually crashing.  As a result, the register values captured in the crash
538         reports are not likely to still contain the values used by the caller function
539         that failed the RELEASE_ASSERT.
540
541         This patch aims to remedy this issue for non-debug builds on OS(DARWIN) ports.
542         It does so by changing WTFCrash() into an inlined function that has an inlined
543         asm statement to issues the CPU specific breakpoint trap instruction.  As a
544         result, for non-debug OS(DARWIN) builds, crashes due to failed RELEASE_ASSERTs
545         will now show up in crash reports as crashing due to EXC_BREAKPOINT (SIGTRAP)
546         instead of a EXC_BAD_ACCESS (SIGSEGV) on address 0xbbadbeef.
547
548         For debug and non-DARWIN builds, WTFCrash() behavior currently remains unchanged.
549
550         * wtf/Assertions.cpp:
551         * wtf/Assertions.h:
552
553 2016-02-09  Csaba Osztrogonác  <ossy@webkit.org>
554
555         [GTK][EFL] Fix several build configuration related to SamplingProfiler after r196245
556         https://bugs.webkit.org/show_bug.cgi?id=154033
557
558         Reviewed by Michael Catanzaro.
559
560         * wtf/Platform.h:
561
562 2016-02-08  Filip Pizlo  <fpizlo@apple.com>
563
564         Make sure that locking code that relies on module boundaries for compiler fences uses NEVER_INLINE
565         https://bugs.webkit.org/show_bug.cgi?id=153972
566
567         Reviewed by Andreas Kling.
568
569         When this code was written, we assumed that module boundaries were compiler fences. That might
570         not be the case if we ever do LTO.
571
572         * wtf/Lock.cpp:
573         (WTF::LockBase::lockSlow):
574         (WTF::LockBase::unlockSlow):
575         * wtf/ParkingLot.cpp:
576         (WTF::ParkingLot::parkConditionally):
577         (WTF::ParkingLot::unparkOne):
578         (WTF::ParkingLot::unparkAll):
579         (WTF::ParkingLot::forEach):
580         * wtf/WordLock.cpp:
581         (WTF::WordLock::lockSlow):
582         (WTF::WordLock::unlockSlow):
583
584 2016-02-07  Yusuke Suzuki  <utatane.tea@gmail.com>
585
586         [GTK][EFL] Enable SamplingProfiler
587         https://bugs.webkit.org/show_bug.cgi?id=153638
588
589         Reviewed by Michael Catanzaro.
590
591         * wtf/Platform.h:
592
593 2016-02-07  Dan Bernstein  <mitz@apple.com>
594
595         [Cocoa] Replace __has_include guards around inclusion of Apple-internal-SDK headers with USE(APPLE_INTERNAL_SDK)
596         https://bugs.webkit.org/show_bug.cgi?id=153963
597
598         Reviewed by Sam Weinig.
599
600         * wtf/SystemTracing.h:
601         * wtf/WTFThreadData.h:
602         * wtf/spi/darwin/CommonCryptoSPI.h:
603
604 2016-02-06  Darin Adler  <darin@apple.com>
605
606         Finish auditing call sites of upper() and lower(), eliminate many, and rename the functions
607         https://bugs.webkit.org/show_bug.cgi?id=153905
608
609         Reviewed by Sam Weinig.
610
611         * wtf/text/AtomicString.cpp:
612         (WTF::AtomicString::lower): Deleted.
613         * wtf/text/AtomicString.h: Deleted the lower function.
614
615         * wtf/text/StringImpl.cpp:
616         (WTF::StringImpl::convertToLowercaseWithoutLocale): Renamed from lower.
617         (WTF::StringImpl::convertToUppercaseWithoutLocale): Renamed from upper.
618         (WTF::StringImpl::convertToLowercaseWithLocale): Renamed from lower.
619         (WTF::StringImpl::convertToUppercaseWithLocale): Renamed from upper.
620         (WTF::StringImpl::foldCase): Added fast cases for ASCII since this is
621         now used in some more-performance-critical code.
622         * wtf/text/StringImpl.h: Renamed lower and upper.
623
624         * wtf/text/WTFString.cpp:
625         (WTF::String::convertToLowercaseWithoutLocale): Renamed from lower.
626         (WTF::String::convertToUppercaseWithoutLocale): Renamed from upper.
627         (WTF::String::convertToLowercaseWithLocale): Renamed from lower.
628         (WTF::String::convertToUppercaseWithLocale): Renamed from upper.
629         * wtf/text/WTFString.h: Renamed lower and upper. Removed unneeded comment.
630
631 2016-02-03  Darin Adler  <darin@apple.com>
632
633         Convert another batch of String::lower callsites to something better, typically convertToASCIILowercase
634         https://bugs.webkit.org/show_bug.cgi?id=153789
635
636         Reviewed by Sam Weinig.
637
638         * wtf/text/StringView.h:
639         (WTF::StringView::toInt): Added an overload without the out parameter.
640
641 2016-02-03  Michael Catanzaro  <mcatanzaro@igalia.com>
642
643         [GTK][EFL] Switch FTL to B3
644         https://bugs.webkit.org/show_bug.cgi?id=153478
645
646         Reviewed by Csaba Osztrogonác.
647
648         Enable B3 by default on all x86.
649
650         * wtf/Platform.h:
651
652 2016-02-03  Anders Carlsson  <andersca@apple.com>
653
654         Fix BlockPtr's call operator
655         https://bugs.webkit.org/show_bug.cgi?id=153836
656
657         Reviewed by Enrica Casucci.
658
659         * wtf/BlockPtr.h:
660
661 2016-02-01  Said Abou-Hallawa  <sabouhallawa@apple.com>
662
663         Cache the Path instead of creating it every time it is required
664         https://bugs.webkit.org/show_bug.cgi?id=152939
665
666         Reviewed by Darin Adler.
667
668         If the key type of an LRU cache can't to be strongly tided to a specific
669         data type; e.g. FloatRect -> Path, we need to be able to pass the policy
670         type to the TinyLRUCache template instead of just specializing it. This
671         will make the code more readable and will allow different caches for the
672         same key type.
673
674         * wtf/TinyLRUCache.h:
675         (WebCore::TinyLRUCache::get):
676
677 2016-02-01  Alex Christensen  <achristensen@webkit.org>
678
679         [Win] WTFHeaderDetection.h no longer needed
680         https://bugs.webkit.org/show_bug.cgi?id=153753
681         rdar://problem/24434627
682
683         Reviewed by Darin Adler.
684
685         * wtf/Platform.h:
686         * wtf/PlatformWin.cmake:
687
688 2016-01-31  Darin Adler  <darin@apple.com>
689
690         Cut down on calls to String::lower; mostly replace with convertToASCIILowercase
691         https://bugs.webkit.org/show_bug.cgi?id=153732
692
693         Reviewed by Dean Jackson.
694
695         * wtf/text/StringView.h: Added toIntStrict. Not thrilled about the name of this
696         function, but generally it seems likely to be useful more often than toInt.
697         And it's needed for one call site in WebCore that was using String::lower.
698
699 2016-01-31  Darin Adler  <darin@apple.com>
700
701         Get rid of most calls to String::upper; mostly replace them with convertToASCIIUppercase
702         https://bugs.webkit.org/show_bug.cgi?id=153715
703
704         Reviewed by Gyuyoung Kim.
705
706         * wtf/text/AtomicString.h:
707         (WTF::AtomicString::upper): Deleted.
708
709 2016-01-31  Dan Bernstein  <mitz@apple.com>
710
711         [Cocoa] Remove unused definition of HAVE_HEADER_DETECTION_H
712         https://bugs.webkit.org/show_bug.cgi?id=153729
713
714         Reviewed by Sam Weinig.
715
716         After r141700, HAVE_HEADER_DETECTION_H is no longer used.
717
718         * Configurations/Base.xcconfig:
719
720 2016-01-31  Darin Adler  <darin@apple.com>
721
722         Replace CaseFoldingHash with ASCIICaseInsensitiveHash
723         https://bugs.webkit.org/show_bug.cgi?id=153639
724
725         Reviewed by Filip Pizlo.
726
727         * wtf/text/StringHash.h: Renamed CaseFoldingHash to ASCIICaseInsensitiveHash.
728         (WTF::ASCIICaseInsensitiveHash::foldCase): Use toASCIILower.
729         (WTF::ASCIICaseInsensitiveHash::equal): Use equalIgnoringASCIICase.
730         Also added some assertions.
731
732         * wtf/text/StringImpl.cpp: Made the latin1CaseFoldTable private to this file,
733         since it's no longer needed by CaseFoldingHash. Moved it up before its first use.
734         (WTF::equalCompatibilityCaseless): Fixed typo in the name of this function.
735         (WTF::equalCompatibiltyCaselessNonNull): Deleted.
736
737         * wtf/text/StringImpl.h: Removed declarations of latin1CaseFoldTable and
738         equalCompatibiltyCaselessNonNull
739
740 2016-01-30  Commit Queue  <commit-queue@webkit.org>
741
742         Unreviewed, rolling out r195911.
743         https://bugs.webkit.org/show_bug.cgi?id=153723
744
745         Caused frequent assertion failures on bots (Requested by ap on
746         #webkit).
747
748         Reverted changeset:
749
750         "Replace CaseFoldingHash with ASCIICaseInsensitiveHash"
751         https://bugs.webkit.org/show_bug.cgi?id=153639
752         http://trac.webkit.org/changeset/195911
753
754 2016-01-30  Darin Adler  <darin@apple.com>
755
756         Replace CaseFoldingHash with ASCIICaseInsensitiveHash
757         https://bugs.webkit.org/show_bug.cgi?id=153639
758
759         Reviewed by Filip Pizlo.
760
761         * wtf/text/StringHash.h: Renamed CaseFoldingHash to ASCIICaseInsensitiveHash.
762         (WTF::ASCIICaseInsensitiveHash::foldCase): Use toASCIILower.
763         (WTF::ASCIICaseInsensitiveHash::equal): Use equalIgnoringASCIICase.
764         Also added some assertions.
765
766         * wtf/text/StringImpl.cpp: Made the latin1CaseFoldTable private to this file,
767         since it's no longer needed by CaseFoldingHash. Moved it up before its first use.
768         (WTF::equalCompatibilityCaseless): Fixed typo in the name of this function.
769         (WTF::equalCompatibiltyCaselessNonNull): Deleted.
770
771         * wtf/text/StringImpl.h: Removed declarations of latin1CaseFoldTable and
772         equalCompatibiltyCaselessNonNull
773
774 2016-01-29  Ada Chan  <adachan@apple.com>
775
776         Enable VIDEO_PRESENTATION_MODE only in Debug and Release builds on Mac
777         https://bugs.webkit.org/show_bug.cgi?id=153665
778
779         Reviewed by Dan Bernstein.
780
781         * wtf/Platform.h:
782         Remove this as the flag is already defined in FeatureDefines.xcconfig files.
783
784 2016-01-30  Yusuke Suzuki  <utatane.tea@gmail.com>
785
786         Enable SamplingProfiler on POSIX environment
787         https://bugs.webkit.org/show_bug.cgi?id=153584
788
789         Reviewed by Michael Saboff.
790
791         Use __GLIBC__ since mcontext_t layout depends on it.
792
793         * wtf/Platform.h:
794
795 2016-01-28  Darin Adler  <darin@apple.com>
796
797         Remove equalIgnoringCase since all callers really wanted equalIgnoringASCIICase
798         https://bugs.webkit.org/show_bug.cgi?id=153411
799
800         Reviewed by Ryosuke Niwa.
801
802         * wtf/text/AtomicString.h: Removed equalIgnoringCase.
803         Added some overloads for equalIgnoringASCIICase and moved the function bodies to
804         bottom of the file to make the function declarations easier to read and scan through.
805         I plan to do this for more of the functions in this class in the future.
806
807         * wtf/text/StringCommon.h: Added overloads for equalIgnoringASCIICase,
808         equalPossiblyIgnoringASCIICase, and a helper named equalIgnoringASCIICaseCommon.
809         Added an overload for equalLettersIgnoringASCIICase.
810
811         * wtf/text/StringImpl.cpp:
812         (WTF::equalIgnoringCase): Made the few remaining versions of this function private
813         to this file. Once we get done moving every client that should be using ASCII case
814         instead to new functions, these will almost certainly be deleted.
815         (WTF::equalIgnoringASCIICaseNonNull): Tweaked implementation a tiny bit.
816
817         * wtf/text/StringImpl.h: Sorted forward declarations at the top of the file.
818         Fixed some small formatting mistakes. Removed equalIgnoringCase, but left
819         equalIgnoringCaseNonNull behind for use by CaseFoldingHash until it is replaced
820         with ASCIICaseFoldingHash. Improved equalIgnoringASCIICase implementation.
821         Removed unneeded using for equalIgnoringASCIICase now that StringCommon.h takes
822         care of it.
823
824         * wtf/text/StringView.cpp:
825         (WTF::equalIgnoringASCIICase): Deleted. We no longer pass in the length for this,
826         so the arguments have changed and the implementation is also now in ASCIICommon.h
827         so it's an inline in the header file.
828
829         * wtf/text/StringView.h: Added an overload of equalIgnoringASCIICase,while
830         removing another.
831
832         * wtf/text/WTFString.h: Removed some unneeded forward delcarations. Fixed formatting
833         of the type name NSString *. Improved some comments. Removed equalIgnoringCase.
834         Separated declaration from implementation in a few cases to start making the
835         function declarations easier to read and scan through. I plan to do more in the future.
836
837 2016-01-27  Chris Dumez  <cdumez@apple.com>
838
839         window.atob() should ignore spaces in input
840         https://bugs.webkit.org/show_bug.cgi?id=153522
841         <rdar://problem/24357822>
842
843         Reviewed by Benjamin Poulain.
844
845         Turn Base64DecodePolicy enum into flags so that the caller can indicate
846         to both validate padding AND ignore spaces.
847
848         Also make sure that the output Vector size is properly shrunk when
849         spaces are ignored.
850
851         * wtf/text/Base64.cpp:
852         (WTF::base64DecodeInternal):
853         (WTF::base64Decode):
854         (WTF::base64URLDecode):
855         * wtf/text/Base64.h:
856
857 2016-01-27  Alexey Proskuryakov  <ap@apple.com>
858
859         Remove ENABLE_CURRENTSRC
860         https://bugs.webkit.org/show_bug.cgi?id=153545
861
862         Reviewed by Simon Fraser.
863
864         * wtf/FeatureDefines.h:
865
866 2016-01-26  I-Ting Liu  <iting_liu@apple.com>
867
868         Implement wildcard matching for plug-in policy host.
869         https://bugs.webkit.org/show_bug.cgi?id=153090
870
871         Reviewed by Darin Adler.
872
873         * wtf/text/AtomicString.h:
874         (WTF::AtomicString::AtomicString):
875         Add __bridge to allow compilation.
876
877 2016-01-26  Joseph Pecoraro  <pecoraro@apple.com>
878
879         Generalize ResourceUsageData gathering to be used outside of ResourceUsageOverlay
880         https://bugs.webkit.org/show_bug.cgi?id=153509
881         <rdar://problem/24354291>
882
883         Reviewed by Andreas Kling.
884
885         * wtf/Platform.h:
886         Rename the ENABLE flag.
887
888 2016-01-26  Yusuke Suzuki  <utatane.tea@gmail.com>
889
890         Make HashTable iterators STL iterators compatible
891         https://bugs.webkit.org/show_bug.cgi?id=153512
892
893         Reviewed by Alex Christensen.
894
895         While r178581 makes many hash table iterators STL compatible, still several iterators are not.
896         This patch fixes that; inheriting std::iterator correctly to meet STL iterator requirements (like iterator_category etc.)
897         It could recover Windows build failure.
898
899         * wtf/HashTable.h:
900
901 2016-01-26  Anders Carlsson  <andersca@apple.com>
902
903         BlockPtr needs boolean operators
904         https://bugs.webkit.org/show_bug.cgi?id=153506
905
906         Reviewed by Tim Horton.
907
908         * wtf/BlockPtr.h:
909
910 2016-01-25  Filip Pizlo  <fpizlo@apple.com>
911
912         FTLB3Output should maintain good block order like the LLVM one does
913         https://bugs.webkit.org/show_bug.cgi?id=152222
914
915         Reviewed by Geoffrey Garen.
916
917         In the FTL we need to be able to construct a list by inserting elements before other
918         specific elements. We didn't already have a scalable way to do this, so this adds such a
919         data structure to WTF. This also has changes to SentinelLinkedList to make it support
920         these kinds of insertions.
921
922         * WTF.xcodeproj/project.pbxproj:
923         * wtf/OrderMaker.h: Added.
924         (WTF::OrderMaker::Node::Node):
925         (WTF::OrderMaker::OrderMaker):
926         (WTF::OrderMaker::prepend):
927         (WTF::OrderMaker::append):
928         (WTF::OrderMaker::insertBefore):
929         (WTF::OrderMaker::insertAfter):
930         (WTF::OrderMaker::iterator::iterator):
931         (WTF::OrderMaker::iterator::operator*):
932         (WTF::OrderMaker::iterator::operator++):
933         (WTF::OrderMaker::iterator::operator==):
934         (WTF::OrderMaker::iterator::operator!=):
935         (WTF::OrderMaker::begin):
936         (WTF::OrderMaker::end):
937         (WTF::OrderMaker::newNode):
938         * wtf/SentinelLinkedList.h:
939         (WTF::BasicRawSentinelNode::isOnList):
940         (WTF::BasicRawSentinelNode<T>::remove):
941         (WTF::BasicRawSentinelNode<T>::prepend):
942         (WTF::BasicRawSentinelNode<T>::append):
943         (WTF::RawNode>::SentinelLinkedList):
944         (WTF::RawNode>::push):
945         (WTF::RawNode>::append):
946         (WTF::RawNode>::remove):
947         (WTF::RawNode>::prepend):
948         (WTF::RawNode>::isOnList):
949
950 2016-01-25  Alex Christensen  <achristensen@webkit.org>
951
952         [Win] Copy forwarding headers before building a project
953         https://bugs.webkit.org/show_bug.cgi?id=153434
954
955         Reviewed by Brent Fulgham.
956
957         * wtf/CMakeLists.txt:
958         * wtf/PlatformWin.cmake:
959
960 2016-01-20  Ryosuke Niwa  <rniwa@webkit.org>
961
962         HTMLElement::nodeName should not upper case non-ASCII characters
963         https://bugs.webkit.org/show_bug.cgi?id=153231
964
965         Reviewed by Darin Adler.
966
967         Added convertToASCIIUppercase to AtomicString, String, and StringImpl. 
968
969         * wtf/text/AtomicString.cpp:
970         (WTF::AtomicString::convertASCIICase): Generalized from convertToASCIILowercase.
971         (WTF::AtomicString::convertToASCIILowercase):
972         (WTF::AtomicString::convertToASCIIUppercase):
973         * wtf/text/AtomicString.h:
974         * wtf/text/StringImpl.cpp:
975         (WTF::StringImpl::convertASCIICase): Generalized from convertToASCIILowercase.
976         (WTF::StringImpl::convertToASCIILowercase):
977         (WTF::StringImpl::convertToASCIIUppercase):
978         * wtf/text/StringImpl.h:
979         * wtf/text/WTFString.cpp:
980         (WTF::String::convertToASCIIUppercase): Added.
981         * wtf/text/WTFString.h:
982
983 2016-01-22  Chris Dumez  <cdumez@apple.com>
984
985         Unreviewed attempt to fix the Windows build after r195452.
986
987         * wtf/text/WTFString.h:
988
989 2016-01-22  Darin Adler  <darin@apple.com>
990
991         Reduce use of equalIgnoringCase to just ignore ASCII case
992         https://bugs.webkit.org/show_bug.cgi?id=153266
993
994         Reviewed by Ryosuke Niwa.
995
996         * wtf/ASCIICType.h:
997         (WTF::isASCIIAlphaCaselessEqual): Loosened the assertion in this function
998         so it can work with ASCII spaces, numeric digits, and some punctuation.
999         Commented that we might want to change its name later.
1000
1001         * wtf/Assertions.cpp:
1002         (WTFInitializeLogChannelStatesFromString): Use equalLettersIgnoringASCIICase.
1003
1004         * wtf/text/AtomicString.h:
1005         (WTF::equalLettersIgnoringASCIICase): Added. Calls the version that takes a String.
1006
1007         * wtf/text/StringCommon.h:
1008         (WTF::equalLettersIgnoringASCIICase): Added. Takes a pointer to characters.
1009         (WTF::equalLettersIgnoringASCIICaseCommonWithoutLength): Added.
1010         (WTF::equalLettersIgnoringASCIICaseCommon): Added.
1011
1012         * wtf/text/StringImpl.h:
1013         (WTF::equalLettersIgnoringASCIICase): Added. Calls equalLettersIgnoringASCIICaseCommon.
1014
1015         * wtf/text/StringView.h:
1016         (WTF::equalLettersIgnoringASCIICase): Added. Calls equalLettersIgnoringASCIICaseCommon.
1017
1018         * wtf/text/WTFString.h: Reordered/reformatted a little.
1019         (WTF::equalIgnoringASCIICase): Added. Calls the version that takes a StringImpl.
1020
1021 2016-01-22  Csaba Osztrogonác  <ossy@webkit.org>
1022
1023         Buildfix for older GCCs after r195142
1024         https://bugs.webkit.org/show_bug.cgi?id=153351
1025
1026         Unreviewed buildfix.
1027
1028         * wtf/SystemTracing.h:
1029
1030 2016-01-21  Filip Pizlo  <fpizlo@apple.com>
1031
1032         REGRESSION(r195417): many tests crash
1033         https://bugs.webkit.org/show_bug.cgi?id=153316
1034
1035         Reviewed by Saam Barati.
1036
1037         This rolls out the StdLibExtras.h change, and simplifies RangeSet to not use binary search.
1038         That's fine for now, since B3 doesn't stress RangeSet enough right now.
1039
1040         * wtf/RangeSet.h:
1041         (WTF::RangeSet::contains):
1042         (WTF::RangeSet::overlaps):
1043         (WTF::RangeSet::clear):
1044         (WTF::RangeSet::findRange):
1045         * wtf/StdLibExtras.h:
1046         (WTF::binarySearchImpl):
1047         (WTF::binarySearch):
1048         (WTF::tryBinarySearch):
1049         (WTF::approximateBinarySearch):
1050
1051 2016-01-21  Filip Pizlo  <fpizlo@apple.com>
1052
1053         B3 should have load elimination
1054         https://bugs.webkit.org/show_bug.cgi?id=153288
1055
1056         Reviewed by Geoffrey Garen.
1057
1058         I needed a way to track sets of ranges, where there is a high likelihood that all of the
1059         ranges overlap. So I created RangeSet. It's a usually-sorted list of coalesced ranges.
1060         Practically this means that right now, FTL B3 will end up with two kinds of range sets: a set
1061         that just contains top and a set that contains nothing. In the future, most sets will either
1062         be top of empty but some of them will contain a handful of other things.
1063
1064         * WTF.xcodeproj/project.pbxproj:
1065         * wtf/CMakeLists.txt:
1066         * wtf/MathExtras.h:
1067         (WTF::leftShiftWithSaturation):
1068         (WTF::nonEmptyRangesOverlap):
1069         (WTF::rangesOverlap):
1070         * wtf/RangeSet.h: Added.
1071         (WTF::RangeSet::RangeSet):
1072         (WTF::RangeSet::~RangeSet):
1073         (WTF::RangeSet::add):
1074         (WTF::RangeSet::contains):
1075         (WTF::RangeSet::overlaps):
1076         (WTF::RangeSet::clear):
1077         (WTF::RangeSet::dump):
1078         (WTF::RangeSet::dumpRaw):
1079         (WTF::RangeSet::compact):
1080         (WTF::RangeSet::overlapsNonEmpty):
1081         (WTF::RangeSet::subsumesNonEmpty):
1082         (WTF::RangeSet::findRange):
1083         * wtf/StdLibExtras.h:
1084         (WTF::binarySearchImpl):
1085         (WTF::binarySearch):
1086         (WTF::tryBinarySearch):
1087         (WTF::approximateBinarySearch):
1088
1089 2016-01-19  Ada Chan  <adachan@apple.com>
1090
1091         Make it possible to enable VIDEO_PRESENTATION_MODE on other Cocoa platforms.
1092         https://bugs.webkit.org/show_bug.cgi?id=153218
1093
1094         Reviewed by Eric Carlson.
1095
1096         * wtf/Platform.h:
1097
1098 2016-01-19  Filip Pizlo  <fpizlo@apple.com>
1099
1100         B3 should have basic path specialization
1101         https://bugs.webkit.org/show_bug.cgi?id=153200
1102
1103         Reviewed by Benjamin Poulain.
1104
1105         * wtf/GraphNodeWorklist.h:
1106         (WTF::GraphNodeWorklist::push):
1107         (WTF::GraphNodeWorklist::pushAll):
1108         (WTF::GraphNodeWorklist::isEmpty):
1109         (WTF::GraphNodeWorklist::notEmpty):
1110
1111 2016-01-20  Said Abou-Hallawa  <sabouhallawa@apple.com>
1112
1113         Refactor AtomicStringKeyedMRUCache to be a generic LRU cache
1114         https://bugs.webkit.org/show_bug.cgi?id=153109
1115
1116         Reviewed by Darin Adler.
1117
1118         Refactor AtomicStringKeyedMRUCache, move it to WTF project and rename it
1119         to be TinyLRUCache. Define another template and call it TinyLRUCachePolicy.
1120         This one can be overridden for different keys and values. Its function is 
1121         creating the cached values.
1122
1123         * WTF.xcodeproj/project.pbxproj:
1124         * wtf/TinyLRUCache.h: Added.
1125         (WebCore::TinyLRUCachePolicy::isKeyNull):
1126         (WebCore::TinyLRUCachePolicy::createValueForNullKey):
1127         (WebCore::TinyLRUCachePolicy::createValueForKey):
1128         (WebCore::TinyLRUCache::get):
1129
1130 2016-01-19  Saam barati  <sbarati@apple.com>
1131
1132         WTF::Bag should be non-copyable
1133         https://bugs.webkit.org/show_bug.cgi?id=153253
1134
1135         Reviewed by Filip Pizlo.
1136
1137         * wtf/Bag.h:
1138         * wtf/SegmentedVector.h:
1139         (WTF::SegmentedVector::append):
1140         (WTF::SegmentedVector::alloc):
1141
1142 2016-01-19  Enrica Casucci  <enrica@apple.com>
1143
1144         Add support for DataDetectors in WK (iOS).
1145         https://bugs.webkit.org/show_bug.cgi?id=152989
1146         rdar://problem/22855960
1147
1148         Reviewed by Tim Horton.
1149
1150         Adding feature definition for data detection.
1151
1152         * wtf/FeatureDefines.h:
1153
1154 2016-01-19  Commit Queue  <commit-queue@webkit.org>
1155
1156         Unreviewed, rolling out r195300.
1157         https://bugs.webkit.org/show_bug.cgi?id=153244
1158
1159         enrica wants more time to fix Windows (Requested by thorton on
1160         #webkit).
1161
1162         Reverted changeset:
1163
1164         "Add support for DataDetectors in WK (iOS)."
1165         https://bugs.webkit.org/show_bug.cgi?id=152989
1166         http://trac.webkit.org/changeset/195300
1167
1168 2016-01-19  Chris Dumez  <cdumez@apple.com>
1169
1170         Unreviewed, rolling out r195141.
1171
1172         Seems to cause crashes on iOS9 64bit
1173
1174         Reverted changeset:
1175
1176         "Fragmentation-free allocator for timeless and/or coupled
1177         allocations."
1178         https://bugs.webkit.org/show_bug.cgi?id=152696
1179         http://trac.webkit.org/changeset/195141
1180
1181 2016-01-19  Enrica Casucci  <enrica@apple.com>
1182
1183         Add support for DataDetectors in WK (iOS).
1184         https://bugs.webkit.org/show_bug.cgi?id=152989
1185         rdar://problem/22855960
1186
1187         Reviewed by Tim Horton.
1188
1189         Adding feature definition for data detection.
1190
1191         * wtf/FeatureDefines.h:
1192
1193 2016-01-17  Filip Pizlo  <fpizlo@apple.com>
1194
1195         FTL B3 should be just as fast as FTL LLVM on Octane/crypto
1196         https://bugs.webkit.org/show_bug.cgi?id=153113
1197
1198         Reviewed by Saam Barati.
1199
1200         * wtf/IndexSparseSet.h:
1201         (WTF::IndexSparseSet<OverflowHandler>::IndexSparseSet):
1202         (WTF::IndexSparseSet<OverflowHandler>::add):
1203         (WTF::IndexSparseSet<OverflowHandler>::remove):
1204         * wtf/StringPrintStream.h:
1205         (WTF::StringPrintStream::length):
1206
1207 2016-01-17  Michael Catanzaro  <mcatanzaro@igalia.com>
1208
1209         [CMake] Do not build bmalloc when USE_SYSTEM_MALLOC is ON
1210         https://bugs.webkit.org/show_bug.cgi?id=153190
1211
1212         Reviewed by Csaba Osztrogonác.
1213
1214         Build bmalloc when NOT USE_SYSTEM_MALLOC rather than when NOT WIN32.
1215
1216         * wtf/CMakeLists.txt:
1217
1218 2016-01-15  Simon Fraser  <simon.fraser@apple.com>
1219
1220         Add kdebug_trace signposts for a few WebCore operations
1221         https://bugs.webkit.org/show_bug.cgi?id=153136
1222         rdar://problem/24208487
1223
1224         Reviewed by Sam Weinig.
1225         
1226         New header with the reserved WebKit component code, trace point codes, and
1227         a stack-based helper that traces scope entry and exit.
1228         
1229         The available range of trace point codes is arbitrarily segmented into WTF, JSC,
1230         WebCore, WebKit and WebKit2.
1231
1232         * WTF.xcodeproj/project.pbxproj:
1233         * wtf/CMakeLists.txt:
1234         * wtf/SystemTracing.h: Added.
1235         (WTF::TraceScope::TraceScope):
1236         (WTF::TraceScope::~TraceScope):
1237
1238 2016-01-15  Andreas Kling  <akling@apple.com>
1239
1240         Fragmentation-free allocator for timeless and/or coupled allocations.
1241         <https://webkit.org/b/152696>
1242
1243         Reviewed by Antti Koivisto.
1244
1245         Introduce BumpArena, a space-efficient memory allocator for situations where
1246         you feel pretty confident betting on allocation lifetimes.
1247
1248         Basic design:
1249
1250             - Reserves 128MB range of memory at startup.
1251             - Allocates 4kB-aligned blocks of 4kB from VM at a time.
1252             - Bump-pointer allocates out of a block until it reaches end.
1253             - Each allocation increments the ref-count of its block.
1254             - Each deallocation decrements the ref-count of its block.
1255             - Transparently falls back to fastMalloc()/fastFree() when needed.
1256
1257         Interface:
1258
1259             - BumpArena::create()
1260
1261                 Create your very own BumpArena!
1262
1263             - BumpArena::allocate(BumpArena* arena, size_t size)
1264
1265                 Allocates 'size' bytes of memory from 'arena'.
1266                 If 'arena' is null, falls back to fastMalloc().
1267
1268             - BumpArena::deallocate(void* ptr)
1269
1270                 If 'ptr' is BumpArena allocation, decrements block ref-count.
1271                 If 'ptr' is FastMalloc allocation, calls fastFree() on it.
1272
1273             - WTF_MAKE_BUMPARENA_ALLOCATED;
1274
1275                 Macro that gives a class or struct custom operators new and delete
1276                 for allocation out of BumpArena. Just like WTF_MAKE_FAST_ALLOCATED;
1277
1278         Note that while the name of this patch says "fragmentation-free allocator"
1279         it will only be fragmentation-free when used for appropriate things.
1280         This is not meant to be a general-purpose allocator. Only use it for sets of
1281         allocations that are known to die roughly at the same time.
1282
1283         BumpArena will never resume allocating from a block that has been filled,
1284         so it's even more important than usual that everything gets deallocated.
1285
1286         BumpArena redirects allocations to FastMalloc in three cases:
1287
1288             - When invoked with a null BumpArena*
1289             - When allocation request is larger than BumpArena's block size (4kB)
1290             - When BumpArena has exhausted all of its pre-reserved VM. (128MB)
1291
1292         The VM allocator will eagerly return blocks of VM to the kernel by calling
1293         madvise(). Average time spent in madvise is around 0.007ms on my box.
1294
1295         * WTF.vcxproj/WTF.vcxproj:
1296         * WTF.vcxproj/WTF.vcxproj.filters:
1297         * WTF.xcodeproj/project.pbxproj:
1298         * wtf/BumpArena.cpp: Added.
1299         (WTF::BumpArena::Block::capacity):
1300         (WTF::BumpArena::Block::arena):
1301         (WTF::BumpArena::Block::payloadStart):
1302         (WTF::arenas):
1303         (WTF::BumpArena::Block::Block):
1304         (WTF::BumpArena::Block::~Block):
1305         (WTF::BumpArena::Block::ref):
1306         (WTF::BlockAllocator::BlockAllocator):
1307         (WTF::BlockAllocator::isAllocation):
1308         (WTF::blockAllocator):
1309         (WTF::BlockAllocator::allocateBlock):
1310         (WTF::BlockAllocator::deallocateBlock):
1311         (WTF::BumpArena::Block::deref):
1312         (WTF::BumpArena::Block::create):
1313         (WTF::BumpArena::Block::dump):
1314         (WTF::BumpArena::dump):
1315         (WTF::BumpArena::create):
1316         (WTF::BumpArena::BumpArena):
1317         (WTF::BumpArena::~BumpArena):
1318         (WTF::BumpArena::allocateSlow):
1319         (WTF::BumpArena::allocate):
1320         (WTF::BumpArena::deallocate):
1321         (WTF::BumpArena::Block::blockFor):
1322         (WTF::BumpArena::arenaFor):
1323         * wtf/BumpArena.h: Added.
1324         * wtf/CMakeLists.txt:
1325
1326 2016-01-15  Konstantin Tokarev  <annulen@yandex.ru>
1327
1328         [EFL] WorkQueue methods should be defined inside WTF namespace.
1329         https://bugs.webkit.org/show_bug.cgi?id=153097
1330
1331         Reviewed by Gyuyoung Kim.
1332
1333         * wtf/efl/WorkQueueEfl.cpp:
1334
1335 2016-01-14  Chris Dumez  <cdumez@apple.com>
1336
1337         Unreviewed, rolling out r195035.
1338
1339         Caused 1-3% PLT regression on iOS
1340
1341         Reverted changeset:
1342
1343         "Part 2/2: Stop using USE(CFNETWORK) path on iOS"
1344         https://bugs.webkit.org/show_bug.cgi?id=142540
1345         http://trac.webkit.org/changeset/195035
1346
1347 2016-01-14  David Kilzer  <ddkilzer@apple.com>
1348
1349         Part 2/2: Stop using USE(CFNETWORK) path on iOS
1350         <https://webkit.org/b/142540>
1351
1352         Original patch by Antti Koivisto <antti@apple.com> on 2015-03-10
1353         Reviewed by Chris Dumez.
1354
1355         * wtf/Platform.h: Turn off USE(CFNETWORK) for PLATFORM(IOS).
1356
1357 2016-01-14  Per Arne Vollan  <peavo@outlook.com>
1358
1359         [Win] Remove workarounds for fixed bugs in fmod and pow.
1360         https://bugs.webkit.org/show_bug.cgi?id=153071
1361
1362         Reviewed by Brent Fulgham.
1363
1364         The bugs have been fixed in the MSVC CRT, and we can remove the workarounds.
1365
1366         * wtf/MathExtras.h:
1367         (wtf_fmod): Deleted.
1368         (wtf_pow): Deleted.
1369
1370 2016-01-13  Commit Queue  <commit-queue@webkit.org>
1371
1372         Unreviewed, rolling out r194963.
1373         https://bugs.webkit.org/show_bug.cgi?id=153079
1374
1375         This change causes ASan tests to crash and exit early
1376         (Requested by ryanhaddad on #webkit).
1377
1378         Reverted changeset:
1379
1380         "Fragmentation-free allocator for timeless and/or coupled
1381         allocations."
1382         https://bugs.webkit.org/show_bug.cgi?id=152696
1383         http://trac.webkit.org/changeset/194963
1384
1385 2016-01-13  Andreas Kling  <akling@apple.com>
1386
1387         Fragmentation-free allocator for timeless and/or coupled allocations.
1388         <https://webkit.org/b/152696>
1389
1390         Reviewed by Antti Koivisto.
1391
1392         Introduce BumpArena, a space-efficient memory allocator for situations where
1393         you feel pretty confident betting on allocation lifetimes.
1394
1395         Basic design:
1396
1397             - Allocates 4kB-aligned blocks of 4kB from bmalloc at a time.
1398             - Bump-pointer allocates out of a block until it reaches end.
1399             - Each allocation increments the ref-count of its block.
1400             - Each deallocation decrements the ref-count of its block.
1401
1402         Interface:
1403
1404             - BumpArena::create()
1405
1406                 Create your very own BumpArena!
1407
1408             - BumpArena::allocate(BumpArena* arena, size_t size)
1409
1410                 Allocates 'size' bytes of memory from 'arena'.
1411                 If 'arena' is null, allocation comes out of the shared global BumpArena.
1412
1413             - BumpArena::deallocate(void* ptr)
1414
1415                 Deallocates 'ptr', decrementing the ref-count of its block.
1416
1417             - WTF_MAKE_BUMPARENA_ALLOCATED;
1418
1419                 Macro that gives a class or struct custom operators new and delete
1420                 for allocation out of BumpArena. Just like WTF_MAKE_FAST_ALLOCATED;
1421
1422         Note that while the name of this patch says "fragmentation-free allocator"
1423         it will only be fragmentation-free when used for appropriate things.
1424         This is not meant to be a general-purpose allocator. Only use it for sets of
1425         allocations that are known to die roughly at the same time.
1426
1427         BumpArena will never resume allocating from a block that has been filled,
1428         so it's even more important than usual that everything gets deallocated.
1429
1430         As noted above, calling allocate() with a null BumpArena will allocate out
1431         of a global shared arena. Ideally you're always allocating out of a specific,
1432         controlled arena, but there are situations where you may not have one.
1433
1434         * WTF.vcxproj/WTF.vcxproj:
1435         * WTF.vcxproj/WTF.vcxproj.filters:
1436         * WTF.xcodeproj/project.pbxproj:
1437         * wtf/BumpArena.cpp: Added.
1438         (WTF::BumpArena::Block::defaultCapacity):
1439         (WTF::BumpArena::Block::arena):
1440         (WTF::BumpArena::Block::payloadStart):
1441         (WTF::globalArena):
1442         (WTF::arenas):
1443         (WTF::BumpArena::Block::Block):
1444         (WTF::BumpArena::Block::~Block):
1445         (WTF::BumpArena::Block::ref):
1446         (WTF::BumpArena::Block::deref):
1447         (WTF::BumpArena::Block::create):
1448         (WTF::BumpArena::Block::dump):
1449         (WTF::BumpArena::dump):
1450         (WTF::BumpArena::create):
1451         (WTF::BumpArena::BumpArena):
1452         (WTF::BumpArena::~BumpArena):
1453         (WTF::BumpArena::allocateSlow):
1454         (WTF::BumpArena::allocate):
1455         (WTF::BumpArena::deallocate):
1456         (WTF::BumpArena::Block::blockFor):
1457         (WTF::BumpArena::arenaFor):
1458         * wtf/BumpArena.h: Added.
1459         * wtf/CMakeLists.txt:
1460
1461 2016-01-08  Andy Estes  <aestes@apple.com>
1462
1463         [Content Filtering] Lazily load platform frameworks
1464         https://bugs.webkit.org/show_bug.cgi?id=152881
1465         rdar://problem/23270886
1466
1467         Reviewed by Brady Eidson.
1468
1469         * wtf/Platform.h: Moved definition of HAVE_NETWORK_EXTENSION to here from WebCore/platform/cocoa/NetworkExtensionContentFilter.h.
1470
1471 2016-01-12  Ryosuke Niwa  <rniwa@webkit.org>
1472
1473         Add a build flag for custom element
1474         https://bugs.webkit.org/show_bug.cgi?id=153005
1475
1476         Reviewed by Alex Christensen.
1477
1478         * wtf/FeatureDefines.h:
1479
1480 2016-01-11  Andreas Kling  <akling@apple.com>
1481
1482         NeverDestroyed should relax adoption requirements on all RefCountedBase subclasses.
1483         <https://webkit.org/b/152960>
1484
1485         Reviewed by Antti Koivisto.
1486
1487         Instead of relaxing on subclasses of RefCounted<T>, relax on subclasses of RefCountedBase.
1488         This allows e.g NeverDestroyed<CSSPrimitiveValue> to relax its pointee despite the class
1489         hierarchy starting with RefCounted<CSSValue> (not RefCounted<CSSPrimitiveValue>.)
1490
1491         * wtf/NeverDestroyed.h:
1492
1493 2016-01-10  Saam barati  <sbarati@apple.com>
1494
1495         Implement a sampling profiler
1496         https://bugs.webkit.org/show_bug.cgi?id=151713
1497
1498         Reviewed by Filip Pizlo.
1499
1500         * wtf/MetaAllocator.cpp:
1501         (WTF::MetaAllocator::decrementPageOccupancy):
1502         (WTF::MetaAllocator::isInAllocatedMemory):
1503         (WTF::MetaAllocator::roundUp):
1504         * wtf/MetaAllocator.h:
1505         (WTF::MetaAllocator::getLock):
1506         * wtf/Platform.h:
1507
1508 2016-01-10  Filip Pizlo  <fpizlo@apple.com>
1509
1510         It should be possible to run liveness over registers without also tracking Tmps
1511         https://bugs.webkit.org/show_bug.cgi?id=152963
1512
1513         Reviewed by Saam Barati.
1514
1515         Add set methods (add/contains/remove) to BitVector, since it gets used as a set in a lot of
1516         places. This also makes BitVector a drop-in replacement for HashSet<unsigned> in a lot of
1517         places.
1518
1519         Also made the iterator methods of BitVector live on BitVector directly rather than behind the
1520         thing returned from setBits(). This makes sense since that makes BitVector even more of a
1521         drop-in for HashSet. It's not harmful since we've never added any other mode of iterating a
1522         BitVector other than this, so it doesn't make sense to make it harder to access.
1523
1524         * wtf/BitVector.h:
1525         (WTF::BitVector::get):
1526         (WTF::BitVector::contains):
1527         (WTF::BitVector::set):
1528         (WTF::BitVector::add):
1529         (WTF::BitVector::ensureSizeAndSet):
1530         (WTF::BitVector::clear):
1531         (WTF::BitVector::remove):
1532         (WTF::BitVector::hash):
1533         (WTF::BitVector::iterator::iterator):
1534         (WTF::BitVector::iterator::operator*):
1535         (WTF::BitVector::iterator::operator++):
1536         (WTF::BitVector::iterator::operator==):
1537         (WTF::BitVector::iterator::operator!=):
1538         (WTF::BitVector::begin):
1539         (WTF::BitVector::end):
1540         (WTF::BitVector::bitsInPointer):
1541         (WTF::BitVector::SetBitsIterable::SetBitsIterable): Deleted.
1542         (WTF::BitVector::SetBitsIterable::iterator::iterator): Deleted.
1543         (WTF::BitVector::SetBitsIterable::iterator::operator*): Deleted.
1544         (WTF::BitVector::SetBitsIterable::iterator::operator++): Deleted.
1545         (WTF::BitVector::SetBitsIterable::iterator::operator==): Deleted.
1546         (WTF::BitVector::SetBitsIterable::iterator::operator!=): Deleted.
1547         (WTF::BitVector::SetBitsIterable::begin): Deleted.
1548         (WTF::BitVector::SetBitsIterable::end): Deleted.
1549         (WTF::BitVector::setBits): Deleted.
1550
1551 2016-01-09  Andreas Kling  <akling@apple.com>
1552
1553         Use NeverDestroyed instead of DEPRECATED_DEFINE_STATIC_LOCAL
1554         <https://webkit.org/b/152902>
1555
1556         Reviewed by Anders Carlsson.
1557
1558         Mostly mechanical conversion to NeverDestroyed throughout WTF.
1559
1560         * wtf/RunLoop.cpp:
1561         (WTF::RunLoop::current):
1562         * wtf/ThreadingPthreads.cpp:
1563         (WTF::threadMapMutex):
1564         (WTF::threadMap):
1565
1566 2016-01-08  Anders Carlsson  <andersca@apple.com>
1567
1568         Nullopt and InPlace should be structs, not enum values
1569         https://bugs.webkit.org/show_bug.cgi?id=152915
1570
1571         Reviewed by Andreas Kling.
1572
1573         Without this, 
1574
1575         Optional<int> o = flag ? 1 : Nullopt;
1576
1577         would cause Nullopt to be treated as an integer, causing o to be initialized to 0,
1578         instead of Nullopt. With this change, the above code now causes a compile error.
1579
1580         Also, get rid of the CONSTEXPR macro since all compilers support constexpr properly,
1581         and add a WTF::makeOptional to match the current iteration of std::experimental::optional.
1582
1583         * wtf/Compiler.h:
1584         * wtf/Forward.h:
1585         * wtf/Optional.h:
1586         (WTF::NulloptTag::NulloptTag):
1587         (WTF::makeOptional):
1588         * wtf/StdLibExtras.h:
1589         (std::literals::chrono_literals::operator _s):
1590         (std::literals::chrono_literals::operator _ms):
1591         (std::move):
1592
1593 2016-01-06  Anders Carlsson  <andersca@apple.com>
1594
1595         Add a smart block pointer
1596         https://bugs.webkit.org/show_bug.cgi?id=152799
1597
1598         Reviewed by Tim Horton.
1599
1600         Introduce WTF::BlockPtr, a smart block pointer.
1601
1602         * WTF.xcodeproj/project.pbxproj:
1603         * wtf/BlockPtr.h: Added.
1604         (WTF::makeBlockPtr):
1605
1606 2016-01-04  Carlos Garcia Campos  <cgarcia@igalia.com>
1607
1608         [GTK] Allow to save and restore session
1609         https://bugs.webkit.org/show_bug.cgi?id=115600
1610
1611         Reviewed by Michael Catanzaro.
1612
1613         Add GVariantIter specialization of GUniquePtr.
1614
1615         * wtf/glib/GTypedefs.h:
1616         * wtf/glib/GUniquePtr.h:
1617
1618 2016-01-04  Tim Horton  <timothy_horton@apple.com>
1619
1620         Turn on gesture events when building for Yosemite
1621         https://bugs.webkit.org/show_bug.cgi?id=152704
1622         rdar://problem/24042472
1623
1624         Reviewed by Anders Carlsson.
1625
1626         * wtf/FeatureDefines.h:
1627
1628 2016-01-04  Benjamin Poulain  <bpoulain@apple.com>
1629
1630         [JSC] Build B3 by default on iOS ARM64
1631         https://bugs.webkit.org/show_bug.cgi?id=152525
1632
1633         Reviewed by Filip Pizlo.
1634
1635         * wtf/Platform.h:
1636
1637 2016-01-03  Andreas Kling  <akling@apple.com>
1638
1639         Unreviewed, rolling out r194510.
1640
1641         Broke 2 API tests, no time to investigate right now
1642
1643         Reverted changeset:
1644
1645         "StringBuilder often creates two StringImpls."
1646         https://bugs.webkit.org/show_bug.cgi?id=152662
1647         http://trac.webkit.org/changeset/194510
1648
1649 2016-01-03  Khem Raj  <raj.khem@gmail.com>
1650
1651         WebKit fails to build with musl libc library
1652         https://bugs.webkit.org/show_bug.cgi?id=152625
1653
1654         Reviewed by Daniel Bates.
1655
1656         Disable ctype.h check for musl C library on Linux.
1657         Enable backtrace on Linux when using glibc.
1658         We don't have backtrace() implemented on non-glibc system
1659         C libraries on Linux e.g. musl.
1660
1661         * wtf/DisallowCType.h: Check for __GLIBC__.
1662         * wtf/Assertions.cpp:
1663         (WTFGetBacktrace): Check if libc is glibc.
1664
1665 2016-01-03  Andreas Kling  <akling@apple.com>
1666
1667         StringBuilder often creates two StringImpls.
1668         <https://webkit.org/b/152662>
1669
1670         Reviewed by Anders Carlsson.
1671
1672         If StringBuilder didn't manage to guess the exact final length of the
1673         string being built, it would still keep the buffer around, and the final
1674         build process would then return a substring into that buffer.
1675
1676         This effectively yielded two StringImpls instead of one, with the substring
1677         retaining the longer buffer StringImpl.
1678
1679         This patch improves the situation by having StringImpl crop the buffer's
1680         m_length field to the final built string length. That way we never have to
1681         return a substring.
1682
1683         * wtf/text/StringBuilder.cpp:
1684         (WTF::StringBuilder::reifyString):
1685         * wtf/text/StringImpl.h:
1686
1687 2016-01-03  Andreas Kling  <akling@apple.com>
1688
1689         Remove redundant StringImpl substring creation function.
1690         <https://webkit.org/b/152652>
1691
1692         Reviewed by Daniel Bates.
1693
1694         Remove StringImpl::createSubstringSharingImpl8() and make the only
1695         caller use createSubstringSharingImpl() instead.
1696         
1697         They do the same thing anyway, the only difference is that the branch
1698         on is8Bit() now happens in the callee instead of at the call site.
1699
1700         * wtf/text/StringImpl.h:
1701         (WTF::StringImpl::createSubstringSharingImpl8): Deleted.
1702
1703 2015-12-31  Andy Estes  <aestes@apple.com>
1704
1705         Replace WTF::move with WTFMove
1706         https://bugs.webkit.org/show_bug.cgi?id=152601
1707
1708         Reviewed by Brady Eidson.
1709
1710         This also removes the definition of WTF::move.
1711
1712         * wtf/Deque.h:
1713         * wtf/HashMap.h:
1714         * wtf/HashSet.h:
1715         * wtf/HashTable.h:
1716         (WTF::HashTable::add):
1717         (WTF::KeyTraits>::HashTable):
1718         * wtf/Insertion.h:
1719         (WTF::executeInsertions):
1720         * wtf/IteratorAdaptors.h:
1721         (WTF::FilterIterator::FilterIterator):
1722         (WTF::TransformIterator::TransformIterator):
1723         (WTF::makeTransformIterator):
1724         * wtf/IteratorRange.h:
1725         (WTF::IteratorRange::IteratorRange):
1726         * wtf/ListHashSet.h:
1727         (WTF::U>::takeFirst):
1728         (WTF::U>::takeLast):
1729         * wtf/MainThread.cpp:
1730         (WTF::callOnMainThread):
1731         * wtf/MallocPtr.h:
1732         (WTF::MallocPtr::operator=):
1733         * wtf/MessageQueue.h:
1734         (WTF::MessageQueue<DataType>::append):
1735         (WTF::MessageQueue<DataType>::appendAndKill):
1736         (WTF::MessageQueue<DataType>::appendAndCheckEmpty):
1737         (WTF::MessageQueue<DataType>::prepend):
1738         * wtf/NakedPtr.h:
1739         (WTF::=):
1740         * wtf/OSObjectPtr.h:
1741         (WTF::OSObjectPtr::operator=):
1742         * wtf/Optional.h:
1743         (WTF::Optional::Optional):
1744         (WTF::Optional::operator=):
1745         * wtf/RefPtr.h:
1746         (WTF::=):
1747         * wtf/RetainPtr.h:
1748         (WTF::=):
1749         * wtf/RunLoop.cpp:
1750         (WTF::RunLoop::dispatch):
1751         * wtf/SharedTask.h:
1752         (WTF::createSharedTask):
1753         * wtf/StdLibExtras.h:
1754         (WTF::move): Deleted.
1755         * wtf/Threading.cpp:
1756         (WTF::threadEntryPoint):
1757         (WTF::createThread):
1758         * wtf/Vector.h:
1759         (WTF::Vector::takeLast):
1760         * wtf/efl/DispatchQueueEfl.cpp:
1761         (DispatchQueue::dispatch):
1762         (DispatchQueue::setSocketEventHandler):
1763         (DispatchQueue::performTimerWork):
1764         (DispatchQueue::insertTimerWorkItem):
1765         * wtf/efl/DispatchQueueWorkItemEfl.h:
1766         (WorkItem::WorkItem):
1767         (TimerWorkItem::create):
1768         (TimerWorkItem::TimerWorkItem):
1769         * wtf/efl/WorkQueueEfl.cpp:
1770         (WorkQueue::registerSocketEventHandler):
1771         (WorkQueue::dispatch):
1772         (WorkQueue::dispatchAfter):
1773         * wtf/glib/GRefPtr.h:
1774         (WTF::=):
1775         * wtf/glib/WorkQueueGLib.cpp:
1776         (WTF::DispatchAfterContext::DispatchAfterContext):
1777         (WTF::WorkQueue::dispatchAfter):
1778         * wtf/text/AtomicString.h:
1779         (WTF::AtomicString::AtomicString):
1780         (WTF::AtomicString::operator=):
1781         * wtf/text/StringConcatenate.h:
1782         (WTF::tryMakeString):
1783         * wtf/text/WTFString.cpp:
1784         (WTF::String::isolatedCopy):
1785         * wtf/text/WTFString.h:
1786         (WTF::String::String):
1787         (WTF::StringCapture::releaseString):
1788         * wtf/win/GDIObject.h:
1789         (WTF::=):
1790
1791 2015-12-31  David Kilzer  <ddkilzer@apple.com>
1792
1793         Stop using USE(CFNETWORK) path on iOS
1794         <https://webkit.org/b/142540>
1795
1796         Step 1/2: Do everything but turn off USE(CFNETWORK) internally.
1797
1798         Original patch by Antti Koivisto <antti@apple.com> on 2015-03-10
1799         Reviewed by Daniel Bates.
1800
1801         * wtf/SchedulePair.h: Update macros to match WebCore.
1802
1803 2015-12-31  Andy Estes  <aestes@apple.com>
1804
1805         Rename WTF_MOVE to WTFMove
1806         https://bugs.webkit.org/show_bug.cgi?id=152601
1807
1808         Reviewed by Daniel Bates.
1809
1810         Our coding style guidelines say that macros that expand to function calls should be named like functions,
1811         so WTFMove() is a more appropriate name.
1812
1813         * wtf/StdLibExtras.h:
1814
1815 2015-12-30  Andy Estes  <aestes@apple.com>
1816
1817         Use of WTF::move prevents clang's move diagnostics from warning about several classes of mistakes
1818         https://bugs.webkit.org/show_bug.cgi?id=152601
1819
1820         Reviewed by Brady Eidson.
1821
1822         Clang has recently added warnings to catch certain classes of mistakes with the use of std::move():
1823         -Wpessimizing-move (warns if moving prevents copy elision), -Wredundant-move (warns if a move is redundant),
1824         and -Wself-move (warns if moving to self). Enabling these warnings manually (by renaming WTF::move to std::move)
1825         have caught numerous mistakes in our codebase (see http://trac.webkit.org/changeset/194428).
1826
1827         It would be nice to be able to take advantage of these warnings, but doing so requires that we use std::move,
1828         not WTF::move. But since WTF::move does provide useful checks for which clang does not yet have warnings,
1829         we should write a best-of-both-worlds move function.
1830
1831         This patch adds a function that satisfies clang's criteria for a move function (in namespace std, named "move",
1832         and takes a single argument) but also retains WTF::move's compile-time checks. It also adds a convenience macro
1833         called WTF_MOVE for use by callers.
1834
1835         * wtf/StdLibExtras.h:
1836         (std::move):
1837
1838 2015-12-25  Andy Estes  <aestes@apple.com>
1839
1840         Stop moving local objects in return statements
1841         https://bugs.webkit.org/show_bug.cgi?id=152557
1842
1843         Reviewed by Brady Eidson.
1844
1845         * wtf/StdLibExtras.h: Added a FIXME about how using WTF::move() prevents several Clang diagnostics from emitting useful warnings.
1846
1847 2015-12-22  Filip Pizlo  <fpizlo@apple.com>
1848
1849         FTL B3 should be able to run richards
1850         https://bugs.webkit.org/show_bug.cgi?id=152514
1851
1852         Reviewed by Michael Saboff.
1853
1854         Change the list dumping helpers to work with a broader set of list kinds.
1855
1856         * wtf/ListDump.h:
1857         (WTF::ListDump::dump):
1858         (WTF::MapDump::dump):
1859         (WTF::sortedMapDump):
1860         (WTF::ListDumpInContext::dump):
1861
1862 2015-12-22  Filip Pizlo  <fpizlo@apple.com>
1863
1864         FTL B3 does not logicalNot correctly
1865         https://bugs.webkit.org/show_bug.cgi?id=152512
1866
1867         Reviewed by Saam Barati.
1868
1869         This change introduces yet another use of SharedTask in JSC. While doing this, I noticed that
1870         SharedTask::run() always demands that whatever arguments the callback takes, they must be
1871         passed as rvalue references. This was a clear misuse of perfect forwarding. This change makes
1872         SharedTask's approach to forwarding match what we were already doing in ScopedLambda.
1873
1874         * wtf/SharedTask.h:
1875
1876 2015-12-20  Michael Catanzaro  <mcatanzaro@igalia.com>
1877
1878         [SOUP] Performs DNS prefetch when a proxy is configured (information leak)
1879         https://bugs.webkit.org/show_bug.cgi?id=145542
1880
1881         Reviewed by Darin Adler.
1882
1883         Specialize GUniquePtr<char*>, using g_strfreev.
1884
1885         * wtf/glib/GUniquePtr.h:
1886
1887 2015-12-19  Dan Bernstein  <mitz@apple.com>
1888
1889         [Mac] WebKit contains dead source code for OS X Mavericks and earlier
1890         https://bugs.webkit.org/show_bug.cgi?id=152462
1891
1892         Reviewed by Alexey Proskuryakov.
1893
1894         * Configurations/DebugRelease.xcconfig: Removed definition of MACOSX_DEPLOYMENT_TARGET for
1895           OS X 10.9.
1896
1897         - Simplified expressions involving __MAC_OS_X_VERSION_MIN_REQUIRED and removed code that was
1898           never getting compiled:
1899
1900         * wtf/FeatureDefines.h:
1901         * wtf/MainThread.h:
1902         * wtf/OSObjectPtr.h:
1903         * wtf/Platform.h:
1904         * wtf/mac/DeprecatedSymbolsUsedBySafari.mm:
1905         * wtf/spi/darwin/XPCSPI.h:
1906
1907 2015-12-17  Sukolsak Sakshuwong  <sukolsak@gmail.com>
1908
1909         [INTL] Implement Collator Compare Functions
1910         https://bugs.webkit.org/show_bug.cgi?id=147604
1911
1912         Reviewed by Darin Adler.
1913
1914         * wtf/unicode/Collator.h:
1915
1916 2015-12-16  Andreas Kling  <akling@apple.com>
1917
1918         Give kernel VM some hints about non-live memory-cached resources.
1919         <https://webkit.org/b/152362>
1920
1921         Reviewed by Geoffrey Garen.
1922
1923         Add an API to OSAllocator for hinting to the OS that a range of memory
1924         is not expected to be used anytime soon.
1925
1926         * wtf/OSAllocator.h:
1927         * wtf/OSAllocatorPosix.cpp:
1928         (WTF::OSAllocator::hintMemoryNotNeededSoon):
1929         * wtf/OSAllocatorWin.cpp:
1930         (WTF::OSAllocator::hintMemoryNotNeededSoon):
1931         * wtf/Platform.h:
1932
1933 2015-12-16  Alex Christensen  <achristensen@webkit.org>
1934
1935         Fix internal Windows build
1936         https://bugs.webkit.org/show_bug.cgi?id=152364
1937         rdar://problem/23928759
1938
1939         Reviewed by Tim Horton.
1940
1941         * WTF.vcxproj/WTF.proj:
1942
1943 2015-12-16  Youenn Fablet  <youenn.fablet@crf.canon.fr>
1944
1945         [Fetch API] Add fetch API compile time flag
1946         https://bugs.webkit.org/show_bug.cgi?id=152254
1947
1948         Reviewed by Darin Adler.
1949
1950         * wtf/FeatureDefines.h:
1951
1952 2015-12-14  Yusuke Suzuki  <utatane.tea@gmail.com>
1953
1954         Math.random should have an intrinsic thunk and it should be later handled as a DFG Node
1955         https://bugs.webkit.org/show_bug.cgi?id=152133
1956
1957         Reviewed by Geoffrey Garen.
1958
1959         Change 64bit random to double logic to convert efficiently.
1960
1961         * wtf/WeakRandom.h:
1962         (WTF::WeakRandom::get):
1963         (WTF::WeakRandom::lowOffset):
1964         (WTF::WeakRandom::highOffset):
1965
1966 2015-12-14  Sukolsak Sakshuwong  <sukolsak@gmail.com>
1967
1968         Make UCharIterator createIterator(StringView) visible to other classes
1969         https://bugs.webkit.org/show_bug.cgi?id=151917
1970
1971         Reviewed by Darin Adler.
1972
1973         Make UCharIterator createIterator(StringView) in CollatorICU.cpp visible
1974         to other classes so that future patches that will ucol_strcollIter
1975         (including Bug 147604) can use it.
1976
1977         * wtf/unicode/Collator.h:
1978         * wtf/unicode/icu/CollatorICU.cpp:
1979         (WTF::createIterator):
1980
1981 2015-12-14  David Kilzer  <ddkilzer@apple.com>
1982
1983         REGRESSION (r162777): Remove Boost Software License from WTF
1984         <http://webkit.org/b/152243>
1985
1986         Reviewed by Darin Adler.
1987
1988         The source code that the Boost Software License was referring to
1989         was removed in r162777 by switching to std::atomic.
1990
1991         * wtf/Atomics.cpp:
1992         * wtf/Atomics.h:
1993         * wtf/ThreadSafeRefCounted.h:
1994         - Remove Boost Software License.
1995         - Update Apple Inc. copyright as needed.
1996         - Refresh Apple Inc. license text.
1997
1998 2015-12-10  Joseph Pecoraro  <pecoraro@apple.com>
1999
2000         Remote Inspector: Verify the identity of the other side of XPC connections
2001         https://bugs.webkit.org/show_bug.cgi?id=152153
2002
2003         Reviewed by Brian Burg.
2004
2005         * WTF.xcodeproj/project.pbxproj:
2006         * wtf/spi/cocoa/SecuritySPI.h: Renamed from Source/WebCore/platform/spi/cocoa/SecuritySPI.h.
2007         Push this down into WTF from WebCore and add a new method.
2008
2009 2015-12-08  Filip Pizlo  <fpizlo@apple.com>
2010
2011         FTL B3 should have basic GetById support
2012         https://bugs.webkit.org/show_bug.cgi?id=152035
2013
2014         Reviewed by Saam Barati.
2015
2016         When dealing with shared task lambdas, you often want to force a value to be allocated so that it
2017         has reference semantics, but you still want the lambda to execute OK when we pop stack. In PL we
2018         usually call this a "box". This is easy to do if the value that happened to be stack-allocated
2019         is also RefCounted, but that's rare, since stack-allocated values often have copy semantics. So,
2020         I've added a Box type to WTF. Behind the scenes, it allocates your object with fast malloc inside
2021         a ThreadSAfeRefCounted. When you pass Box<T>, you're passing the reference. This makes it a lot
2022         easier to work with by-reference capture.
2023
2024         * WTF.xcodeproj/project.pbxproj:
2025         * wtf/Box.h: Added.
2026         (WTF::Box::Box):
2027         (WTF::Box::create):
2028         (WTF::Box::get):
2029         (WTF::Box::operator*):
2030         (WTF::Box::operator->):
2031         (WTF::Box::operator bool):
2032         (WTF::Box::Data::Data):
2033
2034 2015-12-09  Andreas Kling  <akling@apple.com>
2035
2036         [iOS] ResourceUsageOverlay should work on iOS.
2037         <https://webkit.org/b/152021>
2038
2039         Reviewed by Antti Koivisto.
2040
2041         * wtf/Platform.h: Enable RESOURCE_USAGE_OVERLAY for all COCOA platforms.
2042
2043 2015-12-08  Joseph Pecoraro  <pecoraro@apple.com>
2044
2045         Create a Sandbox SPI header
2046         https://bugs.webkit.org/show_bug.cgi?id=151981
2047
2048         Reviewed by Andy Estes.
2049
2050         * WTF.xcodeproj/project.pbxproj:
2051         * wtf/spi/darwin/SandboxSPI.h: Added.
2052
2053 2015-12-07  Filip Pizlo  <fpizlo@apple.com>
2054
2055         FTL B3 should be able to flag the tag constants as being super important so that B3 can hoist them and Air can force them into registers
2056         https://bugs.webkit.org/show_bug.cgi?id=151955
2057
2058         Reviewed by Geoffrey Garen.
2059
2060         Remove some remaining DFG-specific snippets from Dominators. This used to be a non-template
2061         DFG class, and some time ago I hoisted it into WTF and made it generic. But since the only
2062         user of the class was the DFG, this class still had a handful of DFG-specific snippets that
2063         didn't compile when I started using it from B3.
2064
2065         Also renamed immediateDominatorOf() to idom(). This is the sort of abbreviation that we
2066         wouldn't ordinarily want to have in WebKit. But WebKit does allow for abbreviations that are
2067         "more canonical". The term "idom" is definitely more canonical than "immediateDominatorOf".
2068
2069         * wtf/Dominators.h:
2070         (WTF::Dominators::dominates):
2071         (WTF::Dominators::idom):
2072         (WTF::Dominators::forAllStrictDominatorsOf):
2073         (WTF::Dominators::NaiveDominators::dominates):
2074         (WTF::Dominators::NaiveDominators::dump):
2075         (WTF::Dominators::ValidationContext::handleErrors):
2076
2077 2015-12-03  Anders Carlsson  <andersca@apple.com>
2078
2079         Remove Objective-C GC support
2080         https://bugs.webkit.org/show_bug.cgi?id=151819
2081         rdar://problem/23746991
2082
2083         Reviewed by Dan Bernstein.
2084
2085         * Configurations/Base.xcconfig:
2086         * wtf/ThreadingPthreads.cpp:
2087         (WTF::initializeCurrentThreadInternal): Deleted.
2088         * wtf/text/cf/StringImplCF.cpp:
2089         (WTF::StringImpl::createCFString):
2090         (garbageCollectionEnabled): Deleted.
2091         (WTF::StringWrapperCFAllocator::create): Deleted.
2092
2093 2015-12-02  Filip Pizlo  <fpizlo@apple.com>
2094
2095         FTL B3 should support OSR exit
2096         https://bugs.webkit.org/show_bug.cgi?id=151710
2097
2098         Reviewed by Saam Barati.
2099
2100         Make sure that this has perfect forwarding.
2101
2102         * wtf/SegmentedVector.h:
2103         (WTF::SegmentedVector::append):
2104         (WTF::SegmentedVector::alloc):
2105
2106 2015-12-01  Yusuke Suzuki  <utatane.tea@gmail.com>
2107
2108         [ES6] Implement LLInt/Baseline Support for ES6 Generators and enable this feature
2109         https://bugs.webkit.org/show_bug.cgi?id=150792
2110
2111         Reviewed by Saam Barati.
2112
2113         * wtf/FastBitVector.h:
2114         (WTF::FastBitVector::forEachSetBit):
2115         * wtf/FeatureDefines.h:
2116
2117 2015-12-01  Commit Queue  <commit-queue@webkit.org>
2118
2119         Unreviewed, rolling out r192914.
2120         https://bugs.webkit.org/show_bug.cgi?id=151734
2121
2122         JSC tests for this change are failing on 32 and 64-bit bots
2123         (Requested by ryanhaddad on #webkit).
2124
2125         Reverted changeset:
2126
2127         "[ES6] Implement LLInt/Baseline Support for ES6 Generators and
2128         enable this feature"
2129         https://bugs.webkit.org/show_bug.cgi?id=150792
2130         http://trac.webkit.org/changeset/192914
2131
2132 2015-12-01  Myles C. Maxfield  <mmaxfield@apple.com>
2133
2134         Give String and AtomicString an existingHash() function
2135         https://bugs.webkit.org/show_bug.cgi?id=151717
2136
2137         Reviewed by Andreas Kling.
2138
2139         Test: WTF.AtomicStringExistingHash
2140               WTF.StringExistingHash
2141
2142         * wtf/text/AtomicString.h:
2143         (WTF::AtomicString::existingHash):
2144         * wtf/text/WTFString.h:
2145         (WTF::String::existingHash):
2146
2147 2015-12-01  Yusuke Suzuki  <utatane.tea@gmail.com>
2148
2149         [ES6] Implement LLInt/Baseline Support for ES6 Generators and enable this feature
2150         https://bugs.webkit.org/show_bug.cgi?id=150792
2151
2152         Reviewed by Saam Barati.
2153
2154         * wtf/FastBitVector.h:
2155         (WTF::FastBitVector::forEachSetBit):
2156         * wtf/FeatureDefines.h:
2157
2158 2015-11-30  Geoffrey Garen  <ggaren@apple.com>
2159
2160         Use a better RNG for Math.random()
2161         https://bugs.webkit.org/show_bug.cgi?id=151641
2162
2163         Reviewed by Anders Carlsson.
2164
2165         Use 64 bits in the random number generator instead of 32 bit. (In
2166         the end, JavaScript, which uses doubles, will only see 52 bits.) This
2167         prevents programs that multiply a random number by a large constant from
2168         seeing non-random "banding" caused by zeroes in the low 20 bits.
2169
2170         I also took the opportunity to upgrade from GameRandom to Xorshift+,
2171         since Xorshift+ passes more benchmarks for randomness, and is not any
2172         slower or more complicated.
2173
2174         Now let us all remember the fateful words of Steve Weibe, who would be
2175         King of Kong: "The randomness went the opposite way that it usually goes."
2176
2177         * wtf/WeakRandom.h:
2178         (WTF::WeakRandom::WeakRandom):
2179         (WTF::WeakRandom::setSeed): Use standard naming.
2180
2181         (WTF::WeakRandom::seed): This function is safe now. "Unsafe" in function
2182         names makes me itch.
2183
2184         (WTF::WeakRandom::get):
2185         (WTF::WeakRandom::getUint32): Update to 64bit.
2186
2187         (WTF::WeakRandom::advance): The Xorshift+ algorithm.
2188
2189         (WTF::WeakRandom::initializeSeed): Deleted.
2190         (WTF::WeakRandom::seedUnsafe): Deleted.
2191
2192 2015-11-30  Benjamin Poulain  <bpoulain@apple.com>
2193
2194         [JSC] Speed up Air Liveness Analysis on Tmps
2195         https://bugs.webkit.org/show_bug.cgi?id=151556
2196
2197         Reviewed by Filip Pizlo.
2198
2199         * WTF.xcodeproj/project.pbxproj:
2200         * wtf/IndexSparseSet.h: Added.
2201         (WTF::IndexSparseSet<OverflowHandler>::IndexSparseSet):
2202         (WTF::IndexSparseSet<OverflowHandler>::add):
2203         (WTF::IndexSparseSet<OverflowHandler>::remove):
2204         (WTF::IndexSparseSet<OverflowHandler>::clear):
2205         (WTF::IndexSparseSet<OverflowHandler>::size):
2206         (WTF::IndexSparseSet<OverflowHandler>::isEmpty):
2207         (WTF::IndexSparseSet<OverflowHandler>::contains):
2208
2209 2015-11-30  Tim Horton  <timothy_horton@apple.com>
2210
2211         Get rid of the !USE(ASYNC_NSTEXTINPUTCLIENT) codepath
2212         https://bugs.webkit.org/show_bug.cgi?id=151673
2213
2214         Reviewed by Anders Carlsson.
2215
2216         * wtf/Platform.h:
2217
2218 2015-11-30  Carlos Garcia Campos  <cgarcia@igalia.com>
2219
2220         [GLIB] Remove GMainLoopSource and GThreadSafeMainLoopSource
2221         https://bugs.webkit.org/show_bug.cgi?id=151633
2222
2223         Reviewed by Csaba Osztrogonác.
2224
2225         * WTF.vcxproj/WTF.vcxproj:
2226         * WTF.vcxproj/WTF.vcxproj.filters:
2227         * wtf/PlatformEfl.cmake:
2228         * wtf/PlatformGTK.cmake:
2229         * wtf/glib/GMainLoopSource.cpp: Removed.
2230         * wtf/glib/GMainLoopSource.h: Removed.
2231         * wtf/glib/GThreadSafeMainLoopSource.cpp: Removed.
2232         * wtf/glib/GThreadSafeMainLoopSource.h: Removed.
2233
2234 2015-11-27  Csaba Osztrogonác  <ossy@webkit.org>
2235
2236         Fix build warning in bignum.cc
2237         https://bugs.webkit.org/show_bug.cgi?id=150797
2238
2239         Reviewed by Geoffrey Garen.
2240
2241         * wtf/dtoa/bignum.cc:
2242
2243 2015-11-18  Daniel Bates  <dabates@apple.com>
2244
2245         [iOS] ASSERTION FAILED: temporaryFilePath.last() == '/' in WebCore::openTemporaryFile()
2246         https://bugs.webkit.org/show_bug.cgi?id=151392
2247         <rdar://problem/23595341>
2248
2249         Reviewed by Alexey Proskuryakov.
2250
2251         Workaround <rdar://problem/23579077> where confstr(_CS_DARWIN_USER_TEMP_DIR, ..., ...) retrieves
2252         the path to the user temporary directory without a trailing slash in the iOS simulator.
2253
2254         * wtf/DataLog.cpp:
2255         (WTF::initializeLogFileOnce):
2256
2257 2015-11-17  Filip Pizlo  <fpizlo@apple.com>
2258
2259         CheckAdd/Mul should have commutativity optimizations in B3->Air lowering
2260         https://bugs.webkit.org/show_bug.cgi?id=151214
2261
2262         Reviewed by Geoffrey Garen.
2263
2264         Disable my failed attempts at perfect forwarding, since they were incorrect, and caused compile
2265         errors if you tried to pass an argument that bound to lvalue. This shouldn't affect performance of
2266         anything we care about, and performance tests seem to confirm that it's all good.
2267
2268         * wtf/ScopedLambda.h:
2269
2270 2015-11-17  Filip Pizlo  <fpizlo@apple.com>
2271
2272         Air should lay out code optimally
2273         https://bugs.webkit.org/show_bug.cgi?id=150478
2274
2275         Reviewed by Geoffrey Garen.
2276
2277         * wtf/GraphNodeWorklist.h:
2278         (WTF::GraphNodeWorklist::push):
2279         (WTF::GraphNodeWorklist::isEmpty):
2280         (WTF::GraphNodeWorklist::notEmpty):
2281         (WTF::GraphNodeWorklist::pop):
2282
2283 2015-11-11  Anders Carlsson  <andersca@apple.com>
2284
2285         Enable cross-platform context menus by default
2286         https://bugs.webkit.org/show_bug.cgi?id=151173
2287
2288         Reviewed by Tim Horton.
2289
2290         * wtf/Platform.h:
2291
2292 2015-11-12  Csaba Osztrogonác  <ossy@webkit.org>
2293
2294         Remove ENABLE(SATURATED_LAYOUT_ARITHMETIC) guards
2295         https://bugs.webkit.org/show_bug.cgi?id=150972
2296
2297         Reviewed by Darin Adler.
2298
2299         * wtf/FeatureDefines.h:
2300
2301 2015-11-11  Filip Pizlo  <fpizlo@apple.com>
2302
2303         B3 should be able to compile and canonicalize Mul
2304         https://bugs.webkit.org/show_bug.cgi?id=151124
2305
2306         Reviewed by Geoffrey Garen.
2307
2308         * wtf/MathExtras.h:
2309         (WTF::fastLog2):
2310
2311 2015-11-10  Filip Pizlo  <fpizlo@apple.com>
2312
2313         B3 should be able to compile a program with ChillDiv
2314         https://bugs.webkit.org/show_bug.cgi?id=151114
2315
2316         Reviewed by Benjamin Poulain.
2317
2318         Needed to beef up some compiler algorithms. All of the hardening was about making them
2319         work with objects that have move semantics but not copy semantics. This arises in B3
2320         basic block insertion sets.
2321
2322         * wtf/BubbleSort.h:
2323         (WTF::bubbleSort):
2324         * wtf/Insertion.h:
2325         (WTF::Insertion::Insertion):
2326         (WTF::Insertion::index):
2327         (WTF::Insertion::element):
2328         (WTF::Insertion::operator<):
2329         (WTF::executeInsertions):
2330
2331 2015-11-10  Carlos Garcia Campos  <cgarcia@igalia.com>
2332
2333         [GTK] Use CROSS_PLATFORM_CONTEXT_MENUS
2334         https://bugs.webkit.org/show_bug.cgi?id=150642
2335
2336         Reviewed by Martin Robinson.
2337
2338         Enable CROSS_PLATFORM_CONTEXT_MENUS for GTK+ port.
2339
2340         * wtf/Platform.h:
2341
2342 2015-11-09  Anders Carlsson  <andersca@apple.com>
2343
2344         Introspect reply block types as well
2345         https://bugs.webkit.org/show_bug.cgi?id=151048
2346
2347         Reviewed by Tim Horton.
2348
2349         Fix operator-> implementation.
2350
2351         * wtf/Optional.h:
2352         (WTF::Optional::operator->):
2353
2354 2015-11-05  Nikos Andronikos  <nikos.andronikos-webkit@cisra.canon.com.au>
2355
2356         Add runtime and compile time flags for enabling Web Animations API and model.
2357         https://bugs.webkit.org/show_bug.cgi?id=150914
2358
2359         Reviewed by Benjamin Poulain.
2360
2361         Add ENABLE_WEB_ANIMATIONS compile time flag, runtime flag webAnimationsEnabled and Expose WK2 preference for runtime flag.
2362
2363         * wtf/FeatureDefines.h:
2364
2365 2015-11-05  Zan Dobersek  <zdobersek@igalia.com>
2366
2367         [GLib] Avoid gint64, std::chrono::microseconds overflows in RunLoop::TimerBase
2368         https://bugs.webkit.org/show_bug.cgi?id=150930
2369
2370         Reviewed by Carlos Garcia Campos.
2371
2372         In RunLoop::TimerBase::start(), avoid overflowing the std::chrono::microseconds
2373         value in case the passed-in fire interval (in seconds) is too large (e.g. when
2374         std::chrono::microseconds::max() is used as the desired interval). This is
2375         achieved by using the passed-in fire interval, converted in microseconds, only
2376         if the value of this interval is smaller than std::chrono::microseconds::max().
2377
2378         In RunLoop::TimerBase::updateReadyTime(), the zero-delay is still considered a
2379         short cut, but we use G_MAXINT64 in case the sum of the current time and the
2380         desired fire interval (now in microseconds) would overflow.
2381
2382         * wtf/glib/RunLoopGLib.cpp:
2383         (WTF::RunLoop::TimerBase::updateReadyTime):
2384         (WTF::RunLoop::TimerBase::start):
2385
2386 2015-11-02  Filip Pizlo  <fpizlo@apple.com>
2387
2388         B3/Air should use bubble sort for their insertion sets, because it's faster than std::stable_sort
2389         https://bugs.webkit.org/show_bug.cgi?id=150828
2390
2391         Reviewed by Geoffrey Garen.
2392
2393         Add a pretty good bubble sort implementation to WTF. This implementation has three
2394         common tricks:
2395
2396         - Forward and backward scans. This reduces the severity of certain kinds of bubble sort
2397           pathologies.
2398
2399         - Return if a scan finds the list to be sorted. This gives the algorithm one of its most
2400           attractive properties: it's super fast when the list is already sorted.
2401
2402         - Each scan eliminates one element from future scans. This makes the algorithm no worse
2403           than insertion sort.
2404
2405         Why do we want this? Because bubble sort is a really great stable sort for small lists,
2406         or large lists in which only a handful of elements are out of order. Compiler insertion
2407         sets tend to be one of those or somewhere in between: usually they are very small, and
2408         usually they are sorted. It's rare that an element will be out of order, and when it is,
2409         it's usually very close to where it's supposed to be.
2410
2411         This is a significant speed-up for B3 compile times.
2412
2413         * WTF.xcodeproj/project.pbxproj:
2414         * wtf/BubbleSort.h: Added.
2415         (WTF::bubbleSort):
2416         * wtf/CMakeLists.txt:
2417
2418 2015-11-02  Andy Estes  <aestes@apple.com>
2419
2420         [Cocoa] Add tvOS and watchOS to SUPPORTED_PLATFORMS
2421         https://bugs.webkit.org/show_bug.cgi?id=150819
2422
2423         Reviewed by Dan Bernstein.
2424
2425         This tells Xcode to include these platforms in its Devices dropdown, making it possible to build in the IDE.
2426
2427         * Configurations/Base.xcconfig:
2428
2429 2015-11-02  Carlos Garcia Campos  <cgarcia@igalia.com>
2430
2431         [GLIB] Remove support for GSocket main loop sources from GMainLoopSource
2432         https://bugs.webkit.org/show_bug.cgi?id=150772
2433
2434         Reviewed by Žan Doberšek.
2435
2436         It complicated the code just to make generic what is only used in
2437         one place.
2438
2439         * wtf/glib/GMainLoopSource.cpp:
2440         (WTF::GMainLoopSource::cancel): Deleted.
2441         (WTF::GMainLoopSource::schedule): Deleted.
2442         (WTF::GMainLoopSource::scheduleTimeoutSource): Deleted.
2443         (WTF::GMainLoopSource::scheduleAfterDelay): Deleted.
2444         (WTF::GMainLoopSource::finishVoidCallback): Deleted.
2445         (WTF::GMainLoopSource::voidCallback): Deleted.
2446         (WTF::GMainLoopSource::prepareBoolCallback): Deleted.
2447         * wtf/glib/GMainLoopSource.h:
2448         (WTF::GMainLoopSource::Context::operator=): Deleted.
2449
2450 2015-11-02  Carlos Garcia Campos  <cgarcia@igalia.com>
2451
2452         [GLIB] Remove delete on destroy GMainLoopSources
2453         https://bugs.webkit.org/show_bug.cgi?id=150771
2454
2455         Reviewed by Žan Doberšek.
2456
2457         Delete on destroy sources made the GMainLoopSource implementation
2458         more complex and they are currently unused.
2459
2460         * wtf/glib/GMainLoopSource.cpp:
2461         (WTF::GMainLoopSource::boolCallback):
2462         (WTF::GMainLoopSource::create): Deleted.
2463         (WTF::GMainLoopSource::GMainLoopSource): Deleted.
2464         (WTF::GMainLoopSource::cancel): Deleted.
2465         (WTF::GMainLoopSource::scheduleAndDeleteOnDestroy): Deleted.
2466         (WTF::GMainLoopSource::scheduleAfterDelayAndDeleteOnDestroy): Deleted.
2467         (WTF::GMainLoopSource::voidCallback): Deleted.
2468         * wtf/glib/GMainLoopSource.h:
2469
2470 2015-11-01  Carlos Garcia Campos  <cgarcia@igalia.com>
2471
2472         [GTK] Use RunLoop in WorkQueue implementation
2473         https://bugs.webkit.org/show_bug.cgi?id=150770
2474
2475         Reviewed by Darin Adler.
2476
2477         Instead of using GMainLoop directly. RunLoop already abstracts the
2478         GMainLoop details and uses persistent sources making it more efficient.
2479         For the dispatchAfter implementation we use a helper context class
2480         and a GSource directly, since we are going to get rid of delete on
2481         destroy GMainLoop soon and this is the only place where we still
2482         use them.
2483
2484         * wtf/RunLoop.h:
2485         (WTF::RunLoop::mainContext): Return the GMainContext.
2486         * wtf/WorkQueue.h:
2487         * wtf/glib/WorkQueueGLib.cpp:
2488         (WTF::WorkQueue::platformInitialize): The RunLoop needs to be
2489         created in the worker thread now, so we now use a mutex to wait
2490         until the thread has started and the RunLoop has been created.
2491         (WTF::WorkQueue::platformInvalidate): Stop the RunLoop and wait
2492         until the thread finishes.
2493         (WTF::WorkQueue::dispatch): Use RunLoop::dispatch().
2494         (WTF::DispatchAfterContext::DispatchAfterContext):
2495         (WTF::DispatchAfterContext::~DispatchAfterContext):
2496         (WTF::DispatchAfterContext::dispatch):
2497         (WTF::WorkQueue::dispatchAfter):
2498
2499 2015-11-01  Yusuke Suzuki  <utatane.tea@gmail.com>
2500
2501         [ES6] Support Generator Syntax
2502         https://bugs.webkit.org/show_bug.cgi?id=150769
2503
2504         Reviewed by Geoffrey Garen.
2505
2506         Added ENABLE_ES6_GENERATORS flag.
2507
2508         * wtf/FeatureDefines.h:
2509
2510 2015-11-01  Darin Adler  <darin@apple.com>
2511
2512         ASCIICType refinements
2513         https://bugs.webkit.org/show_bug.cgi?id=150787
2514
2515         Reviewed by Geoffrey Garen.
2516
2517         Refined ASCIICType.h by using narrower types. The most valuable part of this
2518         is the part where the result of toASCIIHexValue is uint8_t instead of int;
2519         that's slightly better for RGB values that the compiler needs to know fit
2520         into a byte (coming in some Color work I plan to do soon).
2521
2522         * wtf/ASCIICType.h: Used CharacterType instead of CharType throughout, and
2523         also sorted the using declarations at the bottom of the header.
2524         (WTF::isASCII): Use the name "character" instead of "c".
2525         (WTF::isASCIIAlpha): Ditto. Also use isASCIILower and toASCIILowerUnchecked
2526         instead of writing it out.
2527         (WTF::isASCIIDigit): Ditto.
2528         (WTF::isASCIIAlphanumeric): Ditto.
2529         (WTF::isASCIIHexDigit): Ditto. Also use toASCIILowerUnchecked instead of
2530         writing it out.
2531         (WTF::isASCIILower): Ditto.
2532         (WTF::isASCIIBinaryDigit): Ditto. Also removed unneeded parentheses to match
2533         the style of the rest of the file.
2534         (WTF::isASCIIOctalDigit): Ditto.
2535         (WTF::isASCIIPrintable): Ditto.
2536         (WTF::isASCIISpace): Ditto.
2537         (WTF::isASCIIUpper): Ditto.
2538         (WTF::toASCIILower): Ditto. Also use isASCIIUpper instead of writing it out.
2539         (WTF::toASCIILowerUnchecked): Tweaked comment.
2540         (WTF::toASCIIUpper): Ditto. Also use isASCIILower instead of writing it out.
2541         (WTF::toASCIIHexValue): Ditto. Also change return type from int to uint8_t.
2542         Also broke a single assertion with && into two separate assertions and got
2543         rid of unnnecessary masking with 0xF0 after shifting left. Also renamed
2544         arguments for the two argument value so they are more sensible.
2545         (WTF::lowerNibbleToASCIIHexDigit): Changed argument type to uint8_t, since
2546         this function does not take a character. Also called it "value" instead of "c".
2547         Also slightly tweaked how the expression is written.
2548         (WTF::upperNibbleToASCIIHexDigit): Ditto. Using the more specific type also
2549         got rid of the need to explicitly mask in this function.
2550         (WTF::isASCIIAlphaCaselessEqual): Renamed the arguments for greater clarity.
2551         With the new clearer argument names, the comment was superfluous.
2552
2553 2015-11-01  Filip Pizlo  <fpizlo@apple.com>
2554
2555         Dominators should be factored out of the DFG
2556         https://bugs.webkit.org/show_bug.cgi?id=150764
2557
2558         Reviewed by Geoffrey Garen.
2559
2560         This takes what used to be DFGDominators.h/DFGDominators.cpp and turns it into a generic
2561         algorithm that can take any abstract graph. The idea is that you create Dominators<CFG> and
2562         pass it a CFG object, which defines the types of graph nodes and methods for getting
2563         successors, predecessors, etc. The DFG now defines a class called CFG, which is a wrapper for
2564         DFG::Graph that conforms to the thing that wtf/Dominators.h expects.
2565
2566         When doing things to graphs, it's common to refer to the things in the graph as "nodes".
2567         Because I intend to reuse the CFG abstraction with many graph algorithms, that abstraction uses
2568         the term "node" to refer to a DFG basic block. But in Dominators, the method and variable names
2569         still use "block". This is because although Dominators are applicable to any kind of directed
2570         graph, it's super unlikely that we will ever use them for anything but compilers. Indeed, the
2571         only reason why I'm factoring them out of the DFG is so that I can use them with B3 and Air.
2572
2573         This has the nice side effect that a user of WTF::Dominators<JSC::DFG::CFG> will see familiar
2574         terminology like "blocksStrictlyDominatedBy(...)" instead of "nodesStrictlyDominatedBy(...)",
2575         which would be super confusing.
2576
2577         Overall, wtf/Dominators.h is a combination of what used to be in DFGDominators.h,
2578         DFGDominators.cpp, DFGNaiveDominators.h, and DFGNaiveDominators.cpp. I only changed code when I
2579         had to in order to make it generic.
2580
2581         * WTF.xcodeproj/project.pbxproj:
2582         * wtf/CMakeLists.txt:
2583         * wtf/Dominators.h: Added.
2584         (WTF::Dominators::Dominators):
2585         (WTF::Dominators::compute):
2586         (WTF::Dominators::strictlyDominates):
2587         (WTF::Dominators::dominates):
2588         (WTF::Dominators::immediateDominatorOf):
2589         (WTF::Dominators::forAllStrictDominatorsOf):
2590         (WTF::Dominators::forAllDominatorsOf):
2591         (WTF::Dominators::forAllBlocksStrictlyDominatedBy):
2592         (WTF::Dominators::forAllBlocksDominatedBy):
2593         (WTF::Dominators::strictDominatorsOf):
2594         (WTF::Dominators::dominatorsOf):
2595         (WTF::Dominators::blocksStrictlyDominatedBy):
2596         (WTF::Dominators::blocksDominatedBy):
2597         (WTF::Dominators::forAllBlocksInDominanceFrontierOf):
2598         (WTF::Dominators::dominanceFrontierOf):
2599         (WTF::Dominators::forAllBlocksInIteratedDominanceFrontierOf):
2600         (WTF::Dominators::forAllBlocksInPrunedIteratedDominanceFrontierOf):
2601         (WTF::Dominators::iteratedDominanceFrontierOf):
2602         (WTF::Dominators::dump):
2603         (WTF::Dominators::LengauerTarjan::LengauerTarjan):
2604         (WTF::Dominators::LengauerTarjan::compute):
2605         (WTF::Dominators::LengauerTarjan::immediateDominator):
2606         (WTF::Dominators::LengauerTarjan::computeDepthFirstPreNumbering):
2607         (WTF::Dominators::LengauerTarjan::computeSemiDominatorsAndImplicitImmediateDominators):
2608         (WTF::Dominators::LengauerTarjan::computeExplicitImmediateDominators):
2609         (WTF::Dominators::LengauerTarjan::link):
2610         (WTF::Dominators::LengauerTarjan::eval):
2611         (WTF::Dominators::LengauerTarjan::compress):
2612         (WTF::Dominators::LengauerTarjan::BlockData::BlockData):
2613         (WTF::Dominators::NaiveDominators::NaiveDominators):
2614         (WTF::Dominators::NaiveDominators::dominates):
2615         (WTF::Dominators::NaiveDominators::dump):
2616         (WTF::Dominators::NaiveDominators::pruneDominators):
2617         (WTF::Dominators::ValidationContext::ValidationContext):
2618         (WTF::Dominators::ValidationContext::reportError):
2619         (WTF::Dominators::ValidationContext::handleErrors):
2620         (WTF::Dominators::naiveDominates):
2621         (WTF::Dominators::forAllBlocksInDominanceFrontierOfImpl):
2622         (WTF::Dominators::forAllBlocksInIteratedDominanceFrontierOfImpl):
2623         (WTF::Dominators::BlockData::BlockData):
2624
2625 2015-11-01  Darin Adler  <darin@apple.com>
2626
2627         Remove some dead and unneeded code (ScrollbarThemeSafari, RenderThemeSafari, OPENCL, a little color space logic)
2628         https://bugs.webkit.org/show_bug.cgi?id=150783
2629
2630         Reviewed by Tim Horton.
2631
2632         * wtf/FeatureDefines.h: Removed the OPENCL feature, no longer supported.
2633
2634 2015-10-31  Filip Pizlo  <fpizlo@apple.com>
2635
2636         B3::reduceStrength's DCE should be more agro and less wrong
2637         https://bugs.webkit.org/show_bug.cgi?id=150748
2638
2639         Reviewed by Geoffrey Garen.
2640
2641         * wtf/GraphNodeWorklist.h:
2642         (WTF::GraphNodeWorklist::saw): This method is super useful.
2643
2644 2015-11-01  Philip Chimento  <philip.chimento@gmail.com>
2645
2646         [GTK] Fix combinations of PLATFORM(GTK) and OS(DARWIN)
2647         https://bugs.webkit.org/show_bug.cgi?id=144560
2648
2649         Reviewed by Darin Adler.
2650
2651         * wtf/Platform.h: Don't USE(ACCELERATE) on PLATFORM(GTK).
2652         * wtf/WorkQueue.h: Change order of OS(DARWIN) and PLATFORM(GTK)
2653         checks so that GTK facilities are used even when building the
2654         GTK platform on Darwin.
2655
2656 2015-11-01  Carlos Garcia Campos  <cgarcia@igalia.com>
2657
2658         [GTK] Use RunLoop::Timer in main thread shared timer GTK+ implementation
2659         https://bugs.webkit.org/show_bug.cgi?id=150754
2660
2661         Reviewed by Darin Adler.
2662
2663         Add API to set the priority of a RunLoop::Timer for GLib.
2664
2665         * wtf/RunLoop.h:
2666         * wtf/glib/RunLoopGLib.cpp:
2667         (WTF::RunLoop::TimerBase::setPriority):
2668
2669 2015-10-31  Andreas Kling  <akling@apple.com>
2670
2671         Add a debug overlay with information about web process resource usage.
2672         <https://webkit.org/b/150599>
2673
2674         Reviewed by Darin Adler.
2675
2676         Add ENABLE(RESOURCE_USAGE_OVERLAY) flag, enabled on Mac by default.
2677
2678         * wtf/Platform.h:
2679
2680 2015-10-30  Chris Dumez  <cdumez@apple.com>
2681
2682         Regression(r191673): Crash in RunLoopTimer::schedule()
2683         https://bugs.webkit.org/show_bug.cgi?id=150723
2684
2685         Reviewed by Anders Carlsson.
2686
2687         We were crashing in RunLoopTimer::schedule() when iterating over the
2688         SchedulePairHashSet. The reason is that we were passing this
2689         SchedulePairHashSet from the main thread to a background thread, which
2690         was not safe because the SchedulePair objects inside the HashSet were
2691         not ThreadSafeRefCounted. This patch makes them ThreadSafeRefCounted.
2692
2693         * wtf/SchedulePair.h:
2694
2695 2015-10-30  Carlos Garcia Campos  <cgarcia@igalia.com>
2696
2697         [GTK] Move the socket polling off the WorkQueue
2698         https://bugs.webkit.org/show_bug.cgi?id=150593
2699
2700         Reviewed by Anders Carlsson.
2701
2702         It doesn't really belong to the WorkQueue, it's only used by the
2703         WebKit2 connection, so it can be moved there.
2704
2705         * wtf/WorkQueue.h:
2706         * wtf/glib/WorkQueueGLib.cpp:
2707         (WTF::WorkQueue::registerSocketEventHandler): Deleted.
2708         (WTF::WorkQueue::unregisterSocketEventHandler): Deleted.
2709
2710 2015-10-29  Carlos Garcia Campos  <cgarcia@igalia.com>
2711
2712         [GTK] Use a persistent main loop source in RunLoop glib implementation
2713         https://bugs.webkit.org/show_bug.cgi?id=150590
2714
2715         Reviewed by Žan Doberšek.
2716
2717         It's more efficient than creating and destroying a new source for
2718         every dispatch and it simplifies the code.
2719
2720         * wtf/RunLoop.h:
2721         * wtf/glib/MainThreadGLib.cpp:
2722         (WTF::scheduleDispatchFunctionsOnMainThread): Use
2723         RunLoop::dispatch() instead of GMainLoopSource::scheduleAndDeleteOnDestroy().
2724         * wtf/glib/RunLoopGLib.cpp:
2725         (WTF::RunLoop::RunLoop): Create and setup the persistent source.
2726         (WTF::RunLoop::~RunLoop): Destroy the persistent source.
2727         (WTF::RunLoop::stop): Stop the persistent source before stopping
2728         the main loop.
2729         (WTF::RunLoop::wakeUp): Make the persistent source active. We
2730         no longer need to explicitly wakeup the context.
2731         (WTF::RunLoop::TimerBase::TimerBase): Create and setup the
2732         persistent source.
2733         (WTF::RunLoop::TimerBase::~TimerBase): Destroy the persistent source.
2734         (WTF::RunLoop::TimerBase::updateReadyTime): Set the ready time
2735         according to the fire interval.
2736         (WTF::RunLoop::TimerBase::start): Make the persistent source active.
2737         (WTF::RunLoop::TimerBase::stop): Stop the persistent source.
2738         (WTF::RunLoop::TimerBase::isActive): Return whether the
2739         persistent source is active.
2740
2741 2015-10-30  Philippe Normand  <pnormand@igalia.com>
2742
2743         [GTK][Mac] fix WTF build
2744         https://bugs.webkit.org/show_bug.cgi?id=150502
2745
2746         Reviewed by Alex Christensen.
2747
2748         * wtf/CMakeLists.txt: Add CommonCryptoSPI.h in the headers.
2749
2750 2015-10-29  Alex Christensen  <achristensen@webkit.org>
2751
2752         Fix Mac CMake build
2753         https://bugs.webkit.org/show_bug.cgi?id=150686
2754
2755         Reviewed by Filip Pizlo.
2756
2757         * wtf/CMakeLists.txt:
2758         * wtf/Platform.h:
2759         * wtf/PlatformMac.cmake:
2760
2761 2015-10-29  Commit Queue  <commit-queue@webkit.org>
2762
2763         Unreviewed, rolling out r191728.
2764         https://bugs.webkit.org/show_bug.cgi?id=150668
2765
2766         Caused a lot of timeouts in layout tests (Requested by KaL on
2767         #webkit).
2768
2769         Reverted changeset:
2770
2771         "[GTK] Use a persistent main loop source in RunLoop glib
2772         implementation"
2773         https://bugs.webkit.org/show_bug.cgi?id=150590
2774         http://trac.webkit.org/changeset/191728
2775
2776 2015-10-29  Carlos Garcia Campos  <cgarcia@igalia.com>
2777
2778         [GTK] Use a persistent main loop source in RunLoop glib implementation
2779         https://bugs.webkit.org/show_bug.cgi?id=150590
2780
2781         Reviewed by Žan Doberšek.
2782
2783         It's more efficient than creating and destroying a new source for
2784         every dispatch and it simplifies the code.
2785
2786         * wtf/RunLoop.h:
2787         * wtf/glib/MainThreadGLib.cpp:
2788         (WTF::scheduleDispatchFunctionsOnMainThread): Use
2789         RunLoop::dispatch() instead of GMainLoopSource::scheduleAndDeleteOnDestroy().
2790         * wtf/glib/RunLoopGLib.cpp:
2791         (WTF::RunLoop::RunLoop): Create and setup the persistent source.
2792         (WTF::RunLoop::~RunLoop): Destroy the persistent source.
2793         (WTF::RunLoop::stop): Stop the persistent source before stopping
2794         the main loop.
2795         (WTF::RunLoop::wakeUp): Make the persistent source active. We
2796         no longer need to explicitly wakeup the context.
2797         (WTF::RunLoop::TimerBase::TimerBase): Create and setup the
2798         persistent source.
2799         (WTF::RunLoop::TimerBase::~TimerBase): Destroy the persistent source.
2800         (WTF::RunLoop::TimerBase::updateReadyTime): Set the ready time
2801         according to the fire interval.
2802         (WTF::RunLoop::TimerBase::start): Make the persistent source active.
2803         (WTF::RunLoop::TimerBase::stop): Stop the persistent source.
2804         (WTF::RunLoop::TimerBase::isActive): Return whether the
2805         persistent source is active.
2806
2807 2015-10-28  Filip Pizlo  <fpizlo@apple.com>
2808
2809         Unreviewed, make sure B3 is disabled on iOS for now.
2810
2811         * wtf/Platform.h:
2812
2813 2015-10-28  Filip Pizlo  <fpizlo@apple.com>
2814
2815         Create a super rough prototype of B3
2816         https://bugs.webkit.org/show_bug.cgi?id=150280
2817
2818         Reviewed by Benjamin Poulain.
2819
2820         * WTF.xcodeproj/project.pbxproj:
2821         * wtf/CMakeLists.txt:
2822         * wtf/HashSet.h:
2823         (WTF::copyToVector):
2824         (WTF::=):
2825         * wtf/ListDump.h:
2826         (WTF::PointerListDump::PointerListDump):
2827         (WTF::PointerListDump::dump):
2828         (WTF::MapDump::MapDump):
2829         (WTF::listDump):
2830         (WTF::pointerListDump):
2831         (WTF::sortedListDump):
2832         * wtf/MathExtras.h:
2833         (WTF::leftShiftWithSaturation):
2834         (WTF::rangesOverlap):
2835         * wtf/Platform.h:
2836         * wtf/ScopedLambda.h: Added.
2837         (WTF::scopedLambda):
2838         * wtf/SharedTask.h:
2839         (WTF::createSharedTask):
2840
2841 2015-10-28  Alberto Garcia  <berto@igalia.com>
2842
2843         [SOUP] Cannot build the network process in glibc-based BSD systems
2844         https://bugs.webkit.org/show_bug.cgi?id=150618
2845
2846         Reviewed by Carlos Garcia Campos.
2847
2848         * wtf/Platform.h: Don't enable HAVE_STAT_BIRTHTIME if the system
2849         is using glibc.
2850
2851 2015-10-21  Filip Pizlo  <fpizlo@apple.com>
2852
2853         Factor out the graph node worklists from DFG into WTF
2854         https://bugs.webkit.org/show_bug.cgi?id=150411
2855
2856         Reviewed by Geoffrey Garen.
2857
2858         The new GraphNodeWorklist.h file is basically just the functionality from the old
2859         DFGBlockWorklist.h, but templatized to work for any graph node type and any kind of graph
2860         node set.
2861
2862         * WTF.xcodeproj/project.pbxproj:
2863         * wtf/CMakeLists.txt:
2864         * wtf/GraphNodeWorklist.h: Added.
2865         (WTF::GraphNodeWorklist::push):
2866         (WTF::GraphNodeWorklist::notEmpty):
2867         (WTF::GraphNodeWorklist::pop):
2868         (WTF::GraphNodeWith::GraphNodeWith):
2869         (WTF::GraphNodeWith::operator bool):
2870         (WTF::ExtendedGraphNodeWorklist::ExtendedGraphNodeWorklist):
2871         (WTF::ExtendedGraphNodeWorklist::forcePush):
2872         (WTF::ExtendedGraphNodeWorklist::push):
2873         (WTF::ExtendedGraphNodeWorklist::notEmpty):
2874         (WTF::ExtendedGraphNodeWorklist::pop):
2875         (WTF::GraphNodeWithOrder::GraphNodeWithOrder):
2876         (WTF::GraphNodeWithOrder::operator bool):
2877         (WTF::PostOrderGraphNodeWorklist::PostOrderGraphNodeWorklist):
2878         (WTF::PostOrderGraphNodeWorklist::~PostOrderGraphNodeWorklist):
2879         (WTF::PostOrderGraphNodeWorklist::pushPre):
2880         (WTF::PostOrderGraphNodeWorklist::pushPost):
2881         (WTF::PostOrderGraphNodeWorklist::push):
2882         (WTF::PostOrderGraphNodeWorklist::notEmpty):
2883         (WTF::PostOrderGraphNodeWorklist::pop):
2884         * wtf/HashTable.h:
2885         (WTF::HashTableAddResult::HashTableAddResult):
2886         (WTF::HashTableAddResult::operator bool):
2887
2888 2015-10-20  Tim Horton  <timothy_horton@apple.com>
2889
2890         Try to fix the build by disabling MAC_GESTURE_EVENTS on 10.9 and 10.10
2891
2892         * wtf/FeatureDefines.h:
2893
2894 2015-10-20  Yoav Weiss  <yoav@yoav.ws>
2895
2896         Rename the PICTURE_SIZES flag to CURRENTSRC
2897         https://bugs.webkit.org/show_bug.cgi?id=150275
2898
2899         Reviewed by Dean Jackson.
2900
2901         * wtf/FeatureDefines.h:
2902
2903 2015-10-19  Beth Dakin  <bdakin@apple.com>
2904
2905         Build fix.
2906
2907         * wtf/FeatureDefines.h:
2908
2909 2015-10-19  Tim Horton  <timothy_horton@apple.com>
2910
2911         Add magnify and rotate gesture event support for Mac
2912         https://bugs.webkit.org/show_bug.cgi?id=150179
2913         <rdar://problem/8036240>
2914
2915         Reviewed by Darin Adler.
2916
2917         * wtf/FeatureDefines.h:
2918         New feature flag.
2919
2920 2015-10-17  Mark Lam  <mark.lam@apple.com>
2921
2922         Add CPU(X86) to the supported MASM_PROBE CPUs. This was accidentally left out in r191197.
2923
2924         Not reviewed.
2925
2926         * wtf/Platform.h:
2927
2928 2015-10-16  Mark Lam  <mark.lam@apple.com>
2929
2930         Always enable MASM_PROBE for debug builds.
2931         https://bugs.webkit.org/show_bug.cgi?id=150190
2932
2933         Reviewed by Geoffrey Garen.
2934
2935         * wtf/Platform.h:
2936
2937 2015-10-14  Andreas Kling  <akling@apple.com>
2938
2939         REGRESSION(r190882): Concatenating a character array and an empty string is broken.
2940         <https://webkit.org/b/150135>
2941
2942         Reviewed by Geoffrey Garen.
2943
2944         StringAdapter templates for raw character arrays were always using 1 as the array length
2945         in toString().
2946
2947         * wtf/text/StringConcatenate.h:
2948
2949 2015-10-14  Per Arne Vollan  <peavo@outlook.com>
2950
2951         [Win64] Enable concurrent JIT.
2952         https://bugs.webkit.org/show_bug.cgi?id=150098
2953
2954         Reviewed by Csaba Osztrogonác.
2955
2956         * wtf/Platform.h:
2957
2958 2015-10-13  Simon Fraser  <simon.fraser@apple.com>
2959
2960         Add helper funtion for checking pointer equivalency and use it
2961         https://bugs.webkit.org/show_bug.cgi?id=150022
2962
2963         Reviewed by Darin Adler.
2964         
2965         Add PointerComparison.h which contains the templated pointer comparison
2966         function.
2967
2968         * WTF.xcodeproj/project.pbxproj:
2969         * wtf/PointerComparison.h: Added.
2970         (WTF::arePointingToEqualData):
2971
2972 2015-10-12  Andreas Kling  <akling@apple.com>
2973
2974         "A + B" with strings shouldn't copy if A or B is empty.
2975         <https://webkit.org/b/150034>
2976
2977         Reviewed by Anders Carlsson.
2978
2979         Add a fast path to WTF's operator+ magic for concatenation of two strings where
2980         one of them is empty. In that case, try to avoid allocation altogether by returning
2981         the non-empty string.
2982
2983         Spotted this while analyzing memory peaks during page load; it turns out we were
2984         duplicating whole text resources (JS, CSS) at the end of decoding, below
2985         TextResourceDecoder::decodeAndFlush(). That function effectively does:
2986
2987             return decode() + flush();
2988
2989         Very often, flush() returns an empty string, so due to the naive operator+,
2990         we'd allocate a new StringImpl of length (decode().length() + flush().length())
2991         and copy the return value from decode() into it. So silly!
2992
2993         Had to make the tryMakeString() machinery use String as a return type instead of
2994         RefPtr<StringImpl> to make all the right overloads gel. StringTypeAdapter templates
2995         are now required to provide a toString() function.
2996
2997         * wtf/text/StringConcatenate.h:
2998         (WTF::StringTypeAdapter<char>::toString):
2999         (WTF::StringTypeAdapter<UChar>::toString):
3000         (WTF::StringTypeAdapter<Vector<char>>::toString):
3001         (WTF::StringTypeAdapter<String>::toString):
3002         (WTF::tryMakeString):
3003         (WTF::makeString):
3004         * wtf/text/StringOperators.h:
3005         (WTF::StringAppend::operator String):
3006         * wtf/text/StringView.h:
3007         (WTF::StringTypeAdapter<StringView>::toString):
3008
3009 2015-10-12  Filip Pizlo  <fpizlo@apple.com>
3010
3011         Unreviewed, fix style in the hopes that it fixes Windows.
3012
3013         * wtf/ParallelHelperPool.cpp:
3014         (WTF::ParallelHelperClient::~ParallelHelperClient):
3015         (WTF::ParallelHelperClient::setTask):
3016         (WTF::ParallelHelperClient::doSomeHelping):
3017         (WTF::ParallelHelperClient::runTaskInParallel):
3018         (WTF::ParallelHelperClient::finish):
3019         (WTF::ParallelHelperClient::claimTask):
3020         (WTF::ParallelHelperClient::runTask):
3021         (WTF::ParallelHelperPool::doSomeHelping):
3022         (WTF::ParallelHelperPool::helperThreadBody):
3023         * wtf/ParallelHelperPool.h:
3024         (WTF::ParallelHelperClient::setFunction):
3025         (WTF::ParallelHelperClient::runFunctionInParallel):
3026         (WTF::ParallelHelperClient::pool):
3027
3028 2015-10-10  Filip Pizlo  <fpizlo@apple.com>
3029
3030         FTL should generate code to call slow paths lazily
3031         https://bugs.webkit.org/show_bug.cgi?id=149936
3032
3033         Reviewed by Saam Barati.
3034
3035         Enables SharedTask to handle any function type, not just void().
3036
3037         It's probably better to use SharedTask instead of std::function in performance-sensitive
3038         code. std::function uses the system malloc and has copy semantics. SharedTask uses FastMalloc
3039         and has aliasing semantics. So, you can just trust that it will have sensible performance
3040         characteristics.
3041
3042         * wtf/ParallelHelperPool.cpp:
3043         (WTF::ParallelHelperClient::~ParallelHelperClient):
3044         (WTF::ParallelHelperClient::setTask):
3045         (WTF::ParallelHelperClient::doSomeHelping):
3046         (WTF::ParallelHelperClient::runTaskInParallel):
3047         (WTF::ParallelHelperClient::finish):
3048         (WTF::ParallelHelperClient::claimTask):
3049         (WTF::ParallelHelperClient::runTask):
3050         (WTF::ParallelHelperPool::doSomeHelping):
3051         (WTF::ParallelHelperPool::helperThreadBody):
3052         * wtf/ParallelHelperPool.h:
3053         (WTF::ParallelHelperClient::setFunction):
3054         (WTF::ParallelHelperClient::runFunctionInParallel):
3055         (WTF::ParallelHelperClient::pool):
3056         * wtf/SharedTask.h:
3057         (WTF::createSharedTask):
3058         (WTF::SharedTask::SharedTask): Deleted.
3059         (WTF::SharedTask::~SharedTask): Deleted.
3060         (WTF::SharedTaskFunctor::SharedTaskFunctor): Deleted.
3061
3062 2015-10-10  Dan Bernstein  <mitz@apple.com>
3063
3064         [iOS] Remove unnecessary iOS version checks
3065         https://bugs.webkit.org/show_bug.cgi?id=150002
3066
3067         Reviewed by Alexey Proskuryakov.
3068
3069         * wtf/Platform.h:
3070
3071 2015-10-10  Dan Bernstein  <mitz@apple.com>
3072
3073         [iOS] Remove project support for iOS 8
3074         https://bugs.webkit.org/show_bug.cgi?id=149993
3075
3076         Reviewed by Alexey Proskuryakov.
3077
3078         * Configurations/Base.xcconfig:
3079         * Configurations/WTF.xcconfig:
3080         * Configurations/mbmalloc.xcconfig:
3081
3082 2015-10-08  Joseph Pecoraro  <pecoraro@apple.com>
3083
3084         Clean up Marked classes
3085         https://bugs.webkit.org/show_bug.cgi?id=149853
3086
3087         Reviewed by Darin Adler.
3088
3089         * wtf/PageBlock.h:
3090         Remove duplicate using statement.
3091
3092 2015-10-08  Joseph Pecoraro  <pecoraro@apple.com>
3093
3094         Remove PageReservation.h clang fixme that has been fixed for a while
3095         https://bugs.webkit.org/show_bug.cgi?id=149908
3096
3097         Reviewed by Csaba Osztrogonác.
3098
3099         * wtf/PageReservation.h:
3100         (WTF::PageReservation::operator bool): Deleted.
3101
3102 2015-10-06  Daniel Bates  <dbates@webkit.org>
3103
3104         Enable XSLT when building WebKit for iOS using the public iOS SDK
3105         https://bugs.webkit.org/show_bug.cgi?id=149827
3106
3107         Reviewed by Alexey Proskuryakov.
3108
3109         * wtf/FeatureDefines.h:
3110
3111 2015-10-04  Filip Pizlo  <fpizlo@apple.com>
3112
3113         Inline cache repatching should be throttled if it happens a lot
3114         https://bugs.webkit.org/show_bug.cgi?id=149796
3115         rdar://problem/22674436
3116
3117         Reviewed by Saam Barati.
3118
3119         Add some helpers for saturated math.
3120
3121         * wtf/MathExtras.h:
3122         (WTF::incrementWithSaturation):
3123         (WTF::leftShiftWithSaturation):
3124
3125 2015-10-01  Brent Fulgham  <bfulgham@apple.com>
3126
3127         [Win] Unreviewed CMake build fixes.
3128
3129         * wtf/CMakeLists.txt: Correct build flags to match
3130         the original project files.
3131
3132 2015-09-30  Commit Queue  <commit-queue@webkit.org>
3133
3134         Unreviewed, rolling out r190324.
3135         https://bugs.webkit.org/show_bug.cgi?id=149671
3136
3137         Caused flaky crashes, rdar://problem/22916304 (Requested by ap
3138         on #webkit).
3139
3140         Reverted changeset:
3141
3142         "ParallelHelperPool::runFunctionInParallel() shouldn't
3143         allocate, and ParallelHelperPool.h shouldn't be included
3144         everywhere"
3145         https://bugs.webkit.org/show_bug.cgi?id=149635
3146         http://trac.webkit.org/changeset/190324
3147
3148 2015-09-29  Filip Pizlo  <fpizlo@apple.com>
3149
3150         ParallelHelperPool::runFunctionInParallel() shouldn't allocate, and ParallelHelperPool.h shouldn't be included everywhere
3151         https://bugs.webkit.org/show_bug.cgi?id=149635
3152
3153         Reviewed by Saam Barati.
3154
3155         * wtf/ParallelHelperPool.h:
3156         (WTF::ParallelHelperClient::runFunctionInParallel): Stack-allocate the task instead of heap-allocating it.
3157
3158 2015-09-29  Filip Pizlo  <fpizlo@apple.com>
3159
3160         GC copy phase spans too many files
3161         https://bugs.webkit.org/show_bug.cgi?id=149586
3162
3163         Reviewed by Andreas Kling.
3164
3165         Extract the load balancing algorithm used by the GC's copy phase into a reusable template.
3166         The GC copy phase now uses this.
3167
3168         * WTF.vcxproj/WTF.vcxproj:
3169         * WTF.vcxproj/WTF.vcxproj.filters:
3170         * WTF.xcodeproj/project.pbxproj:
3171         * wtf/CMakeLists.txt:
3172         * wtf/ParallelVectorIterator.h: Added.
3173         (WTF::ParallelVectorIterator::ParallelVectorIterator):
3174         (WTF::ParallelVectorIterator::iterate):
3175
3176 2015-09-26  Filip Pizlo  <fpizlo@apple.com>
3177
3178         Unreviewed, fix Windows build by adding WTF_EXPORT_PRIVATE in various places.
3179
3180         * wtf/ParallelHelperPool.h:
3181         (WTF::ParallelHelperClient::setFunction):
3182         (WTF::ParallelHelperPool::numberOfThreads):
3183
3184 2015-09-24  Filip Pizlo  <fpizlo@apple.com>
3185
3186         VMs should share GC threads
3187         https://bugs.webkit.org/show_bug.cgi?id=149433
3188         rdar://problem/12859344
3189
3190         Reviewed by Geoffrey Garen.
3191
3192         This adds two major things to WTF: WeakRandom and ParallelHelperPool. WeakRandom was
3193         already in JSC; we're just hoisting it into WTF. It's just a weak random number generator
3194         that's suitable for places where you need just a tiny bit of randomness.
3195
3196         ParallelHelperPool is a new API that simplifies data-parallel algorithms like the JSC GC.
3197         In a data-parallel algorithm, we want to run one task on as many cores as possible and let
3198         the task worry about which subset of the input data to work on. In some cases, the
3199         algorithm will not need to do any load balancing - and if load balancing is required, it's
3200         up to the user. This is appropriate in contexts where the load balancing needs to be
3201         custom-tuned for performance, like the GC's marking phase.
3202
3203         This new API has three concepts: task, client, and pool. A task is a reference counted
3204         object with a run() method, which may be run in parallel. It is usually used to wrap a
3205         functor. A pool is a pool of threads that can run things. A client is a placeholder for a
3206         task. A client can have zero or one tasks. A client must be registered with a pool. When a
3207         client has a task, the pool's threads may choose to run it. If a thread starts running a
3208         task, it will run it to completion. When the task returns on any thread, the client takes
3209         it to mean that the task should be removed. That means that any currently running instances
3210         of the task will finish but no new threads will attempt to run the task. You can easily ask
3211         a client to wait until a task finishes. You can also easily ask a client to run a task on
3212         the current thread in addition to possibly some helper threads from the pool.
3213
3214         For some data-parallel algorithms, programming with ParallelHelperPool is as easy as:
3215
3216         client.runFunctionInParallel(
3217             [=] () {
3218                 do things;
3219             });
3220
3221         Note that you cannot tell ahead of time how many threads will join to help the task.
3222         Threads may become available after the task has already started running. Those threads may
3223         join after the other threads have already started. It's not advisable to make algorithmic
3224         decisions based on client.numberOfActiveThreads(), since that number may change. Usually
3225         the best way to use ParallelHelperPool is with an algorithm that has its own custom
3226         worklist. An example of a very simple custom worklist is the one in the JSC GC's copying
3227         phase - it's just a Vector and an index that indicates the next set of elements to process.
3228
3229         This new API was initially designed to simplify how GCThread works, by replacing Phase with
3230         a callback that contains the phase's workload. I then realized that with a few tweaks, I
3231         could make this somewhat general enough that it might become interesting outside GC. I also
3232         realized that I could use this to enable thread sharing. So, although the API is kinda
3233         quirky, it's grounded in the reality of how the JSC GC does parallelism.
3234
3235         * WTF.vcxproj/WTF.vcxproj:
3236         * WTF.vcxproj/WTF.vcxproj.filters:
3237         * WTF.xcodeproj/project.pbxproj:
3238         * wtf/CMakeLists.txt:
3239         * wtf/ParallelHelperPool.cpp: Added.
3240         (WTF::ParallelHelperClient::ParallelHelperClient):
3241         (WTF::ParallelHelperClient::~ParallelHelperClient):
3242         (WTF::ParallelHelperClient::setTask):
3243         (WTF::ParallelHelperClient::finish):
3244         (WTF::ParallelHelperClient::doSomeHelping):
3245         (WTF::ParallelHelperClient::runTaskInParallel):
3246         (WTF::ParallelHelperClient::claimTask):
3247         (WTF::ParallelHelperClient::runTask):
3248         (WTF::ParallelHelperPool::ParallelHelperPool):
3249         (WTF::ParallelHelperPool::~ParallelHelperPool):
3250         (WTF::ParallelHelperPool::addThreads):
3251         (WTF::ParallelHelperPool::ensureThreads):
3252         (WTF::ParallelHelperPool::doSomeHelping):
3253         (WTF::ParallelHelperPool::didMakeWorkAvailable):
3254         (WTF::ParallelHelperPool::helperThreadBody):
3255         (WTF::ParallelHelperPool::hasClientWithTask):
3256         (WTF::ParallelHelperPool::getClientWithTask):
3257         (WTF::ParallelHelperPool::waitForClientWithTask):
3258         * wtf/ParallelHelperPool.h: Added.
3259         (WTF::ParallelHelperClient::setFunction):
3260         (WTF::ParallelHelperClient::runFunctionInParallel):
3261         (WTF::ParallelHelperClient::pool):
3262         (WTF::ParallelHelperClient::numberOfActiveThreads):
3263         (WTF::ParallelHelperPool::numberOfThreads):
3264         * wtf/SharedTask.h: Added.
3265         (WTF::SharedTask::SharedTask):
3266         (WTF::SharedTask::~SharedTask):
3267         (WTF::SharedTaskFunctor::SharedTaskFunctor):
3268         (WTF::createSharedTask):
3269         * wtf/WeakRandom.h: Copied from Source/JavaScriptCore/runtime/WeakRandom.h.
3270         (WTF::WeakRandom::WeakRandom):
3271         (WTF::WeakRandom::initializeSeed):
3272         (WTF::WeakRandom::seedUnsafe):
3273         (WTF::WeakRandom::getUint32):
3274         (WTF::WeakRandom::advance):
3275         (JSC::WeakRandom::WeakRandom): Deleted.
3276         (JSC::WeakRandom::seedUnsafe): Deleted.
3277         (JSC::WeakRandom::getUint32): Deleted.
3278         (JSC::WeakRandom::advance): Deleted.
3279         (JSC::WeakRandom::initializeSeed): Deleted.
3280
3281 2015-09-25  Alex Christensen  <achristensen@webkit.org>
3282
3283         Clean up CMake build on Mac
3284         https://bugs.webkit.org/show_bug.cgi?id=149573
3285
3286         Reviewed by Chris Dumez.
3287
3288         * wtf/PlatformMac.cmake:
3289
3290 2015-09-25  Alex Christensen  <achristensen@webkit.org>
3291
3292         [Win] Switch to CMake
3293         https://bugs.webkit.org/show_bug.cgi?id=148111
3294
3295         Reviewed by Brent Fulgham.
3296
3297         * WTF.vcxproj/WTF.proj:
3298
3299 2015-09-25  Joseph Pecoraro  <pecoraro@apple.com>
3300
3301         Simplify Stopwatch::elapsedTime
3302         https://bugs.webkit.org/show_bug.cgi?id=149538
3303
3304         Reviewed by Darin Adler.
3305
3306         * wtf/Stopwatch.h:
3307         (WTF::Stopwatch::elapsedTime):
3308         Simplify by not starting/stopping but just computing without updating members.
3309
3310 2015-09-25  Brent Fulgham  <bfulgham@apple.com>
3311
3312         [Win] Unreviewed build fix.
3313
3314         * wtf/FeatureDefines.h: Don't turn STREAMS_API on by default
3315         on Windows.
3316
3317 2015-09-24  Ryosuke Niwa  <rniwa@webkit.org>
3318
3319         Ran sort-Xcode-project-file.
3320
3321         * WTF.xcodeproj/project.pbxproj:
3322
3323 2015-09-23  Andy Estes  <aestes@apple.com>
3324
3325         Disable QuickLook on watchOS
3326         https://bugs.webkit.org/show_bug.cgi?id=149508
3327         <rdar://problem/22517968>
3328
3329         Reviewed by Dan Bernstein.
3330
3331         * wtf/Platform.h:
3332
3333 2015-09-22  Andy Estes  <aestes@apple.com>
3334
3335         Disable QuickLook on tvOS
3336         https://bugs.webkit.org/show_bug.cgi?id=149492
3337         <rdar://problem/22741586>
3338
3339         Reviewed by Dan Bernstein.
3340
3341         * wtf/Platform.h: Stopped enabling QuickLook on tvOS.
3342
3343 2015-09-22  Filip Pizlo  <fpizlo@apple.com>
3344
3345         Get rid of ENABLE(PARALLEL_GC)
3346         https://bugs.webkit.org/show_bug.cgi?id=149436
3347
3348         Reviewed by Mark Lam.
3349
3350         We always enable parallel GC everywhere but Windows, and it doesn't look like it was disabled
3351         there for any good reason. So, get rid of the flag.
3352
3353         * wtf/MainThread.cpp:
3354         (WTF::canAccessThreadLocalDataForThread):
3355         (WTF::initializeGCThreads):
3356         (WTF::registerGCThread):
3357         (WTF::isMainThreadOrGCThread):
3358         * wtf/Platform.h:
3359
3360 2015-09-22  Filip Pizlo  <fpizlo@apple.com>
3361
3362         Get rid of ENABLE(GGC)
3363         https://bugs.webkit.org/show_bug.cgi?id=149472
3364
3365         Reviewed by Mark Hahnenberg and Mark Lam.
3366
3367         * wtf/Platform.h:
3368
3369 2015-09-21  Filip Pizlo  <fpizlo@apple.com>
3370
3371         Always use the compiler's CAS implementation and get rid of ENABLE(COMPARE_AND_SWAP)
3372         https://bugs.webkit.org/show_bug.cgi?id=149438
3373
3374         Reviewed by Mark Lam.
3375
3376         * wtf/Atomics.h: Make weakCompareAndSwap() just forward to the system CAS via WTF::Atomic.
3377         (WTF::weakCompareAndSwap):
3378         (WTF::weakCompareAndSwapUIntPtr): Deleted.
3379         (WTF::weakCompareAndSwapSize): Deleted.
3380         * wtf/Bitmap.h: Small changes to use the new API.
3381         (WTF::WordType>::concurrentTestAndSet):
3382         * wtf/Platform.h: Remove ENABLE(COMPARE_AND_SWAP)
3383
3384 2015-09-21  Csaba Osztrogonác  <ossy@webkit.org>
3385
3386         Remove old GCC cruft from wtf/StdLibExtras.h
3387         https://bugs.webkit.org/show_bug.cgi?id=149401
3388
3389         Reviewed by Alex Christensen.
3390
3391         * wtf/StdLibExtras.h:
3392
3393 2015-09-21  Andy Estes  <aestes@apple.com>
3394
3395         Disable Parental Controls on the Apple TV platform
3396         https://bugs.webkit.org/show_bug.cgi?id=149421
3397
3398         Reviewed by Darin Adler.
3399
3400         * wtf/Platform.h:
3401
3402 2015-09-21  Filip Pizlo  <fpizlo@apple.com>
3403
3404         JSC should infer property types
3405         https://bugs.webkit.org/show_bug.cgi?id=148610
3406
3407         Reviewed by Geoffrey Garen.
3408
3409         * wtf/HashTable.h:
3410         (WTF::HashTableAddResult::HashTableAddResult): Make it possible to say "HashMap::AddResult result" without assigning anything to it yet.
3411         * wtf/PrintStream.h:
3412         (WTF::printInternal): Beef up printing of some common WTF types, in particular RefPtr<UniquedStringImpl>.
3413
3414 2015-09-20  Youenn Fablet  <youenn.fablet@crf.canon.fr>
3415
3416         Remove XHR_TIMEOUT compilation guard
3417         https://bugs.webkit.org/show_bug.cgi?id=149260
3418
3419         Reviewed by Benjamin Poulain.
3420
3421         * wtf/FeatureDefines.h:
3422
3423 2015-09-17  Filip Pizlo  <fpizlo@apple.com>
3424
3425         Unreviewed, revert unintended change.
3426
3427         * benchmarks/LockSpeedTest.cpp:
3428         (main):
3429
3430 2015-09-15  Ryosuke Niwa  <rniwa@webkit.org>
3431
3432         Add ShadowRoot interface and Element.prototype.attachShadow
3433         https://bugs.webkit.org/show_bug.cgi?id=149187
3434
3435         Reviewed by Antti Koivisto.
3436
3437         * wtf/FeatureDefines.h:
3438
3439
3440 2015-09-11  Keith Miller  <keith_miller@apple.com>
3441
3442         cryptographicallyRandomValuesFromOS should use CCRandomCopyBytes when available.
3443         https://bugs.webkit.org/show_bug.cgi?id=148439
3444
3445         Reviewed by Alexey Proskuryakov.
3446
3447         Recently, we switched to using arc4random_buf on Darwin but further research indicates that
3448         arc4random_buf has the same behavior we had before and thus we were just pushing the problem
3449         further down the stack. CCRandomCopyBytes, however, appears to be more advanced and has much
3450         better error handling than we had before.
3451
3452         * WTF.xcodeproj/project.pbxproj:
3453         * wtf/OSRandomSource.cpp:
3454         (WTF::cryptographicallyRandomValuesFromOS):
3455         * wtf/spi/darwin/CommonCryptoSPI.h: Added.
3456
3457 2015-09-08  Filip Pizlo  <fpizlo@apple.com>
3458
3459         There should be one stub hanging off an inline cache that contains code for all of the cases, rather than forming a linked list consisting of one stub per case
3460         https://bugs.webkit.org/show_bug.cgi?id=148717
3461
3462         Reviewed by Michael Saboff.
3463
3464         Beef up dumping a bit.
3465
3466         * wtf/PrintStream.h:
3467         (WTF::pointerDump):
3468         (WTF::printInternal):
3469
3470 2015-09-08  Mark Lam  <mark.lam@apple.com>
3471
3472         GC stack scan should include ABI red zone.
3473         https://bugs.webkit.org/show_bug.cgi?id=148976
3474
3475         Reviewed by Geoffrey Garen and Benjamin Poulain.
3476
3477         * wtf/StackBounds.h:
3478         (WTF::StackBounds::origin):
3479         (WTF::StackBounds::end):
3480         (WTF::StackBounds::size):
3481
3482 2015-09-04  Csaba Osztrogonác  <ossy@webkit.org>
3483
3484         Enable reference qualified functions for GCC
3485         https://bugs.webkit.org/show_bug.cgi?id=148526
3486
3487         Reviewed by Darin Adler.
3488
3489         * wtf/Compiler.h:
3490
3491 2015-09-04  Csaba Osztrogonác  <ossy@webkit.org>
3492
3493         webkit-unassigned@lists.webkit.org
3494         https://bugs.webkit.org/show_bug.cgi?id=148525
3495
3496         Reviewed by Darin Adler.
3497
3498         * wtf/Compiler.h:
3499
3500 2015-08-29  Zan Dobersek  <zdobersek@igalia.com>
3501
3502         [WTF] Improve a ParkingLot::parkConditionally() comment for a libstdc++ workaround
3503         https://bugs.webkit.org/show_bug.cgi?id=148571
3504
3505         Reviewed by Filip Pizlo.
3506
3507         * wtf/ParkingLot.cpp:
3508         (WTF::ParkingLot::parkConditionally): Adjust the comment about the workaround for
3509         the libstdc++ std::condition_variable implementation, linking to the WebKit bug
3510         that dissected the problem and the GCC bug that originally reported the problem.
3511
3512 2015-08-28  Anders Carlsson  <andersca@apple.com>
3513
3514         Remove the #if PLATFORM(MAC) in DeprecatedSymbolsUsedBySafari.mm so we'll actually build it on iOS.
3515
3516         Reviewed by Dan Bernstein.
3517
3518         * wtf/mac/DeprecatedSymbolsUsedBySafari.mm:
3519
3520 2015-08-27  Anders Carlsson  <andersca@apple.com>
3521
3522         Define legacy main thread calling functions for iOS as well
3523         https://bugs.webkit.org/show_bug.cgi?id=148530
3524
3525         Reviewed by Tim Horton.
3526
3527         * wtf/mac/DeprecatedSymbolsUsedBySafari.mm:
3528
3529 2015-08-26  Anders Carlsson  <andersca@apple.com>
3530
3531         Fix build.
3532
3533         * wtf/WorkQueue.cpp:
3534
3535 2015-08-26  Anders Carlsson  <andersca@apple.com>
3536
3537         Add and implement WorkQueue::concurrentApply
3538         https://bugs.webkit.org/show_bug.cgi?id=148488
3539
3540         Reviewed by Geoffrey Garen.
3541
3542         WorkQueue::concurrentApply is modeled after dispatch_apply, and on Cocoa it uses dispatch_apply directly.
3543         For other ports there's a generic concurrentApply implemented using our threading primitives.
3544         
3545         * wtf/NeverDestroyed.h:
3546         (WTF::LazyNeverDestroyed::operator->):
3547         * wtf/WorkQueue.cpp:
3548         (WTF::WorkQueue::concurrentApply):
3549         * wtf/WorkQueue.h:
3550         * wtf/cocoa/WorkQueueCocoa.cpp:
3551         (WTF::WorkQueue::concurrentApply):
3552
3553 2015-08-25  Filip Pizlo  <fpizlo@apple.com>
3554
3555         Node::origin should be able to tell you if it's OK to exit
3556         https://bugs.webkit.org/show_bug.cgi?id=145204
3557
3558         Reviewed by Geoffrey Garen.
3559
3560         * wtf/Insertion.h:
3561         (WTF::executeInsertions): Add a useful assertion. This come into play because JSC will use UINT_MAX as "invalid index", and that ought to trigger this assertion.
3562
3563 2015-08-25  Csaba Osztrogonác  <ossy@webkit.org>
3564
3565         Require GCC version at least 4.9
3566         https://bugs.webkit.org/show_bug.cgi?id=148430
3567
3568         Reviewed by Darin Adler.
3569
3570         * wtf/Compiler.h:
3571
3572 2015-08-22  Anders Carlsson  <andersca@apple.com>
3573
3574         std::once_flag needs to be static.
3575
3576         * wtf/mac/DeprecatedSymbolsUsedBySafari.mm:
3577         (WTF::MainThreadFunctionTracker::singleton):
3578
3579 2015-08-21  Anders Carlsson  <andersca@apple.com>
3580
3581         Build fix.
3582
3583         * wtf/MainThread.h:
3584
3585 2015-08-21  Anders Carlsson  <andersca@apple.com>
3586
3587         Address review feedback from Darin.
3588
3589         * wtf/MainThread.h:
3590         * wtf/mac/DeprecatedSymbolsUsedBySafari.mm:
3591         (WTF::callOnMainThread):
3592         (WTF::cancelCallOnMainThread):
3593
3594 2015-08-21  Anders Carlsson  <andersca@apple.com>
3595
3596         Deprecate the old school callOnMainThread/cancelCallOnMainThread functions
3597         https://bugs.webkit.org/show_bug.cgi?id=148327
3598
3599         Reviewed by Sam Weinig.
3600
3601         * wtf/MainThread.cpp:
3602         (WTF::functionQueue):
3603         (WTF::dispatchFunctionsFromMainThread):
3604         (WTF::callOnMainThread):
3605         Change the function queue to be a queue of std::function<void ()> and get rid of dead code.
3606
3607         * wtf/MainThread.h:
3608         Conditionalize callOnMainThread and cancelCallOnMainThread because Safari on Mavericks still expects to them to be
3609         declared in MainThread.h under 10.9.
3610
3611         * wtf/mac/DeprecatedSymbolsUsedBySafari.mm:
3612         Add a MainThreadFunctionTracker singleton that keeps track of scheduled functions so we can ensure that they're not
3613         called if they're cancelled.
3614
3615         (WTF::MainThreadFunctionTracker::singleton):
3616         Return the singleton.
3617
3618         (WTF::MainThreadFunctionTracker::callOnMainThread):
3619         Add the function/context pair to our map and schedule the function to be run on the main thread.
3620         If the function has been removed, don't call it.
3621
3622         (WTF::MainThreadFunctionTracker::cancelCallOnMainThread):
3623         Remove all entries with the given function/context pair.
3624
3625         (WTF::MainThreadFunctionTracker::addFunction):
3626         Add the function/context pair to the map and return the unique identifier.