56d30ecc1cabfc9e8a60aedf6afc7d5f935e5b89
[WebKit-https.git] / Source / WTF / ChangeLog
1 2014-12-01  Oliver Hunt  <oliver@apple.com>
2
3         Fix non-mac builds.
4
5         * wtf/IndexedIterator.h:
6
7 2014-12-01  Oliver Hunt  <oliver@apple.com>
8
9         Fix 32-bit build.
10
11         * wtf/IndexedIterator.h:
12
13 2014-11-17  Oliver Hunt  <oliver@apple.com>
14
15         Make sure range based iteration of Vector<> still receives bounds checking
16         https://bugs.webkit.org/show_bug.cgi?id=138821
17
18         Reviewed by Mark Lam.
19
20         Add a new IndexedIterator struct to WTF that wraps a
21         Vector type and index to provide pointer like semantics
22         while still performing runtime bounds checking, even in
23         release builds. We store a simple index into the vector
24         which means that this iterator allows vector resizing
25         during iteration. If the vector is resized such that the
26         iterator is out of bounds, then any attempt to dereference
27         the iterator will crash safely. Any other errors, including
28         overflows, and over extending the iterator will likewise
29         crash.
30
31         For the purpose of retaining semantically equivalent
32         behaviour, the iterator can be moved to m_index == size()
33         as that is the standard "end" terminator for these types.
34         Attempting to dereference at that point will still crash
35         rather than perform an unsafe memory operation.
36
37         In order to maintain the validity of all the bounds checking,
38         we perform full integer range checking prior to any mutation
39         of the iterator location. If we detect an arithmetic overflow
40         we will crash rather than attempting to carry on.
41
42         By necessity there are many overrides for operator + and - as
43         we otherwise hit many different type promotion ambiguities when
44         performing arithmetic with iterators. These ambiguities are also
45         different for 32- vs. 64-bit, so duplicating the functions
46         and then forwarding to the core implementations that performed
47         the bounds checking and mutation seemed like the right call.
48
49         * WTF.xcodeproj/project.pbxproj:
50         * wtf/IndexedIterator.h: Added.
51         (WTF::IndexedIterator::IndexedIterator):
52         (WTF::IndexedIterator::operator->):
53         (WTF::IndexedIterator::operator*):
54         (WTF::IndexedIterator::get):
55         (WTF::IndexedIterator::operator++):
56         (WTF::IndexedIterator::operator--):
57         (WTF::IndexedIterator::operator UnspecifiedBoolType):
58         (WTF::IndexedIterator::operator+=):
59         (WTF::IndexedIterator::operator-=):
60         (WTF::IndexedIterator::operator+):
61         (WTF::IndexedIterator::operator-):
62         (WTF::IndexedIterator::operator=):
63         (WTF::IndexedIterator::operator==):
64         (WTF::IndexedIterator::operator!=):
65         (WTF::IndexedIterator::operator<):
66         (WTF::IndexedIterator::operator<=):
67         (WTF::IndexedIterator::operator>):
68         (WTF::IndexedIterator::operator>=):
69         (WTF::IndexedIterator::operator const_iterator):
70         (WTF::IndexedIterator::isSafeToCompare):
71         (WTF::IndexedIterator::unsafeGet):
72         (WTF::getPtr):
73         (WTF::operator-):
74         (WTF::operator==):
75         (WTF::operator!=):
76         (WTF::operator<=):
77         (WTF::operator>=):
78         (WTF::operator<):
79         (WTF::operator>):
80         (WTF::IndexedIteratorSelector::makeIterator):
81         (WTF::IndexedIteratorSelector::makeConstIterator):
82         * wtf/RefCountedArray.h:
83         (WTF::RefCountedArray::RefCountedArray):
84         * wtf/Vector.h:
85         (WTF::Vector::Vector):
86         (WTF::Vector::begin):
87         (WTF::Vector::end):
88         (WTF::OverflowHandler>::Vector):
89         (WTF::=):
90         (WTF::OverflowHandler>::fill):
91         (WTF::OverflowHandler>::expandCapacity):
92         (WTF::OverflowHandler>::tryExpandCapacity):
93         (WTF::OverflowHandler>::resize):
94         (WTF::OverflowHandler>::shrink):
95         (WTF::OverflowHandler>::grow):
96         (WTF::OverflowHandler>::reserveCapacity):
97         (WTF::OverflowHandler>::tryReserveCapacity):
98         (WTF::OverflowHandler>::shrinkCapacity):
99         (WTF::OverflowHandler>::append):
100         (WTF::OverflowHandler>::tryAppend):
101         (WTF::OverflowHandler>::appendSlowCase):
102         (WTF::OverflowHandler>::uncheckedAppend):
103         (WTF::OverflowHandler>::appendVector):
104         (WTF::OverflowHandler>::insert):
105         (WTF::OverflowHandler>::insertVector):
106         (WTF::OverflowHandler>::remove):
107
108 2014-11-30  Ryuan Choi  <ryuan.choi@navercorp.com>
109
110         [EFL] Drop support for the EFL 1.7
111         https://bugs.webkit.org/show_bug.cgi?id=139114
112
113         Reviewed by Gyuyoung Kim.
114
115         * wtf/efl/EflTypedefs.h: Removed old definitions which EFL 1.7 used.
116
117 2014-11-21  Anders Carlsson  <andersca@apple.com>
118
119         Remove the Timer parameters from timer callbacks
120         https://bugs.webkit.org/show_bug.cgi?id=138974
121
122         Reviewed by Antti Koivisto.
123
124         * wtf/RunLoopTimer.h:
125         (WTF::RunLoopTimer::RunLoopTimer):
126         (WTF::RunLoopTimer::fired):
127
128 2014-11-18  Chris Dumez  <cdumez@apple.com>
129
130         Have Vector::capacity() return an unsigned instead of a size_t
131         https://bugs.webkit.org/show_bug.cgi?id=138842
132
133         Reviewed by Andreas Kling.
134
135         Have Vector::capacity() return an unsigned instead of a size_t as
136         capacity is stored as an unsigned internally.
137
138         * wtf/Vector.h:
139         (WTF::Vector::capacity):
140         (WTF::OverflowHandler>::expandCapacity):
141         (WTF::OverflowHandler>::tryExpandCapacity):
142
143 2014-11-18  Geoffrey Garen  <ggaren@apple.com>
144
145         Removed the custom allocator for ListHashSet nodes
146         https://bugs.webkit.org/show_bug.cgi?id=138841
147
148         Reviewed by Andreas Kling.
149
150         bmalloc is fast, so we don't need a custom allocator.
151
152         The MallocBench test for linked list node allocation (list_allocate) is
153         4.09X faster in bmalloc than TCMalloc. Also, I wrote a stress test to
154         add/remove link elements, which modify a ListHashSet on insertion and
155         removal, and it was 1% faster / in the noise with bmalloc enabled.
156
157         * wtf/ListHashSet.h:
158         (WTF::ListHashSetNode::ListHashSetNode):
159         (WTF::ListHashSetTranslator::translate):
160         (WTF::U>::ListHashSet):
161         (WTF::=):
162         (WTF::U>::swap):
163         (WTF::U>::~ListHashSet):
164         (WTF::U>::size):
165         (WTF::U>::capacity):
166         (WTF::U>::isEmpty):
167         (WTF::U>::first):
168         (WTF::U>::removeFirst):
169         (WTF::U>::takeFirst):
170         (WTF::U>::last):
171         (WTF::U>::removeLast):
172         (WTF::U>::takeLast):
173         (WTF::U>::contains):
174         (WTF::U>::remove):
175         (WTF::U>::clear):
176         (WTF::U>::unlink):
177         (WTF::U>::unlinkAndDelete):
178         (WTF::U>::appendNode):
179         (WTF::U>::prependNode):
180         (WTF::U>::insertNodeBefore):
181         (WTF::U>::deleteAllNodes):
182         (WTF::ListHashSetNodeAllocator::ListHashSetNodeAllocator): Deleted.
183         (WTF::ListHashSetNodeAllocator::allocate): Deleted.
184         (WTF::ListHashSetNodeAllocator::deallocate): Deleted.
185         (WTF::ListHashSetNodeAllocator::pool): Deleted.
186         (WTF::ListHashSetNodeAllocator::pastPool): Deleted.
187         (WTF::ListHashSetNodeAllocator::inPool): Deleted.
188         (WTF::ListHashSetNode::operator new): Deleted.
189         (WTF::ListHashSetNode::destroy): Deleted.
190
191 2014-11-18  Chris Dumez  <cdumez@apple.com>
192
193         Update the Vector API to deal with unsigned types instead of size_t
194         https://bugs.webkit.org/show_bug.cgi?id=138824
195
196         Reviewed by Andreas Kling.
197
198         Update part of the Vector API to deal with unsigned types instead of
199         size_t. The Vector class is already using unsigned type for its
200         capacity and size data members. However, the Vector API was never
201         updated accordingly.
202
203         The rest of the Vector API will be ported in follow-up patches to
204         make the change smaller and more easily reviewable.
205
206         * wtf/Forward.h:
207         * wtf/Vector.h:
208         (WTF::VectorTypeOperations::compare):
209         (WTF::VectorBufferBase::allocateBuffer):
210         (WTF::VectorBufferBase::tryAllocateBuffer):
211         (WTF::VectorBufferBase::shouldReallocateBuffer):
212         (WTF::VectorBufferBase::reallocateBuffer):
213         (WTF::VectorBufferBase::capacity):
214         (WTF::VectorBufferBase::VectorBufferBase):
215         (WTF::VectorBuffer::VectorBuffer):
216         (WTF::VectorBuffer::allocateBuffer):
217         (WTF::VectorBuffer::tryAllocateBuffer):
218         (WTF::VectorBuffer::shouldReallocateBuffer):
219         (WTF::VectorBuffer::reallocateBuffer):
220         (WTF::VectorBuffer::swap):
221         (WTF::VectorBuffer::swapInlineBuffer):
222         (WTF::VectorBuffer::swapInlineBuffers):
223         (WTF::Vector::Vector):
224         (WTF::Vector::at):
225         (WTF::Vector::operator[]):
226         (WTF::OverflowHandler>::find):
227         (WTF::OverflowHandler>::reverseFind):
228         (WTF::OverflowHandler>::fill):
229         (WTF::OverflowHandler>::expandCapacity):
230         (WTF::OverflowHandler>::tryExpandCapacity):
231         (WTF::OverflowHandler>::resize):
232         (WTF::OverflowHandler>::resizeToFit):
233         (WTF::OverflowHandler>::shrink):
234         (WTF::OverflowHandler>::grow):
235         (WTF::OverflowHandler>::reserveCapacity):
236         (WTF::OverflowHandler>::tryReserveCapacity):
237         (WTF::OverflowHandler>::reserveInitialCapacity):
238         (WTF::OverflowHandler>::shrinkCapacity):
239         (WTF::OverflowHandler>::append):
240         (WTF::OverflowHandler>::tryAppend):
241         (WTF::OverflowHandler>::insert):
242         (WTF::OverflowHandler>::insertVector):
243         (WTF::OverflowHandler>::remove):
244         (WTF::OverflowHandler>::reverse):
245         (WTF::OverflowHandler>::checkConsistency):
246         * wtf/text/AtomicString.h:
247         * wtf/text/StringImpl.h:
248         (WTF::StringImpl::adopt):
249         (WTF::equalIgnoringNullity):
250         * wtf/text/StringView.h:
251         (WTF::append):
252         * wtf/text/WTFString.h:
253
254 2014-11-18  peavo@outlook.com  <peavo@outlook.com>
255
256         [WinCairo] Compile errors when GStreamer is enabled.
257         https://bugs.webkit.org/show_bug.cgi?id=137000
258
259         Reviewed by Philippe Normand.
260
261         MSVC does not allow the keyword default on move constructors and move assignment operators.
262
263         * wtf/gobject/GMainLoopSource.cpp:
264         (WTF::GMainLoopSource::cancel):
265         (WTF::GMainLoopSource::socketCallback):
266         * wtf/gobject/GMainLoopSource.h:
267         (WTF::GMainLoopSource::Context::operator=):
268
269 2014-11-17  Anders Carlsson  <andersca@apple.com>
270
271         Fix WTF build with newer versions of clang.
272         <rdar://problem/18978705>
273
274         * wtf/HashTable.h:
275         (WTF::removeIterator):
276         * wtf/dtoa/utils.h:
277         (WTF::double_conversion::BitCast):
278
279 2014-11-13  Myles C. Maxfield  <mmaxfield@apple.com>
280
281         Allow constructing a base PassRef with a derived Ref
282         https://bugs.webkit.org/show_bug.cgi?id=138701
283
284         Reviewed by Andreas Kling
285
286         * wtf/PassRef.h:
287         (WTF::PassRef<T>::PassRef):
288
289 2014-11-12  Ryuan Choi  <ryuan.choi@navercorp.com>
290
291         [EFL] Fix the build with EFL 1.12
292         https://bugs.webkit.org/show_bug.cgi?id=138245
293
294         Reviewed by Gyuyoung Kim.
295
296         * wtf/efl/UniquePtrEfl.h:
297         Removed Evas_GL.h from UniquePtrEfl.h, which is commonly included, because
298         it should not be included with official GL headers.
299
300 2014-11-12  Mark Lam  <mark.lam@apple.com>
301
302         Rename USE(MASM_PROBE) to ENABLE(MASM_PROBE).
303         <https://webkit.org/b/138661>
304
305         Reviewed by Michael Saboff.
306
307         Also move the switch for enabling the use of MASM_PROBE from JavaScriptCore's
308         config.h to WTF's Platform.h.  This ensures that the setting is consistently
309         applied even when building WebCore parts as well.
310
311         * wtf/Platform.h:
312
313 2014-11-09  Antti Koivisto  <antti@apple.com>
314
315         Remove BloomFilter size limit
316         https://bugs.webkit.org/show_bug.cgi?id=138549
317
318         Reviewed by Andreas Kling.
319
320         * wtf/BloomFilter.h: Remove the static_assert, the code works fine with somewhat larger sizes.
321
322 2014-11-09  Chris Dumez  <cdumez@apple.com>
323
324         Add a more correct way to compare floating point numbers and use it
325         https://bugs.webkit.org/show_bug.cgi?id=138527
326
327         Reviewed by Darin Adler.
328
329         To compare floating point numbers in the code base, we would often rely
330         on the following check:
331         std::abs(a - b) <= std::numeric_limits<T>::epsilon()
332
333         However, this is not correct for arbitrary floating point values, and
334         will fail for values that are not close to zero.
335
336         This patch introduces a WTF::areEssentiallyEqual() templated function
337         that can only be called with floating point types and relies on the
338         following formula from [1][2] that defines u as being "essentially
339         equal" to v if: | u - v | / |u| <= e and | u - v | / |v| <= e
340
341         [1] Knuth, D. E. "Accuracy of Floating Point Arithmetic." The Art of
342             Computer Programming. 3rd ed. Vol. 2. Boston: Addison-Wesley, 1998.
343             229-45.
344         [2] http://www.boost.org/doc/libs/1_34_0/libs/test/doc/components/test_tools/floating_point_comparison.html
345
346         * wtf/MathExtras.h:
347         (WTF::safeFPDivision):
348         (WTF::areEssentiallyEqual):
349         (WTF::withinEpsilon): Deleted.
350
351 2014-11-08  Darin Adler  <darin@apple.com>
352
353         Replace FileThread class with a single function
354         https://bugs.webkit.org/show_bug.cgi?id=138282
355
356         Reviewed by Alexey Proskuryakov.
357
358         * wtf/MessageQueue.h: Made queue work on any type and not require wrapping
359         everything in a unique_ptr.
360
361         * wtf/Threading.cpp:
362         (WTF::threadEntryPoint): Changed to use a std::function instead of a function pointer.
363         (WTF::createThread): Add a version that takes a std::function. Reimplemented the
364         old version using lambdas. Removed the obsolete versions that were there just to support
365         binary compatibility with very old versions of Safari.
366
367         * wtf/Threading.h: Removed an incorrect license header that covers code that was long ago
368         moved to a different file. Changed createThread to take a std::function instead of a function
369         pointer and data pointer. Moved internal functions after public functions.
370
371 2014-11-05  Chris Dumez  <cdumez@apple.com>
372
373         Assertion hit DOMTimer::updateTimerIntervalIfNecessary()
374         https://bugs.webkit.org/show_bug.cgi?id=138440
375
376         Reviewed by Geoffrey Garen.
377
378         Move the withinEpsilon() function to WTF to avoid code duplication.
379
380         * wtf/MathExtras.h:
381         (WTF::withinEpsilon):
382
383 2014-11-05  Chris Dumez  <cdumez@apple.com>
384
385         Allow constructing a PassRef from a Ref
386         https://bugs.webkit.org/show_bug.cgi?id=138389
387
388         Reviewed by Andreas Kling.
389
390         Allow constructing a PassRef from a Ref, similarly to PassRefPtr that
391         can be constructed from a RefPtr already. This avoids having to call
392         Ref::get() and simplifies the code a bit.
393
394         * wtf/PassRef.h:
395         (WTF::PassRef<T>::PassRef):
396
397 2014-11-05  Dan Bernstein  <mitz@apple.com>
398
399         Remove the unused deletion UI feature
400         https://bugs.webkit.org/show_bug.cgi?id=138442
401
402         Rubber-stamped by Alexey Proskuryakov.
403
404         * wtf/FeatureDefines.h: Removed definition of ENABLE_DELETION_UI.
405
406 2014-11-03  Dean Jackson  <dino@apple.com>
407
408         Add ENABLE_FILTERS_LEVEL_2 feature guard.
409         https://bugs.webkit.org/show_bug.cgi?id=138362
410
411         Reviewed by Tim Horton.
412
413         Add a new feature define for Level 2 of CSS Filters.
414         http://dev.w3.org/fxtf/filters-2/
415
416         * wtf/FeatureDefines.h:
417
418 2014-11-05  Csaba Osztrogonác  <ossy@webkit.org>
419
420         Enable ARMv7 disassembler for all platforms
421         https://bugs.webkit.org/show_bug.cgi?id=138415
422
423         Reviewed by Darin Adler.
424
425         * wtf/Platform.h:
426
427 2014-11-04  Chris Dumez  <cdumez@apple.com>
428
429         Add ptr() method to Ref class
430         https://bugs.webkit.org/show_bug.cgi?id=138361
431
432         Reviewed by Darin Adler.
433
434         It is a very common pattern in our code base to get a pointer from a
435         Ref object. Previously, we have to call Ref.get() and take its address
436         which is not very nice. This patch adds a ptr() method to Ref class
437         to simplify the code a bit.
438
439         * wtf/PassRef.h:
440         (WTF::PassRef<T>::ptr):
441         * wtf/Ref.h:
442         (WTF::Ref::ptr):
443         (WTF::GetPtrHelper<Ref<T>>::getPtr):
444
445 2014-11-04  Dániel Bátyai  <dbatyai.u-szeged@partner.samsung.com>
446
447         ATTR_USED incorrectly applying to Clang
448         https://bugs.webkit.org/show_bug.cgi?id=138313
449
450         Reviewed by Csaba Osztrogonác.
451
452         ATTR_USED was only intended for GCC. Also limit it to ENABLE(FTL_NATIVE_CALL_INLINING)
453         since that's the only thing it's needed for.
454
455         * wtf/Platform.h:
456
457 2014-11-03  Chris Dumez  <cdumez@apple.com>
458
459         Allow implicit conversion from Ref<T> to T&
460         https://bugs.webkit.org/show_bug.cgi?id=138331
461
462         Reviewed by Andreas Kling.
463
464         Allow implicit conversion from Ref<T> to T& to reduce the amount of
465         Ref<>::get() calls in the code and increase readability. Unlike for
466         RefPtr, doing this for Ref should not be error prone.
467
468         * wtf/Ref.h:
469         (WTF::Ref::operator T&):
470         (WTF::Ref::operator const T&):
471         * wtf/RunLoop.cpp:
472         (WTF::RunLoop::Holder::runLoop):
473
474 2014-10-31  Jeffrey Pfau  <jpfau@apple.com>
475
476         Unreviewed, fix ASan build after r175382
477
478         * wtf/SizeLimits.cpp:
479
480 2014-10-31  Geoffrey Garen  <ggaren@apple.com>
481
482         Rolled in r175389.
483
484         WebKit was failing to build 32bit on some Apple internal systems because
485         those systems were configured to build bmalloc 64-bit-only. Those systems
486         have been updated to build bmalloc as a universal binary, so everything
487         should work fine now.
488
489         The relevant setting is controlled by an environment variable on the
490         build system, and not by the project file in the source tree, so there's
491         no new code change here.
492
493                 Enable bmalloc in 32bit builds
494                 https://bugs.webkit.org/show_bug.cgi?id=138232
495
496                 Reviewed by Andreas Kling.
497
498         * wtf/FastMalloc.cpp:
499
500 2014-10-31  Lucas Forschler  <lforschler@apple.com>
501
502         Unreviewed rollout r175389.
503         
504 2014-10-30  Dana Burkart  <dburkart@apple.com>
505
506         <rdar://problem/18821260> Prepare for the mysterious future
507
508         Reviewed by Lucas Forschler.
509
510         * Configurations/Base.xcconfig:
511         * Configurations/DebugRelease.xcconfig:
512
513 2014-10-30  Geoffrey Garen  <ggaren@apple.com>
514
515         Enable bmalloc in 32bit builds
516         https://bugs.webkit.org/show_bug.cgi?id=138232
517
518         Reviewed by Andreas Kling.
519
520         Seems to work fine.
521
522         * wtf/FastMalloc.cpp:
523
524 2014-10-30  Jeffrey Pfau  <jpfau@apple.com>
525
526         ASSERT(!m_deletionHasBegun) in RefCounted.h should be ASSERT_WITH_SECURITY_IMPLICATION
527         https://bugs.webkit.org/show_bug.cgi?id=138141
528
529         Reviewed by Alexey Proskuryakov.
530
531         * wtf/RefCounted.h:
532         (WTF::RefCountedBase::ref):
533         (WTF::RefCountedBase::relaxAdoptionRequirement):
534         (WTF::RefCountedBase::derefBase):
535         (WTF::adopted):
536
537 2014-10-28  Milan Crha  <mcrha@redhat.com>
538
539         Use constants from wtf/MathExtras.h
540         https://bugs.webkit.org/show_bug.cgi?id=137967
541
542         Reviewed by Darin Adler.
543
544         * wtf/MathExtras.h:
545
546 2014-10-28  Tibor Meszaros  <tmeszaros.u-szeged@partner.samsung.com>
547
548         [EFL] Remove unnecessary defines from OptionsEfl.cmake
549         https://bugs.webkit.org/show_bug.cgi?id=138132
550
551         Reviewed by Csaba Osztrogonác.
552
553         * wtf/Platform.h:
554
555 2014-10-27  Chris Dumez  <cdumez@apple.com>
556
557         Use separate HashMaps for common and uncommon headers in HTTPHeaderMap
558         https://bugs.webkit.org/show_bug.cgi?id=138079
559
560         Reviewed by Anders Carlsson.
561
562         Add HashTraits for C++11 strong enum types. Using integer HashTraits for
563         strong enums would be inconvenient as it would require casting between
564         integer and strong enum types.
565
566         * wtf/HashTraits.h:
567         (WTF::StrongEnumHashTraits::emptyValue):
568         (WTF::StrongEnumHashTraits::constructDeletedValue):
569         (WTF::StrongEnumHashTraits::isDeletedValue):
570
571 2014-10-25  Brian J. Burg  <burg@cs.washington.edu>
572
573         Web Inspector: timelines should not count time elapsed while paused in the debugger
574         https://bugs.webkit.org/show_bug.cgi?id=136351
575
576         Unreviewed, follow-up fix after r175203. The debugger agent should not assume
577         that the inspector environment's stopwatch has already been started.
578
579         * wtf/Stopwatch.h:
580         (WTF::Stopwatch::isActive): Added. Allow peeking at the stopwatch state.
581
582 2014-10-18  Brian J. Burg  <burg@cs.washington.edu>
583
584         Web Inspector: timelines should not count time elapsed while paused in the debugger
585         https://bugs.webkit.org/show_bug.cgi?id=136351
586
587         Reviewed by Timothy Hatcher.
588
589         * WTF.vcxproj/WTF.vcxproj:
590         * WTF.vcxproj/WTF.vcxproj.filters:
591         * WTF.xcodeproj/project.pbxproj:
592         * wtf/CMakeLists.txt:
593         * wtf/Stopwatch.h: Added. This implements a refcounted monotonic stopwatch.
594         (WTF::Stopwatch::create):
595         (WTF::Stopwatch::Stopwatch):
596         (WTF::Stopwatch::reset):
597         (WTF::Stopwatch::start):
598         (WTF::Stopwatch::stop):
599         (WTF::Stopwatch::elapsedTime):
600
601 2014-10-23  Joseph Pecoraro  <pecoraro@apple.com>
602
603         Web Inspector: Provide a way to have alternate inspector agents
604         https://bugs.webkit.org/show_bug.cgi?id=137901
605
606         Reviewed by Brian Burg.
607
608         * wtf/FeatureDefines.h:
609
610 2014-10-23  Alberto Garcia  <berto@igalia.com>
611
612         [GTK] Fix build on Hurd
613         https://bugs.webkit.org/show_bug.cgi?id=138003
614
615         Reviewed by Carlos Garcia Campos.
616
617         * wtf/InlineASM.h:
618         * wtf/Platform.h:
619
620 2014-10-22  Byungseon Shin  <sun.shin@lge.com>
621
622         String(new Date(Mar 30 2014 01:00:00)) is wrong in CET
623         https://bugs.webkit.org/show_bug.cgi?id=130967
624
625         Reviewed by Mark Lam.
626
627         By definition of calculateLocalTimeOffset, input time should be UTC time.
628         But there are many cases when input time is based on local time.
629         So, it gives erroneous results while calculating offset of DST boundary time.
630         By adding a argument to distinguish UTC and local time, we can get the correct offset.
631
632         * wtf/DateMath.cpp:
633         (WTF::calculateLocalTimeOffset):
634         (WTF::parseDateFromNullTerminatedCharacters):
635         Compensate time offset depends on UTC time or local time.
636         * wtf/DateMath.h:
637         Add argument to differenciate UTC or local time.
638
639 2014-10-21  Dániel Bátyai  <dbatyai.u-szeged@partner.samsung.com>
640
641         Fix FTL Native Inlining for EFL
642         https://bugs.webkit.org/show_bug.cgi?id=137774
643
644         Reviewed by Michael Saboff.
645
646         Updated guard definition for Native Inlining, and added an attribute define for marking functions
647         that should not be left out of the symbol table.
648
649         * wtf/Platform.h:
650
651 2014-10-20  Chris Dumez  <cdumez@apple.com>
652
653         Use is<>() / downcast<>() for Accessibility objects
654         https://bugs.webkit.org/show_bug.cgi?id=137286
655
656         Reviewed by Darin Adler.
657
658         Remove the legacy TYPE_CASTS_BASE() macro now that it is no longer
659         used.
660
661         * wtf/Assertions.h:
662
663 2014-10-18  Dan Bernstein  <mitz@apple.com>
664
665         WorkQueue dispatches functions but isn’t a FunctionDispatcher
666         https://bugs.webkit.org/show_bug.cgi?id=137853
667
668         Reviewed by Anders Carlsson.
669
670         * wtf/FunctionDispatcher.h: Added header guards.
671
672 2014-10-17  Carlos Garcia Campos  <cgarcia@igalia.com>
673
674         [GLIB] Add API to GMainLoopSource to schedule sources after a delay in microseconds
675         https://bugs.webkit.org/show_bug.cgi?id=137782
676
677         Reviewed by Sergio Villar Senin.
678
679         In some cases when we have a double with the time in seconds, the
680         conversion to milliseconds ends up truncating the value to 0, and
681         the source scheduled immediately.
682
683         * wtf/gobject/GMainLoopSource.cpp:
684         (WTF::createMicrosecondsTimeoutSource): Use a custom timeout
685         source that handles the interval in microseconds instead of milliseconds.
686         (WTF::GMainLoopSource::scheduleAfterDelay): Use MicrosecondsTimeoutSource.
687         (WTF::GMainLoopSource::scheduleAfterDelayAndDeleteOnDestroy): Ditto.
688         * wtf/gobject/GMainLoopSource.h:
689
690 2014-10-17  Dan Bernstein  <mitz@apple.com>
691
692         Reverted incorrect build fix attempt.
693
694         * wtf/Threading.cpp:
695
696 2014-10-17  Dan Bernstein  <mitz@apple.com>
697
698         Tried to fix the Yosemite build.
699
700         * wtf/Threading.cpp:
701
702 2014-10-16  Dan Bernstein  <mitz@apple.com>
703
704         OSObjectPtr is missing leakRef()
705         https://bugs.webkit.org/show_bug.cgi?id=137798
706
707         Reviewed by Sam Weinig.
708
709         * wtf/OSObjectPtr.h:
710
711 2014-10-14  Brent Fulgham  <bfulgham@apple.com>
712
713         [Win] Unreviewed gardening. Ignore Visual Studio *.sdf files.
714
715         * WTF.vcxproj: Modified property svn:ignore.
716
717 2014-10-13  Antti Koivisto  <antti@apple.com>
718
719         Add StringCapture helper for thread-safe lambda capture
720         https://bugs.webkit.org/show_bug.cgi?id=137664
721
722         Reviewed by Anders Carlsson.
723
724         There is currently no clean way to capture a String in a thread-safe manner. This will now work:
725
726         StringCapture stringCapture(string);
727         auto lambdaThatRunsInAnotherThread = [stringCapture] { String string = stringCapture.string(); ... }
728
729         This type won't be necessary with C++14 initialized lambda capture: [string = string.isolatedCopy()].
730
731         * wtf/text/WTFString.h:
732         (WTF::StringCapture::StringCapture): Create isolated copy in copy-constructor.
733         (WTF::StringCapture::string):
734
735 2014-10-11  KwangHyuk Kim  <hyuki.kim@samsung.com>
736
737         [EFL] Enable WebP support.
738         https://bugs.webkit.org/show_bug.cgi?id=136156
739
740         Reviewed by Gyuyoung Kim.
741
742         Enable WTF_USE_WEBP macro for WK2 Efl.
743
744         * wtf/Platform.h:
745
746 2014-10-11  Carlos Garcia Campos  <cgarcia@igalia.com>
747
748         [GLIB] Split GMainLoopSource moving thread safe implementation to its own class GThreadSafeMainLoopSource
749         https://bugs.webkit.org/show_bug.cgi?id=137485
750
751         Reviewed by Sergio Villar Senin.
752
753         We made GMainLoopSource thread safe, but in most of the cases we
754         know the sources are used by a single thread, which has an impact
755         in the performance (mutex, GCancellable, etc.). The new class
756         GThreadSafeMainLoopSource inherits from GMainLoopSource overriding
757         the new virtual methods and calling the parent for the common code.
758         GMutexLocker now supports recursive mutexes, it's a template that
759         can wrap a GMutex or a GRecMutex. GThreadSafeMainLoopSource uses a
760         recursive mutex using the new GMutexLocker API.
761
762         * wtf/PlatformEfl.cmake: Add new file to compilation.
763         * wtf/PlatformGTK.cmake: Ditto.
764         * wtf/gobject/GMainLoopSource.cpp:
765         (WTF::GMainLoopSource::GMainLoopSource):
766         (WTF::GMainLoopSource::~GMainLoopSource):
767         (WTF::GMainLoopSource::cancel):
768         (WTF::GMainLoopSource::schedule):
769         (WTF::GMainLoopSource::scheduleAfterDelay):
770         (WTF::GMainLoopSource::prepareVoidCallback):
771         (WTF::GMainLoopSource::finishVoidCallback):
772         (WTF::GMainLoopSource::voidCallback):
773         (WTF::GMainLoopSource::prepareBoolCallback):
774         (WTF::GMainLoopSource::finishBoolCallback):
775         (WTF::GMainLoopSource::boolCallback):
776         (WTF::GMainLoopSource::socketCallback):
777         (WTF::GMainLoopSource::cancelWithoutLocking): Deleted.
778         * wtf/gobject/GMainLoopSource.h:
779         * wtf/gobject/GMutexLocker.h:
780         (WTF::MutexWrapper<GMutex>::lock):
781         (WTF::MutexWrapper<GMutex>::unlock):
782         (WTF::MutexWrapper<GRecMutex>::lock):
783         (WTF::MutexWrapper<GRecMutex>::unlock):
784         (WTF::GMutexLocker::GMutexLocker):
785         (WTF::GMutexLocker::lock):
786         (WTF::GMutexLocker::unlock):
787         * wtf/gobject/GThreadSafeMainLoopSource.cpp: Added.
788         (WTF::GThreadSafeMainLoopSource::GThreadSafeMainLoopSource):
789         (WTF::GThreadSafeMainLoopSource::~GThreadSafeMainLoopSource):
790         (WTF::GThreadSafeMainLoopSource::cancel):
791         (WTF::GThreadSafeMainLoopSource::schedule):
792         (WTF::GThreadSafeMainLoopSource::scheduleAfterDelay):
793         (WTF::GThreadSafeMainLoopSource::prepareVoidCallback):
794         (WTF::GThreadSafeMainLoopSource::finishVoidCallback):
795         (WTF::GThreadSafeMainLoopSource::voidCallback):
796         (WTF::GThreadSafeMainLoopSource::prepareBoolCallback):
797         (WTF::GThreadSafeMainLoopSource::finishBoolCallback):
798         (WTF::GThreadSafeMainLoopSource::boolCallback):
799         * wtf/gobject/GThreadSafeMainLoopSource.h: Added.
800
801 2014-10-09  Dean Jackson  <dino@apple.com>
802
803         Remove ENABLE_CSS3_CONDITIONAL_RULES
804         https://bugs.webkit.org/show_bug.cgi?id=137571
805
806         Reviewed by Simon Fraser.
807
808         * wtf/FeatureDefines.h:
809
810 2014-10-09  Akos Kiss  <akiss@inf.u-szeged.hu>
811
812         Enable ARM64 disassembler for all platforms
813         https://bugs.webkit.org/show_bug.cgi?id=137560
814
815         Reviewed by Michael Saboff.
816
817         Remove PLATFORM conditions from around WTF_USE_ARM64_DISASSEMBLER since
818         the ARM64 disassembler has no platform dependencies anymore.
819
820         * wtf/Platform.h:
821
822 2014-10-08  peavo@outlook.com  <peavo@outlook.com>
823
824         [WinCairo] Enable JIT on 32-bit.
825         https://bugs.webkit.org/show_bug.cgi?id=137521
826
827         Reviewed by Mark Lam.
828
829         Enable JIT on Windows 32-bit, but disable it at runtime if SSE2 is not present.
830
831         * wtf/Platform.h:
832
833 2014-10-08  Brent Fulgham  <bfulgham@apple.com>
834
835         [Win] Resolve warnings about missing __has_include macro under MSVC
836         https://bugs.webkit.org/show_bug.cgi?id=137524
837
838         Reviewed by Anders Carlsson.
839
840         * wtf/Compiler.h: Provide a dummy implementation of __has_include that
841         avoids the warning without changing compile behavior.
842
843 2014-10-07  Brent Fulgham  <bfulgham@apple.com>
844
845         [Win] Resolve some MSVC static analyzer warnings
846         https://bugs.webkit.org/show_bug.cgi?id=137504
847
848         Reviewed by Dean Jackson.
849
850         * wtf/GregorianDateTime.cpp:
851         (WTF::GregorianDateTime::setToCurrentLocalTime): Properly handle
852         possible timezone error case.
853         * wtf/OSAllocatorWin.cpp:
854         (WTF::OSAllocator::decommit): Silence a spurious warning about using
855         MEM_DECOMMIT instead of MEM_RELEASE.
856         * wtf/ThreadingWin.cpp: Silence a spurious warning about how the
857         tryLock method is implemented.
858
859 2014-10-07  Christophe Dumez  <cdumez@apple.com>
860
861         [WK2] Use is<>() / downcast<>() for DrawingAreaProxy subclasses
862         https://bugs.webkit.org/show_bug.cgi?id=137477
863
864         Reviewed by Andreas Kling.
865
866         Rename wtf/cf/TypeCasts.h to wtf/cf/TypeCastsCF.h to avoid conflict
867         with wtf/TypeCasts.h. They were using the same #ifndef guard and it
868         was causing problems when both were included in the same context.
869
870         * WTF.xcodeproj/project.pbxproj:
871         * wtf/cf/TypeCastsCF.h: Renamed from Source/WTF/wtf/cf/TypeCasts.h.
872         (WTF::dynamic_cf_cast):
873         (WTF::checked_cf_cast):
874
875 2014-10-07  Anders Carlsson  <andersca@apple.com>
876
877         Try to fix the Mountain Lion build.
878
879         * wtf/text/StringView.h:
880         (WTF::StringView::underlyingStringIsValid):
881         (WTF::StringView::setUnderlyingString):
882         (WTF::StringView::invalidate):
883
884 2014-10-07  Anders Carlsson  <andersca@apple.com>
885
886         Use "1", not "true".
887
888         * wtf/text/StringView.h:
889
890 2014-10-07  Anders Carlsson  <andersca@apple.com>
891
892         Temporarily disable the StringView lifetime checking.
893
894         * wtf/text/StringView.h:
895
896 2014-10-07  Anders Carlsson  <andersca@apple.com>
897
898         Another build fix attempt.
899
900         * wtf/text/StringView.cpp:
901         (WTF::StringView::UnderlyingString::UnderlyingString):
902
903 2014-10-07  Anders Carlsson  <andersca@apple.com>
904
905         Try to fix the Windows build.
906
907         * wtf/text/StringView.cpp:
908         (WTF::StringView::UnderlyingString::UnderlyingString):
909
910 2014-10-06  Darin Adler  <darin@apple.com>
911
912         Make StringView check the lifetime of the StringImpl it's created from
913         https://bugs.webkit.org/show_bug.cgi?id=137202
914
915         Reviewed by Anders Carlsson.
916
917         * WTF.vcxproj/WTF.vcxproj: Added StringView.cpp.
918         * WTF.vcxproj/WTF.vcxproj.filters: Added StringView.cpp.
919         * WTF.xcodeproj/project.pbxproj: Added StringView.cpp.
920         * wtf/CMakeLists.txt: Added StringView.cpp.
921
922         * wtf/text/StringImpl.cpp:
923         (WTF::StringImpl::~StringImpl): Call StringView::invalidate.
924
925         * wtf/text/StringView.cpp: Added.
926         (WTF::underlyingStrings): Returns map from StringImpl to the underlying
927         string object used by StringView to track validity.
928         (WTF::StringView::invalidate): Mark the underlying string object invalid,
929         and remove it from the map, so any future StringImpl will get a new one,
930         even if it has the same pointer.
931         (WTF::StringView::underlyingStringIsValid): Return true only if the
932         underlying string is still valid.
933         (WTF::StringView::setUnderlyingString): Create and manage reference counts
934         of underlying string objects as needed.
935
936         * wtf/text/StringView.h: Moved function bodies out of the class definition,
937         so we can now read a clean class definition to see the class design and what
938         functions it offers.
939         (WTF::StringView::StringView): Added a comment to the default constructor.
940         Also added copy and move constructors so they can call setUnderlyingString
941         and assert the underlying string is valid as needed, replacing the
942         compiler-generated ones.
943         (WTF::StringView::~StringView): Added a call to setUnderlyingString.
944         (WTF::StringView::operator=): Added these assignment operators with the same
945         job as the constructors above.
946         (WTF::StringView::initialize): Added a comment.
947         (WTF::StringView::characters8): Added an assertion that the underlying
948         string is valid.
949         (WTF::StringView::characters16): Ditto.
950         (WTF::StringView::substring): Added code to propagate the underlying string
951         from the original string to the substring.
952         (WTF::StringView::invalidate): Inline empty version of this function for
953         non-debug builds.
954         (WTF::StringView::underlyingStringIsValid): Ditto.
955         (WTF::StringView::setUnderlyingString): Ditto.
956
957 2014-10-06  Brent Fulgham  <bfulgham@apple.com>
958
959         [Win] DateMath's calculateUTFOffset does not account for DST.
960         https://bugs.webkit.org/show_bug.cgi?id=137458
961         <rdar://problem/18559172>
962
963         Reviewed by Geoffrey Garen.
964
965         Check the return value of GetTimeZoneInformation and use the
966         proper bias against UTC (depending on whether we are in daylight
967         savings time, or standard time).
968
969         Also, handle possible error cases in the FileTimeToSystemTime
970         and SystemTimeToTzSpecificLocalTime, rather than using potentially
971         uninitialized values.
972
973         * wtf/DateMath.cpp:
974         (WTF::calculateUTCOffset): Use proper daylight-savings-time state.
975         (WTF::calculateDSTOffset): Avoid uninitialized data due to failing
976         API calls.
977
978 2014-10-06  Christophe Dumez  <cdumez@apple.com>
979
980         Add is<>() / downcast<>() support for RenderObject subclasses
981         https://bugs.webkit.org/show_bug.cgi?id=137424
982
983         Reviewed by Benjamin Poulain.
984
985         Handle correctly calling TypeCastTraits<ExpectedType, ArgType>::isOfType(ArgType&)
986         with ExpectedType being a base class of ArgType (or the same as ArgType). The
987         previous template specialization was only meant to support the case where
988         ExpectedType is the same as ArgType but even that wasn't working as the compiler
989         would complain about ambiguous partial specializations. Since this is needed by
990         RenderTraversal functions, this patch adds an extra isBaseType template parameter
991         to TypeCastTraits to resolve the ambiguity and relies on std::is_base_of for the
992         detection.
993
994         * wtf/TypeCasts.h:
995
996 2014-10-06  Brent Fulgham  <bfulgham@apple.com>
997
998         [Win] Project file gardening.
999
1000         * WTF.vcxproj/WTF.vcxproj.filters: Move HashMethod.h and
1001         FastBitVector.cpp to proper places in hierarchy.
1002
1003 2014-10-04  Brian J. Burg  <burg@cs.washington.edu>
1004
1005         Unreviewed, rolling out r174319.
1006
1007         Causes assertions in fast/profiler tests. Needs nontrivial
1008         investigation, will take offline.
1009
1010         Reverted changeset:
1011
1012         "Web Inspector: timelines should not count time elapsed while
1013         paused in the debugger"
1014         https://bugs.webkit.org/show_bug.cgi?id=136351
1015         http://trac.webkit.org/changeset/174319
1016
1017 2014-10-04  Brian J. Burg  <burg@cs.washington.edu>
1018
1019         Web Inspector: timelines should not count time elapsed while paused in the debugger
1020         https://bugs.webkit.org/show_bug.cgi?id=136351
1021
1022         Reviewed by Timothy Hatcher.
1023
1024         * WTF.vcxproj/WTF.vcxproj:
1025         * WTF.vcxproj/WTF.vcxproj.filters:
1026         * WTF.xcodeproj/project.pbxproj:
1027         * wtf/CMakeLists.txt:
1028         * wtf/Stopwatch.h: Added. This implements a refcounted monotonic stopwatch.
1029         (WTF::Stopwatch::reset):
1030         (WTF::Stopwatch::start):
1031         (WTF::Stopwatch::stop):
1032
1033 2014-10-04  Filip Pizlo  <fpizlo@apple.com>
1034
1035         FTL should sink PutLocals
1036         https://bugs.webkit.org/show_bug.cgi?id=137168
1037
1038         Reviewed by Oliver Hunt.
1039         
1040         Make the set bits of a BitVector iterable.
1041
1042         * wtf/BitVector.h:
1043         (WTF::BitVector::SetBitsIterable::SetBitsIterable):
1044         (WTF::BitVector::SetBitsIterable::iterator::iterator):
1045         (WTF::BitVector::SetBitsIterable::iterator::operator*):
1046         (WTF::BitVector::SetBitsIterable::iterator::operator++):
1047         (WTF::BitVector::SetBitsIterable::iterator::operator==):
1048         (WTF::BitVector::SetBitsIterable::iterator::operator!=):
1049         (WTF::BitVector::SetBitsIterable::begin):
1050         (WTF::BitVector::SetBitsIterable::end):
1051         (WTF::BitVector::setBits):
1052
1053 2014-10-03  Commit Queue  <commit-queue@webkit.org>
1054
1055         Unreviewed, rolling out r174275.
1056         https://bugs.webkit.org/show_bug.cgi?id=137408
1057
1058         Build failures on the internal bots. (Requested by dethbakin
1059         on #webkit).
1060
1061         Reverted changeset:
1062
1063         "FTL should sink PutLocals"
1064         https://bugs.webkit.org/show_bug.cgi?id=137168
1065         http://trac.webkit.org/changeset/174275
1066
1067 2014-10-03  Christophe Dumez  <cdumez@apple.com>
1068
1069         Add TypeCasts.h to xcodeproject
1070         https://bugs.webkit.org/show_bug.cgi?id=137403
1071
1072         Reviewed by Benjamin Poulain.
1073
1074         Add TypeCasts.h to xcodeproject.
1075
1076         * WTF.xcodeproj/project.pbxproj:
1077
1078 2014-09-28  Filip Pizlo  <fpizlo@apple.com>
1079
1080         FTL should sink PutLocals
1081         https://bugs.webkit.org/show_bug.cgi?id=137168
1082
1083         Reviewed by Oliver Hunt.
1084         
1085         Make the set bits of a BitVector iterable.
1086
1087         * wtf/BitVector.h:
1088         (WTF::BitVector::SetBitsIterable::SetBitsIterable):
1089         (WTF::BitVector::SetBitsIterable::iterator::iterator):
1090         (WTF::BitVector::SetBitsIterable::iterator::operator*):
1091         (WTF::BitVector::SetBitsIterable::iterator::operator++):
1092         (WTF::BitVector::SetBitsIterable::iterator::operator==):
1093         (WTF::BitVector::SetBitsIterable::iterator::operator!=):
1094         (WTF::BitVector::SetBitsIterable::begin):
1095         (WTF::BitVector::SetBitsIterable::end):
1096         (WTF::BitVector::setBits):
1097
1098 2014-10-03  Myles C. Maxfield  <mmaxfield@apple.com>
1099
1100         Support modern for loops over StringViews
1101         https://bugs.webkit.org/show_bug.cgi?id=137165
1102
1103         Reviewed by Darin Adler.
1104
1105         This patch adds two functions, codePoints() and codeUnits(), on StringView.
1106         These two functions return small objects which have begin() and end() functions,
1107         which means it can be used by the modern for loop style. This small class also
1108         has an inner iterator class which can be incremented, dereferenced, and
1109         compared.
1110
1111         Using these new objects looks like this:
1112         for (UChar codeunit : stringView.codeUnits()) { } and
1113         for (UChar32 codepoint : stringView.codePoints()) { }.
1114
1115         * wtf/text/StringView.h:
1116         (WTF::StringView::codepoints):
1117         (WTF::StringView::codeunits):
1118         (WTF::StringViewCodePointIterator::StringViewCodePointIterator):
1119         (WTF::StringViewCodePointIterator::Iterator::Iterator):
1120         (WTF::StringViewCodePointIterator::Iterator::operator*):
1121         (WTF::StringViewCodePointIterator::Iterator::operator!=):
1122         (WTF::StringViewCodeUnitIterator::StringViewCodeUnitIterator):
1123         (WTF::StringViewCodeUnitIterator::Iterator::Iterator):
1124         (WTF::StringViewCodeUnitIterator::Iterator::operator*):
1125         (WTF::StringViewCodeUnitIterator::Iterator::operator!=):
1126
1127 2014-09-28  Sam Weinig  <sam@webkit.org>
1128
1129         Remove RefPtrHashMap
1130         https://bugs.webkit.org/show_bug.cgi?id=137200
1131
1132         Reviewed by Darin Adler.
1133
1134         HashMap now has all the features of the RefPtr specialization of HashMap
1135         (which lived in RefPtrHashMap.h) and is in fact more efficient when moving
1136         items into it. For instance:
1137
1138         For HashMap<RefPtr<Foo>, Bar> map:
1139
1140         RefPtr<Foo> foo = ...;
1141         map.add(WTF::move(foo), Bar());
1142
1143         will now not cause a ref() / deref(), but will successfully move the item in
1144         without churn. The same is true if foo.release() was used.
1145
1146         * WTF.vcxproj/WTF.vcxproj:
1147         * WTF.vcxproj/WTF.vcxproj.filters:
1148         * WTF.xcodeproj/project.pbxproj:
1149         * wtf/CMakeLists.txt:
1150         Remove references to RefPtrHashMap.h.
1151
1152         * wtf/RefPtrHashMap.h: Removed.
1153
1154         * wtf/HashMap.h:
1155         Remove #include of RefPtrHashMap.h and add inlineGet to match the interface
1156         exposed by the RefPtrHashMap specialization.
1157
1158 2014-10-02  Anders Carlsson  <andersca@apple.com>
1159
1160         Add back debugging/testing code that I accidentally removed.
1161
1162         * wtf/text/StringConcatenate.h:
1163         (WTF::StringTypeAdapter<String>::writeTo):
1164
1165 2014-10-02  Anders Carlsson  <andersca@apple.com>
1166
1167         Simplify StringTypeAdapter templates
1168         https://bugs.webkit.org/show_bug.cgi?id=137356
1169
1170         Reviewed by Andreas Kling.
1171
1172         * wtf/text/StringConcatenate.h:
1173         Use StringView for copying characters. Use inheritance for char* vs const char* etc. Make all StringAdapter member functions const.
1174
1175         * wtf/text/StringView.h:
1176         Move enough functions out of line so we can include WTFString.h after the StringView class definition.
1177
1178 2014-10-01  Christophe Dumez  <cdumez@apple.com>
1179
1180         Have is<>(T*) function do a null check on the pointer argument
1181         https://bugs.webkit.org/show_bug.cgi?id=137333
1182
1183         Reviewed by Gavin Barraclough.
1184
1185         Have is<>(T*) function do a null check on the argument instead of a
1186         simple assertion. This makes sense for 2 reasons:
1187         1. It is more consistent with downcast<>(T*), which will succeed even
1188            if the argument is a nullptr.
1189         2. It simplifies the code a bit as it gets rid of a lot of explicit
1190            null checks.
1191
1192         * wtf/TypeCasts.h:
1193         (WTF::is):
1194
1195 2014-10-02  Daniel Bates  <dabates@apple.com>
1196
1197         Clean up: Move XPC forward declarations in JavaScriptCore to WTF SPI wrapper header
1198         https://bugs.webkit.org/show_bug.cgi?id=137277
1199
1200         Reviewed by Alexey Proskuryakov.
1201
1202         Towards centralizing the declarations of XPC functions used in JavaScriptCore
1203         and WebKit2, add a header that wraps these function declarations called XPCSPI.h
1204         and use it instead of including the corresponding XPC API/SPI headers/forward
1205         declaring XPC functions. This will also aid in the effort to make WebKit2 build
1206         for iOS with the public iOS SDK.
1207
1208         * WTF.xcodeproj/project.pbxproj:
1209         * wtf/spi/darwin/XPCSPI.h: Added.
1210
1211 2014-10-01  Christophe Dumez  <cdumez@apple.com>
1212
1213         Unreviewed build fix after r174193.
1214
1215         Adding a return statement as that function is returning a boolean.
1216
1217         * wtf/TypeCasts.h:
1218         (WTF::TypeCastTraits::isOfType):
1219
1220 2014-10-01  Christophe Dumez  <cdumez@apple.com>
1221
1222         Fail better when is<>() / downcast<>() is used for an unsupported type
1223         https://bugs.webkit.org/show_bug.cgi?id=137323
1224
1225         Reviewed by Benjamin Poulain.
1226
1227         We should fail better when is<>() / downcast<>() is used for an
1228         unsupported type (i.e. a type that doesn't have the needed
1229         TypeCastTraits template specialization). Previously, we would get an
1230         obscure linking error, which was sub-optimal.
1231
1232         With this patch, you would now hit a static_assert() at build time if
1233         you tried to use is<>() / downcast<>() for a type that did not have the
1234         needed template specialization. There is also a helpful comment above
1235         the assertion letting the developer know how to add the needed template
1236         specialization.
1237
1238         * wtf/TypeCasts.h:
1239         (WTF::TypeCastTraits::isOfType):
1240
1241 2014-10-01  Commit Queue  <commit-queue@webkit.org>
1242
1243         Unreviewed, rolling out r174180, r174183, and r174186.
1244         https://bugs.webkit.org/show_bug.cgi?id=137320
1245
1246         Broke the Mac MountainLion build. Will investigate offline.
1247         (Requested by dydz on #webkit).
1248
1249         Reverted changesets:
1250
1251         "Clean up: Move XPC forward declarations in JavaScriptCore to
1252         WTF SPI wrapper header"
1253         https://bugs.webkit.org/show_bug.cgi?id=137277
1254         http://trac.webkit.org/changeset/174180
1255
1256         "Attempt to fix the build after
1257         <https://trac.webkit.org/changeset/174180>"
1258         https://bugs.webkit.org/show_bug.cgi?id=137277
1259         http://trac.webkit.org/changeset/174183
1260
1261         "Another attempt to fix the Mac build after
1262         <https://trac.webkit.org/changeset/174180>"
1263         https://bugs.webkit.org/show_bug.cgi?id=137277
1264         http://trac.webkit.org/changeset/174186
1265
1266 2014-10-01  Daniel Bates  <dabates@apple.com>
1267
1268         Another attempt to fix the Mac build after <https://trac.webkit.org/changeset/174180>
1269         (https://bugs.webkit.org/show_bug.cgi?id=137277)
1270
1271         Include header AvailabilityMacros.h instead of Availability.h, which actually defines the
1272         macro __MAC_OS_X_VERSION_MIN_REQUIRED.
1273
1274         * wtf/spi/darwin/XPCSPI.h:
1275
1276 2014-10-01  Daniel Bates  <dabates@apple.com>
1277
1278         Attempt to fix the build after <https://trac.webkit.org/changeset/174180>
1279         (https://bugs.webkit.org/show_bug.cgi?id=137277)
1280
1281         Include header <Availability.h> for the definition of __MAC_OS_X_VERSION_MIN_REQUIRED.
1282         Also, we want to define CONST_ON_OR_AFTER_MAC_OS_X_VERSION_1090 to be const when building
1283         on iOS.
1284
1285         * wtf/spi/darwin/XPCSPI.h:
1286
1287 2014-10-01  Daniel Bates  <dabates@apple.com>
1288
1289         Clean up: Move XPC forward declarations in JavaScriptCore to WTF SPI wrapper header
1290         https://bugs.webkit.org/show_bug.cgi?id=137277
1291
1292         Reviewed by Alexey Proskuryakov.
1293
1294         Towards centralizing the declarations of XPC functions used in JavaScriptCore
1295         and WebKit2, add a header that wraps these function declarations called XPCSPI.h
1296         and use it instead of including the corresponding XPC API/SPI headers/forward
1297         declaring XPC functions. This will also aid in the effort to make WebKit2 build
1298         for iOS with the public iOS SDK.
1299
1300         * WTF.xcodeproj/project.pbxproj:
1301         * wtf/spi/darwin/XPCSPI.h: Added.
1302
1303 2014-10-01  Brent Fulgham  <bfulgham@apple.com>
1304
1305         [Win] 32-bit JavaScriptCore should limit itself to the C loop
1306         https://bugs.webkit.org/show_bug.cgi?id=137304
1307         <rdar://problem/18375370>
1308
1309         Reviewed by Michael Saboff.
1310
1311         * wtf/Platform.h: Force the C loop when building for 32-bit Windows.
1312
1313 2014-09-30  Christophe Dumez  <cdumez@apple.com>
1314
1315         Generalize is<>() / downcast<>() support to all types
1316         https://bugs.webkit.org/show_bug.cgi?id=137243
1317
1318         Reviewed by Benjamin Poulain.
1319
1320         Generalize is<>() / downcast<>() support to all types, not just Nodes.
1321
1322         * wtf/Assertions.h:
1323         * wtf/TypeCasts.h: Added.
1324         (WTF::is):
1325         (WTF::downcast):
1326
1327 2014-09-30  Anders Carlsson  <andersca@apple.com>
1328
1329         Get the STRING_STATS codepath compiling again, and add calls to ref/deref
1330         https://bugs.webkit.org/show_bug.cgi?id=137259
1331
1332         Reviewed by Andreas Kling.
1333
1334         * wtf/text/StringImpl.cpp:
1335         (WTF::StringStats::removeString):
1336         (WTF::StringStats::printStats):
1337         (WTF::StringImpl::~StringImpl):
1338         * wtf/text/StringImpl.h:
1339         (WTF::StringImpl::StringImpl):
1340         (WTF::StringImpl::isSubString):
1341         (WTF::StringImpl::ref):
1342         (WTF::StringImpl::deref):
1343         (WTF::StringStats::addUpconvertedString): Deleted.
1344
1345 2014-09-30  Daniel Bates  <dabates@apple.com>
1346
1347         REGRESSION (r172532): JSBase.h declares NSMapTable functions that are SPI
1348         https://bugs.webkit.org/show_bug.cgi?id=137170
1349         <rdar://problem/18477384>
1350
1351         Reviewed by Geoffrey Garen.
1352
1353         Add SPI wrapper header, NSMapTableSPI.h.
1354
1355         Additionally, define convenience macro EXTERN_C that can be used to specify the C linkage
1356         convention for a declaration. For example, the declaration "EXTERN_C const int x;" will
1357         expand to:
1358
1359         extern const int x;
1360
1361         and
1362
1363         extern "C" const int x;
1364
1365         when used in a C and C++ file, respectively.
1366
1367         * WTF.xcodeproj/project.pbxproj:
1368         * wtf/Compiler.h:
1369         * wtf/spi/cocoa/NSMapTableSPI.h: Added.
1370
1371 2014-09-29  Commit Queue  <commit-queue@webkit.org>
1372
1373         Unreviewed, rolling out r174045.
1374         https://bugs.webkit.org/show_bug.cgi?id=137231
1375
1376         Introduced a crash during page loading tests on Mac (Requested
1377         by rniwa on #webkit).
1378
1379         Reverted changeset:
1380
1381         "Replace OSObjectPtr with RetainPtr/adoptOS"
1382         https://bugs.webkit.org/show_bug.cgi?id=137158
1383         http://trac.webkit.org/changeset/174045
1384
1385 2014-09-26  Sam Weinig  <sam@webkit.org>
1386
1387         Replace OSObjectPtr with RetainPtr/adoptOS
1388         https://bugs.webkit.org/show_bug.cgi?id=137158
1389
1390         Reviewed by Dan Bernstein.
1391
1392         * WTF.xcodeproj/project.pbxproj:
1393         * wtf/OSObjectPtr.h: Removed.
1394         * wtf/RetainPtr.h:
1395         (WTF::adoptOS):
1396         Added. This adopt function is slightly different than both adoptCF and adoptNS,
1397         in that unlike adoptCF(), it can be passed an Objective-C type (since OS objects
1398         are sometimes Objective-C objects, but not always), and unlike adoptNS() it doesn't 
1399         require us to jump through hoops to appease GC (since OS objects are not Objective-C
1400         objects if GC is enabled).
1401
1402 2014-09-24  Filip Pizlo  <fpizlo@apple.com>
1403
1404         FTL should sink object allocations
1405         https://bugs.webkit.org/show_bug.cgi?id=136330
1406
1407         Reviewed by Oliver Hunt.
1408         
1409         Make it possible to reset a Bag.
1410
1411         * wtf/Bag.h:
1412         (WTF::Bag::Bag):
1413         (WTF::Bag::~Bag):
1414         (WTF::Bag::clear):
1415
1416 2014-09-25  Roger Fong  <roger_fong@apple.com>
1417
1418         [Windows] Unreviewed build fix. Ensure that python2.7 is used for Windows builds.
1419
1420         * WTF.vcxproj/WTFGenerated.make:
1421
1422 2014-09-25  Csaba Osztrogonác  <ossy@webkit.org>
1423
1424         Remove WinCE port from trunk
1425         https://bugs.webkit.org/show_bug.cgi?id=136951
1426
1427         Reviewed by Alex Christensen.
1428
1429         * config.h:
1430         * wtf/Assertions.cpp:
1431         * wtf/Assertions.h:
1432         * wtf/Atomics.h:
1433         (WTF::weakCompareAndSwap):
1434         * wtf/CurrentTime.cpp:
1435         (WTF::lowResUTCTime):
1436         * wtf/DataLog.cpp:
1437         * wtf/DateMath.cpp:
1438         (WTF::getLocalTime):
1439         (WTF::calculateDSTOffset):
1440         * wtf/FastMalloc.cpp:
1441         * wtf/FeatureDefines.h:
1442         * wtf/OSAllocator.h:
1443         (WTF::OSAllocator::decommitAndRelease):
1444         * wtf/Platform.h:
1445         * wtf/PlatformWin.cmake:
1446         * wtf/RAMSize.cpp:
1447         (WTF::computeRAMSize):
1448         * wtf/RandomNumberSeed.h:
1449         (WTF::initializeRandomNumberGenerator):
1450         * wtf/StackBounds.cpp:
1451         (WTF::StackBounds::initialize):
1452         * wtf/StackBounds.h:
1453         (WTF::StackBounds::isGrowingDownward):
1454         * wtf/StdLibExtras.h:
1455         (wtf_bsearch): Deleted.
1456         * wtf/StringExtras.h:
1457         (strnicmp): Deleted.
1458         (stricmp): Deleted.
1459         (strdup): Deleted.
1460         * wtf/ThreadSpecific.h:
1461         * wtf/ThreadingWin.cpp:
1462         (WTF::createThreadInternal):
1463         * wtf/WindowsExtras.h:
1464         (WTF::getRegistryValue):
1465         (WTF::getWindowPointer):
1466         (WTF::setWindowPointer):
1467         * wtf/dtoa/utils.h:
1468         * wtf/text/WTFString.cpp:
1469         (WTF::String::format):
1470
1471 2014-09-24  Geoffrey Garen  <ggaren@apple.com>
1472
1473         Do the bmalloc.
1474         https://bugs.webkit.org/show_bug.cgi?id=132629
1475
1476         Reviewed by Gavin Barraclough.
1477
1478         64-bit only for now, just to try it out.
1479
1480         * wtf/FastMalloc.cpp:
1481
1482 2014-09-23  Geoffrey Garen  <ggaren@apple.com>
1483
1484         Rolled out r173346.
1485
1486             bmalloc should honor the FastMalloc statistics API
1487             https://bugs.webkit.org/show_bug.cgi?id=136592
1488
1489         This didn't really work. Because we allow ranges with and without
1490         physical pages to merge, and we allow double-committing and
1491         double-decommitting, we can't rely on commit actions to track memory
1492         footprint.
1493
1494         * wtf/FastMalloc.cpp:
1495         (WTF::fastMallocStatistics):
1496
1497 2014-09-23  Joseph Pecoraro  <pecoraro@apple.com>
1498
1499         Web Inspector: Should be able to attach a debugger to a JSContext before anything is executed
1500         https://bugs.webkit.org/show_bug.cgi?id=136893
1501
1502         Reviewed by Timothy Hatcher.
1503
1504         Currently automatic inspection only happens in processes that have a
1505         debugger attached. That condition may change in the future, but this
1506         function can stand on its own in WTF. It may be useful in the future
1507         to perhaps continue though ASSERTs if you have a debugger attached.
1508
1509         * wtf/Assertions.cpp:
1510         * wtf/Assertions.h:
1511
1512 2014-09-22  Sam Weinig  <sam@webkit.org>
1513
1514         Eliminate redundant PtrHash specializations
1515         https://bugs.webkit.org/show_bug.cgi?id=136990
1516
1517         Reviewed by Darin Adler.
1518
1519         Now that we have IsSmartPtr, we can eliminate all the specializations
1520         of PtrHash that we had (for RefPtr, OwnPtr, RetainPtr, and std::unique_ptr)
1521         and instead just have one that uses GetPtrHelper.
1522
1523         No changes of behavior intended.
1524
1525         * wtf/GetPtr.h:
1526         Remove unnecessary const_cast that Darin noticed.
1527
1528         * wtf/HashFunctions.h:
1529         (WTF::PtrHash::hash): Deleted.
1530         (WTF::PtrHash::equal): Deleted.
1531         (WTF::PtrHash<RefPtr<P>>::hash): Deleted.
1532         (WTF::PtrHash<RefPtr<P>>::equal): Deleted.
1533         Specialize PtrHash based on whether the type is a smart pointer, and use GetPtrHelper
1534         to implement the smart pointer specialized variant.
1535
1536         * wtf/HashMap.h:
1537         Remove include of GetPtr.h that is now included by HashFunctions.h
1538
1539         * wtf/OwnPtr.h:
1540         (WTF::PtrHash<OwnPtr<P>>::hash): Deleted.
1541         (WTF::PtrHash<OwnPtr<P>>::equal): Deleted.
1542         Remove unnecessary specialization of PtrHash.
1543
1544         * wtf/RetainPtr.h:
1545         (WTF::PtrHash<RetainPtr<P>>::hash): Deleted.
1546         (WTF::PtrHash<RetainPtr<P>>::equal): Deleted.
1547         Specialize IsSmartPointer for RetainPtr and remove the then unnecessary specialization of PtrHash.
1548         (This is already tested in the API test WTF/cf/RetainPtrHashing).
1549
1550 2014-09-20  Sam Weinig  <sam@webkit.org>
1551
1552         Make possible HashSet<std::unique_ptr<>>
1553         https://bugs.webkit.org/show_bug.cgi?id=136166
1554
1555         Reviewed by Darin Adler.
1556
1557         * wtf/GetPtr.h:
1558         (WTF::getPtr):
1559         (WTF::GetPtrHelper<std::unique_ptr<T>>::getPtr):
1560         Make specializing GetPtrHelper a bit cleaner (you don't have to put 
1561         IsSmartPtr<T>::value everywhere any more) and add specializations for
1562         std::unique_ptr.
1563
1564         * wtf/HashFunctions.h:
1565         (WTF::PtrHash<std::unique_ptr<P>>):
1566         Add specialization for PtrHash for std::unique_ptr and set it as the DefaultHash
1567         for it as well.
1568
1569         * wtf/HashMap.h:    
1570         * wtf/HashSet.h:
1571         Add overloads of find(), contains(), remove(), take() (and get() for HashMap) for "smart pointers" that
1572         take the raw pointer type as the parameter. These use SFINAE to make themselves only available
1573         when the IsSmartPtr<KeyType>::value is true. 
1574
1575         * wtf/HashTraits.h:
1576         Override constructDeletedValue() and isDeletedValue() in the std::unique_ptr specialization
1577         since the default implementation depends on the type having a constructor that takes a HashTableDeletedValue
1578         and function named isHashTableDeletedValue().
1579
1580         * wtf/OwnPtr.h:
1581         (WTF::OwnPtr::OwnPtr):
1582         (WTF::OwnPtr::isHashTableDeletedValue):
1583         (WTF::OwnPtr::hashTableDeletedValue):
1584         Add HashTableDeletedValue constructor/functions to allow the constructDeletedValue() and isDeletedValue()
1585         hash traits to work.
1586
1587         (WTF::PtrHash<OwnPtr<P>>::hash):
1588         (WTF::PtrHash<OwnPtr<P>>::equal):
1589         Add specialization for PtrHash for OwnPtr and set it as the DefaultHash
1590         for it as well.
1591
1592         * wtf/Ref.h:
1593         Update for the less verbose GetPtrHelper specialization.
1594
1595 2014-09-19  Chris Dumez  <cdumez@apple.com>
1596
1597         Allow DOM methods to return references instead of pointers
1598         https://bugs.webkit.org/show_bug.cgi?id=136931
1599
1600         Add support for having WTF::getPtr() transform reference arguments
1601         into raw pointers so that DOM methods can now return references when
1602         appropriate and so that the generated bindings code can handle this
1603         via WTF::getPtr().
1604
1605         This patch had to alter the way getPtr() was overloaded for smart
1606         pointer types so that we don't call &p on smart pointers but p.get().
1607         This was needed because the new WTF::getPtr(T&) was being called for
1608         RefPtr<T> arguments instead of the getPtr(const RefPtr<T>&) overload.
1609         This was addressed using traits and template specialization to
1610         distinguish WTF smart pointers from other types.
1611
1612         Reviewed by Sam Weinig.
1613
1614         * wtf/GetPtr.h:
1615         (WTF::getPtr):
1616         * wtf/OwnPtr.h:
1617         (WTF::getPtr): Deleted.
1618         * wtf/PassOwnPtr.h:
1619         (WTF::getPtr): Deleted.
1620         * wtf/PassRefPtr.h:
1621         (WTF::getPtr): Deleted.
1622         * wtf/Ref.h:
1623         * wtf/RefPtr.h:
1624         (WTF::getPtr): Deleted.
1625         * wtf/gobject/GRefPtr.h:
1626         (WTF::getPtr): Deleted.
1627
1628 2014-09-19  Daniel Bates  <dabates@apple.com>
1629
1630         Always assume internal SDK when building configuration Production
1631         https://bugs.webkit.org/show_bug.cgi?id=136925
1632         <rdar://problem/18362399>
1633
1634         Reviewed by Dan Bernstein.
1635
1636         * Configurations/Base.xcconfig:
1637
1638 2014-09-19  Diego Pino Garcia  <dpino@igalia.com>
1639
1640         Simple ES6 feature:String prototype additions
1641         https://bugs.webkit.org/show_bug.cgi?id=131704
1642
1643         Reviewed by Darin Adler.
1644
1645         * wtf/text/StringImpl.cpp:
1646         (WTF::StringImpl::find):
1647         (WTF::equalInner): Added.
1648         (WTF::StringImpl::startsWith): Add implementation that supports
1649         'startOffset' parameter.
1650         (WTF::StringImpl::endsWith): Add implementation that supports
1651         'endOffset' parameter.
1652         * wtf/text/StringImpl.h:
1653         * wtf/text/WTFString.h:
1654         (WTF::String::contains): Modify current implementation to allow
1655         setting a startOffset, 0 by default.
1656         (WTF::String::startsWith):
1657         (WTF::String::endsWith):
1658
1659 2014-09-18  Carlos Garcia Campos  <cgarcia@igalia.com>
1660
1661         [GTK] Dot not allow to create delete-on-destroy GMainLoopSources
1662         https://bugs.webkit.org/show_bug.cgi?id=136923
1663
1664         Reviewed by Gustavo Noronha Silva.
1665
1666         We have several asserts to ensure that delete-on-destroy sources
1667         are not misused, like not scheduling socket sources on a
1668         delete-on-destroy GMainLoopSource or not allowing to cancel them
1669         before they have been dispatched. It's better to ensure all those
1670         things at compile time, using static methods to schedule sources
1671         creating a delete-on-destroy GMainLoopSource that is not returned
1672         to the user.
1673
1674         * wtf/gobject/GMainLoopSource.cpp:
1675         (WTF::GMainLoopSource::create): Private static method to create a
1676         delete-on-destroy GMainLoopSource.
1677         (WTF::GMainLoopSource::cancelWithoutLocking): Return early in case
1678         of delete-on-destroy source, since they can't be cancelled.
1679         (WTF::GMainLoopSource::schedule): Remove assertion to ensure
1680         socket sources are not scheduled on a delete-on-destroy GMainLoopSource.
1681         (WTF::GMainLoopSource::scheduleAndDeleteOnDestroy):
1682         (WTF::GMainLoopSource::scheduleAfterDelayAndDeleteOnDestroy):
1683         (WTF::GMainLoopSource::createAndDeleteOnDestroy): Deleted.
1684         * wtf/gobject/GMainLoopSource.h:
1685         * wtf/gtk/MainThreadGtk.cpp:
1686         (WTF::scheduleDispatchFunctionsOnMainThread): Use GMainLoopSource::scheduleAndDeleteOnDestroy()
1687         * wtf/gtk/RunLoopGtk.cpp:
1688         (WTF::RunLoop::wakeUp): Ditto.
1689
1690 2014-09-18  Joseph Pecoraro  <pecoraro@apple.com>
1691
1692         Unreviewed rollout r173731. Broke multiple builds.
1693
1694         * wtf/Assertions.cpp:
1695         * wtf/Assertions.h:
1696
1697 2014-09-18  Joseph Pecoraro  <pecoraro@apple.com>
1698
1699         Web Inspector: Should be able to attach a debugger to a JSContext before anything is executed
1700         https://bugs.webkit.org/show_bug.cgi?id=136893
1701
1702         Reviewed by Timothy Hatcher.
1703
1704         Currently automatic inspection only happens in processes that have a
1705         debugger attached. That condition may change in the future, but this
1706         function can stand on its own in WTF. It may be useful in the future
1707         to perhaps continue though ASSERTs if you have a debugger attached.
1708
1709         * wtf/Assertions.cpp:
1710         * wtf/Assertions.h:
1711
1712 2014-09-18  Zan Dobersek  <zdobersek@igalia.com>
1713
1714         GMainLoopSource is exposed to race conditions
1715         https://bugs.webkit.org/show_bug.cgi?id=135800
1716
1717         Reviewed by Carlos Garcia Campos.
1718
1719         GMainLoopSource objects can be dispatching tasks on one thread
1720         while having a new task scheduled on a different thread. This
1721         can for instance occur in WebKitVideoSink, where the timeout
1722         callback can be called on main thread while at the same time
1723         it is being rescheduled on a different thread (created through
1724         GStreamer).
1725
1726         The initial solution is to use GMutex to prevent parallel data
1727         access from different threads. In the future I plan to look at
1728         the possibility of creating thread-specific GMainLoopSource
1729         objects that wouldn't require the use of GMutex.
1730
1731         GSource, GCancellable and std::function<> objects are now packed
1732         into an internal Context structure. Using the C++11 move semantics
1733         it's simple to, at the time of dispatch, move the current context
1734         out of the GMainLoopSource object in case the dispatch causes a
1735         rescheduling on that same object.
1736
1737         Also added in the Context struct is a new GCancellable. The pointer
1738         of that object is shared with the GMainLoopSource before the Context
1739         is moved out for the callback dispatch. This makes it safe to cancel
1740         or even delete the GMainLoopSource during the dispatch and prevents
1741         use-after-delete on GMainLoopSource once the dispatch is done in
1742         the GMainLoopSource::*Callback() methods.
1743
1744         All the schedule*() methods and the cancelWithoutLocking() method
1745         callers now lock the GMutex to ensure no one else is accessing the
1746         data at that moment. Similar goes for the dispatch methods, but those
1747         do the dispatch and possible destruction duties with the mutex unlocked.
1748         The dispatch can cause rescheduling on the same GMainLoopSource object,
1749         which must not be done with a locked mutex.
1750
1751         * wtf/gobject/GMainLoopSource.cpp:
1752         (WTF::GMainLoopSource::GMainLoopSource):
1753         (WTF::GMainLoopSource::~GMainLoopSource):
1754         (WTF::GMainLoopSource::cancel):
1755         (WTF::GMainLoopSource::cancelWithoutLocking):
1756         (WTF::GMainLoopSource::scheduleIdleSource):
1757         (WTF::GMainLoopSource::schedule):
1758         (WTF::GMainLoopSource::scheduleTimeoutSource):
1759         (WTF::GMainLoopSource::scheduleAfterDelay):
1760         (WTF::GMainLoopSource::voidCallback):
1761         (WTF::GMainLoopSource::boolCallback):
1762         (WTF::GMainLoopSource::socketCallback):
1763         (WTF::GMainLoopSource::socketSourceCallback):
1764         (WTF::GMainLoopSource::Context::destroySource):
1765         (WTF::GMainLoopSource::reset): Deleted.
1766         (WTF::GMainLoopSource::destroy): Deleted.
1767         * wtf/gobject/GMainLoopSource.h:
1768
1769 2014-09-17  Daniel Bates  <dabates@apple.com>
1770
1771         Unreviewed, rolling out r173695.
1772
1773         Broke building third-party Legacy WebKit apps; will
1774         investigate offline
1775
1776         Reverted changeset:
1777
1778         "[iOS] Make WebCore build with public iOS SDK"
1779         https://bugs.webkit.org/show_bug.cgi?id=136487
1780         http://trac.webkit.org/changeset/173695
1781
1782 2014-09-17  Benjamin Poulain  <bpoulain@apple.com>
1783
1784         CSS value in whitespace-separated list attribute selector (~=) mishandles tab/newline/etc.
1785         https://bugs.webkit.org/show_bug.cgi?id=136807
1786
1787         Reviewed by Antti Koivisto.
1788
1789         * wtf/text/AtomicString.h:
1790         (WTF::AtomicString::find):
1791
1792 2014-09-17  Daniel Bates  <dabates@apple.com>
1793
1794         [iOS] Make WebCore build with public iOS SDK
1795         https://bugs.webkit.org/show_bug.cgi?id=136487
1796
1797         Reviewed by David Kilzer.
1798
1799         Define convenience macro EXTERN_C that can be used to specify the C linkage convention
1800         for a declaration. For example, the declaration "EXTERN_C const int x;" will expand to:
1801
1802         extern const int x;
1803
1804         and
1805
1806         extern "C" const int x;
1807
1808         when used in a C and C++ file, respectively.
1809
1810         * wtf/Compiler.h:
1811
1812 2014-09-16  Filip Pizlo  <fpizlo@apple.com>
1813
1814         Unreviewed, disable native inlining because it causes build failures.
1815
1816         * wtf/Platform.h:
1817
1818 2014-09-15  Jer Noble  <jer.noble@apple.com>
1819
1820         [Mac] Support audioSourceProvider() in MediaPlayerPrivateAVFoundationObjC
1821         https://bugs.webkit.org/show_bug.cgi?id=135042
1822
1823         Reviewed by Eric Carlson.
1824
1825         * wtf/Platform.h: Add WTF_USE_MEDIATOOLBOX.
1826
1827 2014-09-15  peavo@outlook.com  <peavo@outlook.com>
1828
1829         [WinCairo] Make it easier to enable/disable GStreamer.
1830         https://bugs.webkit.org/show_bug.cgi?id=135766
1831
1832         Reviewed by Brent Fulgham.
1833
1834         Make it possible to enable/disable GStreamer by editing the new user macro ENABLE_GSTREAMER_WINCAIRO.
1835
1836         * WTF.vcxproj/WTFDebugWinCairo.props: Import GStreamer property file.
1837         * WTF.vcxproj/WTFReleaseWinCairo.props: Ditto.
1838         * wtf/Platform.h: Enable GStreamer if ENABLE(GSTREAMER_WINCAIRO) is true, otherwise use Media Foundation.
1839
1840 2014-09-10  Jon Honeycutt  <jhoneycutt@apple.com>
1841
1842         Re-add the request autocomplete feature
1843
1844         <https://bugs.webkit.org/show_bug.cgi?id=136730>
1845
1846         This feature was rolled out in r148731 because it was only used by
1847         Chromium. As we consider supporting this feature, roll it back in, but
1848         leave it disabled.
1849
1850         This rolls out r148731 (which removed the feature) with small changes
1851         needed to make the code build in ToT, to make the tests run, and to
1852         remove unused code.
1853
1854         Reviewed by Andy Estes.
1855
1856         * wtf/FeatureDefines.h:
1857
1858 2014-09-12  Tim Horton  <timothy_horton@apple.com>
1859
1860         Swiping back from a Twitter image to Twitter flashes to the wrong position
1861         https://bugs.webkit.org/show_bug.cgi?id=136798
1862         <rdar://problem/18324338>
1863
1864         Reviewed by Darin Adler and Sam Weinig.
1865
1866         * wtf/RunLoop.h:
1867         (WTF::RunLoop::TimerBase::startRepeating):
1868         Add a std::chrono veresion of RunLoop::TimerBase::startRepeating.
1869
1870 2014-09-12  Geoffrey Garen  <ggaren@apple.com>
1871
1872         Rolled out r173540.
1873
1874         It broke the Membuster performance bot, and it's still slightly profligate
1875         with memory.
1876
1877             Do the bmalloc.
1878             https://bugs.webkit.org/show_bug.cgi?id=132629
1879
1880         * wtf/FastMalloc.cpp:
1881
1882 2014-09-11  Geoffrey Garen  <ggaren@apple.com>
1883
1884         Do the bmalloc.
1885         https://bugs.webkit.org/show_bug.cgi?id=132629
1886
1887         Reviewed by Michael Saboff.
1888
1889         64-bit only for now, just to try it out.
1890
1891         * wtf/FastMalloc.cpp:
1892
1893 2014-09-09  Benjamin Poulain  <bpoulain@apple.com>
1894
1895         Disable the "unreachable-code" warning
1896         https://bugs.webkit.org/show_bug.cgi?id=136677
1897
1898         Reviewed by Darin Adler.
1899
1900         The warning causes various build errors depending on which Clang you are using.
1901
1902         For example, with recent clangs, it breaks all the ARCHS dependent code like this:
1903             if (sizeof(uintptr_t) == 4)
1904                 // Something for 32 bits.
1905             else
1906                 // Somethign for 64 bits.
1907
1908         * Configurations/Base.xcconfig:
1909
1910 2014-09-07  Filip Pizlo  <fpizlo@apple.com>
1911
1912         DFG should have a reusable SSA builder
1913         https://bugs.webkit.org/show_bug.cgi?id=136331
1914
1915         Reviewed by Oliver Hunt.
1916         
1917         Update the alloc() method to use variadic templates. This makes it more natural to use.
1918
1919         * wtf/SegmentedVector.h:
1920         (WTF::SegmentedVector::alloc):
1921
1922 2014-09-08  Eva Balazsfalvi  <evab.u-szeged@partner.samsung.com>
1923
1924         Remove FILTERS flag
1925         https://bugs.webkit.org/show_bug.cgi?id=136571
1926
1927         Reviewed by Darin Adler.
1928
1929         * wtf/FeatureDefines.h:
1930
1931 2014-09-08  Dan Bernstein  <mitz@apple.com>
1932
1933         HAVE(VOUCHERS) is not available outside of WebKit2
1934         https://bugs.webkit.org/show_bug.cgi?id=136637
1935
1936         Reviewed by Tim Horton.
1937
1938         * wtf/Platform.h: Moved the definition of HAVE_VOUCHERS from WebKit2’s config.h here.
1939
1940 2014-09-08  Tim Horton  <timothy_horton@apple.com>
1941
1942         Try to fix the build after r173383, part 2.
1943
1944         * wtf/OSObjectPtr.h:
1945
1946 2014-09-08  Tim Horton  <timothy_horton@apple.com>
1947
1948         Try to fix the build after r173383.
1949
1950         * wtf/OSObjectPtr.h:
1951
1952 2014-09-07  Sam Weinig  <sam@webkit.org>
1953
1954         Make OSObjectPtr a bit more like RefPtr
1955         https://bugs.webkit.org/show_bug.cgi?id=136613
1956
1957         Reviewed by Darin Adler.
1958
1959         Address some of Darin's feedback by:
1960         - Making the adopting constructor private and friending adoptOSObject().
1961         - Implementing the assignment operator using swap.
1962         - Adding a move assignment operator.
1963
1964         * wtf/OSObjectPtr.h:
1965         (WTF::OSObjectPtr::operator=):
1966         (WTF::OSObjectPtr::swap):
1967         (WTF::OSObjectPtr::OSObjectPtr):
1968
1969 2014-09-08  Jessie Berlin  <jberlin@apple.com>
1970
1971         More build fixes after r173374.
1972
1973         * wtf/dtoa/strtod.cc:
1974
1975 2014-09-08  Jessie Berlin  <jberlin@apple.com>
1976
1977         Build fix after r173374.
1978
1979         * wtf/dtoa/strtod.cc:
1980
1981 2014-09-08  Jessie Berlin  <jberlin@apple.com>
1982
1983         Speculative build fix after r173364.
1984
1985         * wtf/dtoa/strtod.cc:
1986
1987 2014-09-07  Maciej Stachowiak  <mjs@apple.com>
1988
1989         Introduce COMPILER_QUIRK(CONSIDERS_UNREACHABLE_CODE) and use it
1990         https://bugs.webkit.org/show_bug.cgi?id=136616
1991
1992         Reviewed by Darin Adler.
1993
1994         * wtf/Compiler.h: Define the quirk for all compilers but clang.
1995
1996 2014-09-06  Sam Weinig  <sam@webkit.org>
1997
1998         XPCPtr should be converted into an all purpose smart pointer for os_objects
1999         https://bugs.webkit.org/show_bug.cgi?id=136602
2000
2001         Reviewed by Darin Adler.
2002
2003         * WTF.xcodeproj/project.pbxproj:
2004         * wtf/OSObjectPtr.h: Copied from Source/WebKit2/Platform/IPC/mac/XPCPtr.h.
2005         (WTF::retainOSObject):
2006         (WTF::releaseOSObject):
2007         (WTF::OSObjectPtr::OSObjectPtr):
2008         (WTF::OSObjectPtr::~OSObjectPtr):
2009         (WTF::OSObjectPtr::operator=):
2010         (WTF::adoptOSObject):
2011         (IPC::XPCPtr::XPCPtr): Deleted.
2012         (IPC::XPCPtr::~XPCPtr): Deleted.
2013         (IPC::XPCPtr::operator=): Deleted.
2014         (IPC::adoptXPC): Deleted.
2015         Rename/move XPCPtr to OSObjectPtr and make it work with any os_object.
2016
2017 2014-09-06  Darin Adler  <darin@apple.com>
2018
2019         Make updates suggested by new version of Xcode
2020         https://bugs.webkit.org/show_bug.cgi?id=136603
2021
2022         Reviewed by Mark Rowe.
2023
2024         * Configurations/Base.xcconfig: Added CLANG_WARN_UNREACHABLE_CODE,
2025         COMBINE_HIDPI_IMAGES, and ENABLE_STRICT_OBJC_MSGSEND as suggested by
2026         Xcode upgrade check.
2027
2028         * WTF.xcodeproj/project.pbxproj: Updated LastUpgradeCheck.
2029
2030 2014-09-05  Geoffrey Garen  <ggaren@apple.com>
2031
2032         bmalloc should honor the FastMalloc statistics API
2033         https://bugs.webkit.org/show_bug.cgi?id=136592
2034
2035         Reviewed by Gavin Barraclough.
2036
2037         * wtf/FastMalloc.cpp:
2038         (WTF::fastMallocStatistics):
2039
2040 2014-09-05  Geoffrey Garen  <ggaren@apple.com>
2041
2042         bmalloc should honor the FastMalloc scavenging API
2043         https://bugs.webkit.org/show_bug.cgi?id=136588
2044
2045         Reviewed by Andreas Kling.
2046
2047         * wtf/FastMalloc.cpp:
2048         (WTF::releaseFastMallocFreeMemory):
2049
2050 2014-09-05  Geoffrey Garen  <ggaren@apple.com>
2051
2052         Rolled out <http://trac.webkit.org/changeset/173313>.
2053
2054         It seems to have broken the PLT bot.
2055
2056                 Do the bmalloc.
2057                 https://bugs.webkit.org/show_bug.cgi?id=132629
2058
2059                 * wtf/FastMalloc.cpp:
2060
2061 2014-06-06  Jer Noble  <jer.noble@apple.com>
2062
2063         Refactoring: make MediaTime the primary time type for audiovisual times.
2064         https://bugs.webkit.org/show_bug.cgi?id=133579
2065
2066         Reviewed by Eric Carlson.
2067
2068         Add a unary minus operator, and add unimplemented private casting operators, to make
2069         unintentional double->MediaTime and MediaTime->double casts hard errors.
2070
2071         * wtf/MediaTime.cpp:
2072         (WTF::MediaTime::operator-):
2073         * wtf/MediaTime.h:
2074
2075 2014-09-04  Geoffrey Garen  <ggaren@apple.com>
2076
2077         Do the bmalloc.
2078         https://bugs.webkit.org/show_bug.cgi?id=132629
2079
2080         Reviewed by Michael Saboff.
2081
2082         64-bit only for now, just to try it out.
2083
2084         * wtf/FastMalloc.cpp:
2085
2086 2014-09-05  Dániel Bátyai  <dbatyai.u-szeged@partner.samsung.com>
2087
2088         Enable GenGC on ARM Traditional
2089         https://bugs.webkit.org/show_bug.cgi?id=136567
2090
2091         Reviewed by Csaba Osztrogonác.
2092
2093         * wtf/Platform.h:
2094
2095 2014-09-04  Filip Pizlo  <fpizlo@apple.com>
2096
2097         Beef up the DFG's CFG analyses to include iterated dominance frontiers and more user-friendly BlockSets
2098         https://bugs.webkit.org/show_bug.cgi?id=136520
2099
2100         Fix bug found in Geoff's review but not landed in previous commit.
2101
2102         * wtf/BitVector.cpp:
2103         (WTF::BitVector::equalsSlowCaseFast): return true.
2104
2105 2014-09-03  Filip Pizlo  <fpizlo@apple.com>
2106
2107         Beef up the DFG's CFG analyses to include iterated dominance frontiers and more user-friendly BlockSets
2108         https://bugs.webkit.org/show_bug.cgi?id=136520
2109
2110         Reviewed by Geoffrey Garen.
2111         
2112         Give BitVector a way to quickly find the next set (or unset) bit. Make BitVector equality
2113         faster. Fix a minor closure goof in Spectrum.
2114
2115         * wtf/BitVector.cpp:
2116         (WTF::BitVector::equalsSlowCase):
2117         (WTF::BitVector::equalsSlowCaseFast):
2118         (WTF::BitVector::equalsSlowCaseSimple):
2119         * wtf/BitVector.h:
2120         (WTF::BitVector::findBit):
2121         (WTF::BitVector::findBitFast):
2122         (WTF::BitVector::findBitSimple):
2123         (WTF::BitVector::findBitInWord):
2124         * wtf/Spectrum.h:
2125         (WTF::Spectrum::removeIf):
2126
2127 2014-09-04  Anders Carlsson  <andersca@apple.com>
2128
2129         Make hash table classes final
2130         https://bugs.webkit.org/show_bug.cgi?id=136540
2131
2132         Reviewed by Antti Koivisto.
2133
2134         We don't want anybody inheriting from these classes, so make them final.
2135
2136         * wtf/HashCountedSet.h:
2137         * wtf/HashMap.h:
2138         * wtf/HashSet.h:
2139
2140 2014-09-04  Eva Balazsfalvi  <evab.u-szeged@partner.samsung.com>
2141
2142         Remove CSS_FILTERS flag
2143         https://bugs.webkit.org/show_bug.cgi?id=136529
2144
2145         Reviewed by Dirk Schulze.
2146
2147         * wtf/FeatureDefines.h:
2148
2149 2014-09-04  Commit Queue  <commit-queue@webkit.org>
2150
2151         Unreviewed, rolling out r173201.
2152         https://bugs.webkit.org/show_bug.cgi?id=136538
2153
2154         Improves the situation but also introduces additional crashes.
2155         (Requested by zdobersek on #webkit).
2156
2157         Reverted changeset:
2158
2159         "GMainLoopSource is exposed to race conditions"
2160         https://bugs.webkit.org/show_bug.cgi?id=135800
2161         http://trac.webkit.org/changeset/173201
2162
2163 2014-09-04  Pratik Solanki  <psolanki@apple.com>
2164
2165         Remove iOS specific disk image cache
2166         https://bugs.webkit.org/show_bug.cgi?id=136517
2167
2168         Reviewed by Antti Koivisto.
2169
2170         Disk image cache code unnecessarily complicates SharedBuffer implementation. We can remove
2171         this now since we don't enable it in WebKit2 on iOS.
2172
2173         * wtf/FeatureDefines.h:
2174
2175 2014-09-03  Dan Bernstein  <mitz@apple.com>
2176
2177         Get rid of HIGH_DPI_CANVAS leftovers
2178         https://bugs.webkit.org/show_bug.cgi?id=136491
2179
2180         Reviewed by Benjamin Poulain.
2181
2182         * wtf/FeatureDefines.h: Removed definition of ENABLE_HIGH_DPI_CANVAS.
2183
2184 2014-09-03  Zan Dobersek  <zdobersek@igalia.com>
2185
2186         GMainLoopSource is exposed to race conditions
2187         https://bugs.webkit.org/show_bug.cgi?id=135800
2188
2189         Reviewed by Carlos Garcia Campos.
2190
2191         GMainLoopSource objects can be dispatching tasks on one thread
2192         while having a new task scheduled on a different thread. This
2193         can for instance occur in WebKitVideoSink, where the timeout
2194         callback can be called on main thread while at the same time
2195         it is being rescheduled on a different thread (created through
2196         GStreamer).
2197
2198         The initial solution is to use GMutex to prevent parallel data
2199         access from different threads. In the future I plan to add better
2200         assertions, some meaningful comments and look at the possibility
2201         of creating thread-specific GMainLoopSource objects that wouldn't
2202         require the use of GMutex.
2203
2204         GSource, GCancellable and std::function<> objects are now packed
2205         into an internal Context structure. Using the C++11 move semantics
2206         it's simple to, at the time of dispatch, move the current context
2207         out of the GMainLoopSource object in case the dispatch causes a
2208         rescheduling on that same object.
2209
2210         All the schedule*() methods and the cancelInternal() method callers
2211         now lock the GMutex to ensure no one else is accessing the data at
2212         that moment. Similar goes for the dispatch methods, but those do
2213         the dispatch and possible destruction duties with the mutex unlocked.
2214         The dispatch can cause rescheduling on the same GMainLoopSource object,
2215         which must not be done with a locked mutex.
2216
2217         * wtf/gobject/GMainLoopSource.cpp:
2218         (WTF::GMainLoopSource::GMainLoopSource):
2219         (WTF::GMainLoopSource::~GMainLoopSource):
2220         (WTF::GMainLoopSource::cancel):
2221         (WTF::GMainLoopSource::cancelInternal):
2222         (WTF::GMainLoopSource::scheduleIdleSource):
2223         (WTF::GMainLoopSource::schedule):
2224         (WTF::GMainLoopSource::scheduleTimeoutSource):
2225         (WTF::GMainLoopSource::scheduleAfterDelay):
2226         (WTF::GMainLoopSource::voidCallback):
2227         (WTF::GMainLoopSource::boolCallback):
2228         (WTF::GMainLoopSource::socketCallback):
2229         (WTF::GMainLoopSource::destroy):
2230         (WTF::GMainLoopSource::reset): Deleted.
2231         * wtf/gobject/GMainLoopSource.h:
2232
2233 2014-09-02  Daniel Bates  <dabates@apple.com>
2234
2235         [iOS] Support using Foundation networking code
2236         https://bugs.webkit.org/show_bug.cgi?id=136467
2237
2238         Reviewed by Pratik Solanki.
2239
2240         Disable USE(CFNETWORK) and use the Foundation networking code by default when building
2241         iOS WebKit without the Apple Internal SDK.
2242
2243         * wtf/Platform.h:
2244
2245 2014-08-26  Maciej Stachowiak  <mjs@apple.com>
2246
2247         Use RetainPtr::autorelease in some places where it seems appropriate
2248         https://bugs.webkit.org/show_bug.cgi?id=136280
2249
2250         Reviewed by Darin Adler.
2251
2252         * wtf/text/mac/StringImplMac.mm:
2253         (WTF::StringImpl::operator NSString *): Use autorelease() instead of
2254         CFBridgingRelease(leakRef())
2255
2256 2014-08-29  Joseph Pecoraro  <pecoraro@apple.com>
2257
2258         JavaScriptCore: Use ASCIILiteral where possible
2259         https://bugs.webkit.org/show_bug.cgi?id=136179
2260
2261         Reviewed by Michael Saboff.
2262
2263         * wtf/text/WTFString.cpp:
2264         (asciiDebug):
2265
2266 2014-08-27  Filip Pizlo  <fpizlo@apple.com>
2267
2268         DFG should compute immediate dominators using the O(n log n) form of Lengauer and Tarjan's "A Fast Algorithm for Finding Dominators in a Flowgraph"
2269         https://bugs.webkit.org/show_bug.cgi?id=93361
2270
2271         Reviewed by Mark Hahnenberg.
2272         
2273         Make BitVector operations return the previous value of the bit you're changing. This is
2274         useful for the kinds of set operations that are commonplace in compiler graph searches.
2275
2276         * wtf/BitVector.h:
2277         (WTF::BitVector::quickSet):
2278         (WTF::BitVector::quickClear):
2279         (WTF::BitVector::set):
2280         (WTF::BitVector::ensureSizeAndSet):
2281         (WTF::BitVector::clear):
2282
2283 2014-08-27  Filip Pizlo  <fpizlo@apple.com>
2284
2285         FTL should be able to do polymorphic call inlining
2286         https://bugs.webkit.org/show_bug.cgi?id=135145
2287
2288         Reviewed by Geoffrey Garen.
2289         
2290         Add some power that I need for call edge profiling.
2291
2292         * wtf/OwnPtr.h:
2293         (WTF::OwnPtr<T>::createTransactionally):
2294         * wtf/Spectrum.h:
2295         (WTF::Spectrum::add):
2296         (WTF::Spectrum::addAll):
2297         (WTF::Spectrum::get):
2298         (WTF::Spectrum::size):
2299         (WTF::Spectrum::KeyAndCount::KeyAndCount):
2300         (WTF::Spectrum::clear):
2301         (WTF::Spectrum::removeIf):
2302
2303 2014-08-27  Nico Weber  <thakis@chromium.org>
2304
2305         Delete a MSVS2010 workaround.
2306         https://bugs.webkit.org/show_bug.cgi?id=136321
2307
2308         Reviewed by Benjamin Poulain.
2309
2310         Ports https://codereview.chromium.org/512923004/ by the talented
2311         Nico Weber from Blink. No intended behavior change.
2312
2313         * wtf/Vector.h:
2314         (WTF::=):
2315
2316 2014-08-27  Mark Rowe  <mrowe@apple.com>
2317
2318         JavaScriptCore is missing debug info for WTF because libWTF.a is stripped.
2319         <https://webkit.org/b/136320> / <rdar://problem/18148776>
2320
2321         Reviewed by Dan Bernstein.
2322
2323         * Configurations/WTF.xcconfig: Set STRIP_INSTALLED_PRODUCT = NO for the target
2324         that produces libWTF.a so that the debug symbols will be linked into JavaScriptCore
2325         and end up in its dSYM file.
2326
2327 2014-08-26  Commit Queue  <commit-queue@webkit.org>
2328
2329         Unreviewed, rolling out r172940.
2330         https://bugs.webkit.org/show_bug.cgi?id=136256
2331
2332         Caused assertions on fast/storage/serialized-script-
2333         value.html, and possibly flakiness on more tests (Requested by
2334         ap on #webkit).
2335
2336         Reverted changeset:
2337
2338         "FTL should be able to do polymorphic call inlining"
2339         https://bugs.webkit.org/show_bug.cgi?id=135145
2340         http://trac.webkit.org/changeset/172940
2341
2342 2014-08-23  Filip Pizlo  <fpizlo@apple.com>
2343
2344         FTL should be able to do polymorphic call inlining
2345         https://bugs.webkit.org/show_bug.cgi?id=135145
2346
2347         Reviewed by Geoffrey Garen.
2348         
2349         Add some power that I need for call edge profiling.
2350
2351         * wtf/OwnPtr.h:
2352         (WTF::OwnPtr<T>::createTransactionally):
2353         * wtf/Spectrum.h:
2354         (WTF::Spectrum::add):
2355         (WTF::Spectrum::addAll):
2356         (WTF::Spectrum::get):
2357         (WTF::Spectrum::size):
2358         (WTF::Spectrum::KeyAndCount::KeyAndCount):
2359         (WTF::Spectrum::clear):
2360         (WTF::Spectrum::removeIf):
2361
2362 2014-08-25  Tomas Popela  <tpopela@redhat.com>
2363
2364         Add support for little-endian PowerPC64
2365         https://bugs.webkit.org/show_bug.cgi?id=135647
2366
2367         Reviewed by Oliver Hunt.
2368
2369         * wtf/Platform.h:
2370         * wtf/dtoa/utils.h:
2371
2372 2014-08-24  Zan Dobersek  <zdobersek@igalia.com>
2373
2374         GenericHashTraits::peek() is producing copies of passed-in temporary values
2375         https://bugs.webkit.org/show_bug.cgi?id=131461
2376
2377         Reviewed by Darin Adler.
2378
2379         * wtf/HashTraits.h:
2380         (WTF::GenericHashTraits::peek): Make this method a template that passes through
2381         the passed-in value without copying, achieved by using universal references and
2382         std::forward<>().
2383
2384 2014-08-22  Daniel Bates  <dabates@apple.com>
2385
2386         [iOS] Disable ENABLE_IOS_{GESTURE, TOUCH}_EVENTS, and temporarily disable ENABLE_TOUCH_EVENTS
2387         and ENABLE_XSLT when building with the iOS public SDK
2388         https://bugs.webkit.org/show_bug.cgi?id=135945
2389
2390         Reviewed by Andy Estes.
2391
2392         * wtf/FeatureDefines.h:
2393
2394 2014-08-22  Akos Kiss  <akiss@inf.u-szeged.hu>
2395
2396         Enable fixed executable allocator for any ARM64 target.
2397         https://bugs.webkit.org/show_bug.cgi?id=136162
2398
2399         Reviewed by Michael Saboff.
2400
2401         The ARM64 macro assembler relies on near calls being implemented by BL
2402         instructions, which have only 128MB offset range from PC. The
2403         on-demand executable allocator cannot ensure that any two locations in
2404         memory allocated for the JIT-compiled code are within this range. 
2405         However, the fixed executable allocator has a fixed 16MB memory pool for
2406         ARM64.
2407
2408         * wtf/Platform.h:
2409         Define ENABLE_EXECUTABLE_ALLOCATOR_FIXED if CPU(ARM64), and update
2410         attached comment.
2411
2412 2014-08-22  Commit Queue  <commit-queue@webkit.org>
2413
2414         Unreviewed, rolling out r172844.
2415         https://bugs.webkit.org/show_bug.cgi?id=136164
2416
2417         re-applying WEBCORE_EXPORTS patch (Requested by
2418         alexchristensen on #webkit).
2419
2420         Reverted changeset:
2421
2422         "Revert r172831, it broke the Windows build."
2423         http://trac.webkit.org/changeset/172844
2424
2425 2014-08-22  Jon Lee  <jonlee@apple.com>
2426
2427         Fix iOS build due to r172832 and move RUBBER_BANDING out of FeatureDefines.h
2428         https://bugs.webkit.org/show_bug.cgi?id=136157
2429
2430         Reviewed by Simon Fraser.
2431
2432         * wtf/FeatureDefines.h: Remove ENABLE(RUBBER_BANDING) logic for Mac platform.
2433
2434 2014-08-21  Tim Horton  <timothy_horton@apple.com>
2435
2436         Revert r172831, it broke the Windows build.
2437
2438         * wtf/ExportMacros.h:
2439
2440 2014-08-21  Zalan Bujtas  <zalan@apple.com>
2441
2442         Enable SATURATED_LAYOUT_ARITHMETIC.
2443         https://bugs.webkit.org/show_bug.cgi?id=136106
2444
2445         Reviewed by Simon Fraser.
2446
2447         SATURATED_LAYOUT_ARITHMETIC protects LayoutUnit against arithmetic overflow.
2448         (No measurable performance regression on Mac.)
2449
2450         * wtf/FeatureDefines.h:
2451
2452 2014-08-21  Alex Christensen  <achristensen@webkit.org>
2453
2454         More WEBCORE_EXPORT macros.
2455         https://bugs.webkit.org/show_bug.cgi?id=136129
2456
2457         Reviewed by Tim Horton.
2458
2459         * wtf/ExportMacros.h:
2460         Removed WTF_TESTING which isn't used.
2461
2462 2014-08-20  Akos Kiss  <akiss@inf.u-szeged.hu>
2463
2464         Enable ARM64 disassembler on EFL
2465         https://bugs.webkit.org/show_bug.cgi?id=136089
2466
2467         Reviewed by Filip Pizlo.
2468
2469         * wtf/Platform.h:
2470         Enable WTF_USE_ARM64_DISASSEMBLER for EFL as well.
2471
2472 2014-08-19  Pratik Solanki  <psolanki@apple.com>
2473
2474         Remove PurgeableBuffer since it is not very useful any more
2475         https://bugs.webkit.org/show_bug.cgi?id=135939
2476
2477         Reviewed by Andreas Kling.
2478
2479         * wtf/Platform.h: Remove ENABLE_PURGEABLE_MEMORY define.
2480         * wtf/VMTags.h: Remove VM tags used by WebCore for cached resource purgeable memory.
2481
2482 2014-08-19  Magnus Granberg  <zorry@gentoo.org>
2483
2484         TEXTREL in libjavascriptcoregtk-1.0.so.0.11.0 on x86 (or i586)
2485         https://bugs.webkit.org/show_bug.cgi?id=70610
2486
2487         Reviewed by Darin Adler.
2488
2489         Add PLT if we're building with PIC.
2490
2491         * wtf/InlineASM.h:
2492
2493 2014-08-19  Zalan Bujtas  <zalan@apple.com>
2494
2495         Remove ENABLE(SUBPIXEL_LAYOUT).
2496         https://bugs.webkit.org/show_bug.cgi?id=136077
2497
2498         Reviewed by Simon Fraser.
2499
2500         Remove compile time flag SUBPIXEL_LAYOUT. All ports have it enabled for a while now.
2501
2502         * wtf/FeatureDefines.h:
2503
2504 2014-08-18  Maciej Stachowiak  <mjs@apple.com>
2505
2506         Use NSURLFileTypeMappings directly instead of depending on WebKitSystemInterface wrappers for it
2507         https://bugs.webkit.org/show_bug.cgi?id=136035
2508
2509         Reviewed by Dan Bernstein.
2510
2511         * wtf/Platform.h: Define USE(APPLE_INTERNAL_SDK) by default on platforms that have it.
2512
2513 2014-08-18  Commit Queue  <commit-queue@webkit.org>
2514
2515         Unreviewed, rolling out r172736.
2516         https://bugs.webkit.org/show_bug.cgi?id=136060
2517
2518         Caused 14% PLT regressions (Requested by rniwa on #webkit).
2519
2520         Reverted changeset:
2521
2522         "Remove PurgeableBuffer since it is not very useful any more"
2523         https://bugs.webkit.org/show_bug.cgi?id=135939
2524         http://trac.webkit.org/changeset/172736
2525
2526 2014-08-18  Pratik Solanki  <psolanki@apple.com>
2527
2528         Remove PurgeableBuffer since it is not very useful any more
2529         https://bugs.webkit.org/show_bug.cgi?id=135939
2530
2531         Reviewed by Geoffrey Garen.
2532
2533         * wtf/Platform.h: Remove ENABLE_PURGEABLE_MEMORY define.
2534         * wtf/VMTags.h: Remove VM tags used by WebCore for cached resource purgeable memory.
2535
2536 2014-08-14  Benjamin Poulain  <benjamin@webkit.org>
2537
2538         CSS JIT: compile the :empty pseudo class
2539         https://bugs.webkit.org/show_bug.cgi?id=135958
2540
2541         Reviewed by Andreas Kling.
2542
2543         * wtf/text/StringImpl.h:
2544         (WTF::StringImpl::lengthMemoryOffset):
2545
2546 2014-08-12  Myles C. Maxfield  <mmaxfield@apple.com>
2547
2548         Elements whose contents start with an astral Unicode symbol disappear when CSS `::first-letter` is applied to them
2549         https://bugs.webkit.org/show_bug.cgi?id=135756
2550
2551         Reviewed by Darin Adler.
2552
2553         Add a method to StringView which passes through contains() to find().
2554
2555         * wtf/text/StringView.h:
2556         (WTF::StringView::contains):
2557
2558 2014-08-12  Pratik Solanki  <psolanki@apple.com>
2559
2560         Enable didReceiveDataArray callback on Mac
2561         https://bugs.webkit.org/show_bug.cgi?id=135554
2562         <rdar://problem/9170731>
2563
2564         Reviewed by Andreas Kling.
2565
2566         Enable WTF_USE_NETWORK_CFDATA_ARRAY_CALLBACK for all Cocoa platforms so that we use the same
2567         code path for Mac and iOS.
2568
2569         * wtf/Platform.h:
2570
2571 2014-08-12  Alex Christensen  <achristensen@webkit.org>
2572
2573         Generate header detection headers for CMake on Windows.
2574         https://bugs.webkit.org/show_bug.cgi?id=135807
2575
2576         Reviewed by Brent Fulgham.
2577
2578         * wtf/CMakeLists.txt:
2579         * wtf/PlatformWin.cmake:
2580         Generate and include a stub WTFHeaderDetection.h.
2581
2582 2014-08-11  Andy Estes  <aestes@apple.com>
2583
2584         [iOS] Get rid of iOS.xcconfig
2585         https://bugs.webkit.org/show_bug.cgi?id=135809
2586
2587         Reviewed by Joseph Pecoraro.
2588
2589         All iOS.xcconfig did was include AspenFamily.xcconfig, so there's no need for the indirection.
2590
2591         * Configurations/Base.xcconfig:
2592         * Configurations/iOS.xcconfig: Removed.
2593         * WTF.xcodeproj/project.pbxproj:
2594
2595 2014-08-12  Zan Dobersek  <zdobersek@igalia.com>
2596
2597         Clean up GMutexLocker
2598         https://bugs.webkit.org/show_bug.cgi?id=135833
2599
2600         Reviewed by Carlos Garcia Campos.
2601
2602         Place the GMutexLocker into the WTF namespace. There's no need for this
2603         class to use FastMalloc since it's always allocated on the stack. The
2604         constructor and class now operate on a GMutex reference. There's little
2605         need for an additional inline specifier for methods defined in the header.
2606         The mutex() method is removed as it was not used. m_val is renamed to a
2607         more descriptive m_locked and is made a boolean.
2608
2609         * wtf/gobject/GMutexLocker.h:
2610         (WTF::GMutexLocker::GMutexLocker):
2611         (WTF::GMutexLocker::~GMutexLocker):
2612         (WTF::GMutexLocker::lock):
2613         (WTF::GMutexLocker::unlock):
2614         (WebCore::GMutexLocker::GMutexLocker): Deleted.
2615         (WebCore::GMutexLocker::~GMutexLocker): Deleted.
2616         (WebCore::GMutexLocker::lock): Deleted.
2617         (WebCore::GMutexLocker::unlock): Deleted.
2618         (WebCore::GMutexLocker::mutex): Deleted.
2619
2620 2014-08-12  Zan Dobersek  <zdobersek@igalia.com>
2621
2622         Make GRefPtr move-able
2623         https://bugs.webkit.org/show_bug.cgi?id=135801
2624
2625         Reviewed by Carlos Garcia Campos.
2626
2627         Add move constructor and move assignment operator for GRefPtr.
2628
2629         * wtf/gobject/GRefPtr.h:
2630         (WTF::GRefPtr::GRefPtr):
2631         (WTF::=):
2632
2633 2014-08-10  Benjamin Poulain  <benjamin@webkit.org>
2634
2635         Update HashTable's operator= after r172167 per review comments
2636
2637         * wtf/HashTable.h:
2638         Update the type as suggested by Darin.
2639
2640 2014-08-07  Benjamin Poulain  <bpoulain@apple.com>
2641
2642         Get rid of SCRIPTED_SPEECH
2643         https://bugs.webkit.org/show_bug.cgi?id=135729
2644
2645         Reviewed by Brent Fulgham.
2646
2647         * wtf/FeatureDefines.h:
2648
2649 2014-08-07  Benjamin Poulain  <bpoulain@apple.com>
2650
2651         Get rid of INPUT_SPEECH
2652         https://bugs.webkit.org/show_bug.cgi?id=135672
2653
2654         Reviewed by Andreas Kling.
2655
2656         * wtf/FeatureDefines.h:
2657
2658 2014-08-06  Dean Jackson  <dino@apple.com>
2659
2660         ENABLE_CSS_TRANSFORMS_ANIMATIONS_UNPREFIXED is not used anywhere. Remove it.
2661         https://bugs.webkit.org/show_bug.cgi?id=135675
2662
2663         Reviewed by Sam Weinig.
2664
2665         * wtf/FeatureDefines.h:
2666
2667 2014-08-06  Benjamin Poulain  <benjamin@webkit.org>
2668
2669         HashTable based classes leak a lot
2670         https://bugs.webkit.org/show_bug.cgi?id=135638
2671
2672         Reviewed by Darin Adler.
2673
2674         * wtf/HashTable.h:
2675         The operator= taking a rvalue reference was never freeing the memory allocated
2676         for the table of the left hand side object.
2677
2678         This patch fixes the leaks by doing an alloc+swap with a new object.
2679         The object temp gets the reference to m_table, and destroys it in the regular destructor
2680         when going out of scope.
2681
2682         Kudos to Pratik Solanki for finding the leaks.
2683
2684 2014-08-06  Dániel Bátyai  <dbatyai.u-szeged@partner.samsung.com>
2685
2686         [JSC] Build fix for FTL on EFL after ftlopt merge
2687         https://bugs.webkit.org/show_bug.cgi?id=135565
2688
2689         Reviewed by Mark Lam.
2690
2691         Added ENABLE(FTL_NATIVE_CALL_INLINING).
2692
2693         * wtf/Platform.h:
2694
2695 2014-08-04  Alex Christensen  <achristensen@webkit.org>
2696
2697         Progress towards CMake on Mac.
2698         https://bugs.webkit.org/show_bug.cgi?id=135528
2699
2700         Reviewed by Gyuyoung Kim.
2701
2702         * wtf/CMakeLists.txt:
2703         Include text directory.
2704         * wtf/PlatformMac.cmake: Added.
2705
2706 2014-07-31  Alex Christensen  <achristensen@webkit.org>
2707
2708         Progress towards cmake on Windows.
2709         https://bugs.webkit.org/show_bug.cgi?id=135484
2710
2711         Reviewed by Martin Robinson.
2712
2713         * wtf/CMakeLists.txt:
2714         Added WTF_LIBRARY_TYPE because Windows needs WTF to be a shared library.
2715
2716 2014-07-30  Andreas Kling  <akling@apple.com>
2717
2718         PropertyName's internal string is always atomic.
2719         <https://webkit.org/b/135451>
2720
2721         Remove AtomicString::findStringWithHash() since nobody uses it anymore.
2722
2723         Reviewed by Benjamin Poulain.
2724
2725         * wtf/text/AtomicString.cpp:
2726         (WTF::findString): Deleted.
2727         (WTF::AtomicString::findStringWithHash): Deleted.
2728         * wtf/text/AtomicString.h:
2729
2730 2014-07-30  Andy Estes  <aestes@apple.com>
2731
2732         USE(CONTENT_FILTERING) should be ENABLE(CONTENT_FILTERING)
2733         https://bugs.webkit.org/show_bug.cgi?id=135439
2734
2735         Reviewed by Tim Horton.
2736
2737         We now support two different platform content filters, and will soon support a mock content filter (as part of
2738         webkit.org/b/128858). This makes content filtering a feature of WebKit, not just an adoption of a third-party
2739         library. ENABLE() is the correct macro to use for such a feature.
2740
2741         * wtf/Platform.h:
2742
2743 2014-07-29  Brent Fulgham  <bfulgham@apple.com>
2744
2745         [Win] Modify version numbering scheme to support 5-tuple versions
2746         https://bugs.webkit.org/show_bug.cgi?id=135400
2747         <rdar://problem/17849033>
2748
2749         Reviewed by David Kilzer.
2750
2751         * WTF.vcxproj/WTFPostBuild.cmd: Use new version-stamp.pl script
2752         to version WTF.dll.
2753         * WTF.vcxproj/WTFPreBuild.cmd: Make sure we have created the
2754         appropriate version resource during builds.
2755
2756 2014-07-29  Daniel Bates  <dabates@apple.com>
2757
2758         Use WTF::move() instead of std::move() to help ensure move semantics
2759         https://bugs.webkit.org/show_bug.cgi?id=135351
2760
2761         Reviewed by Alexey Proskuryakov.
2762
2763         * wtf/HashTable.h:
2764         (WTF::KeyTraits>::HashTable):
2765
2766 2014-07-28  Brian J. Burg  <burg@cs.washington.edu>
2767
2768         Should not export symbols for base64Encode inline adapter methods
2769         https://bugs.webkit.org/show_bug.cgi?id=135355
2770
2771         Unreviewed build fix.
2772
2773         Fixes the build break introduced by r171682, where a base64Encode
2774         inline adapter method was used in another header, thus creating
2775         multiple definitions of it (and problems with with weak symbols).
2776
2777         * wtf/text/Base64.h: Remove WTF_EXPORT_PRIVATE for inlined methods.
2778
2779 2014-07-27  Filip Pizlo  <fpizlo@apple.com>
2780
2781         Merge r170090, r170092, r170129, r170141, r170161, r170215, r170275, r170375, r170376, r170382, r170383, r170399, r170436, r170489, r170490, r170556 from ftlopt.
2782
2783         * wtf/text/WTFString.h:
2784
2785 2014-07-26  Filip Pizlo  <fpizlo@apple.com>
2786
2787         Unreviewed, roll out r171641-r171644. It broke some tests; will investigate and
2788         reland later.
2789
2790         * wtf/text/WTFString.h:
2791
2792 2014-07-25  Filip Pizlo  <fpizlo@apple.com>
2793
2794         Attempt to fix Windows.
2795
2796         * wtf/text/WTFString.h:
2797
2798 2014-07-25  Gavin Barraclough  <baraclough@apple.com>
2799
2800         Yosemite version number is 101000
2801         https://bugs.webkit.org/show_bug.cgi?id=135301
2802
2803         Reviewed by Sam Weinig.
2804
2805         * wtf/FeatureDefines.h:
2806         * wtf/Platform.h:
2807
2808 2014-07-23  Brent Fulgham  <bfulgham@apple.com>
2809
2810         [Win] Use NO_RETURN_DUE_TO_CRASH on Windows.
2811         https://bugs.webkit.org/show_bug.cgi?id=13519
2812
2813         Reviewed by Mark Lam.
2814
2815         * wtf/Assertions.h: Add MSVC to list of compilers supporting this macro.
2816         * wtf/FastMalloc.cpp: Correct function declaration for NO_RETURN_DUE_TO_CRASH.
2817
2818 2014-07-22  Filip Pizlo  <fpizlo@apple.com>
2819
2820         Merge r169148, r169185, r169188, r169578, r169582, r169584, r169588, r169753 from ftlopt.
2821
2822     2014-06-04  Filip Pizlo  <fpizlo@apple.com>
2823     
2824             [ftlopt] AI should be able track structure sets larger than 1
2825             https://bugs.webkit.org/show_bug.cgi?id=128073
2826     
2827             Reviewed by Oliver Hunt.
2828     
2829             * wtf/Bag.h:
2830             (WTF::Bag::Node::Node):
2831             (WTF::Bag::add):
2832     
2833 2014-07-22  Filip Pizlo  <fpizlo@apple.com>
2834
2835         Merge r168635, r168780, r169005, r169014, and r169143 from ftlopt.
2836
2837     2014-05-20  Filip Pizlo  <fpizlo@apple.com>
2838     
2839             [ftlopt] DFG bytecode parser should turn GetById with nothing but a Getter stub as stuff+handleCall, and handleCall should be allowed to inline if it wants to
2840             https://bugs.webkit.org/show_bug.cgi?id=133105
2841     
2842             Reviewed by Michael Saboff.
2843     
2844             * wtf/Bag.h:
2845             (WTF::Bag::iterator::operator!=):
2846     
2847 2014-07-19  Zan Dobersek  <zdobersek@igalia.com>
2848
2849         [WTF] Add the move constructor, move assignment operator for HashTable
2850         https://bugs.webkit.org/show_bug.cgi?id=130772
2851
2852         Reviewed by Darin Adler.
2853
2854         HashTable has both copy constructor and copy assignment operator, meaning that the move constructor
2855         and move assignment operator are implicitly deleted. This patch defines both to avoid unnecessary
2856         copies when moves can be performed.
2857
2858         * wtf/HashTable.h:
2859         (WTF::KeyTraits>::HashTable):
2860
2861 2014-07-15  Commit Queue  <commit-queue@webkit.org>
2862
2863         Unreviewed, rolling out r171107.
2864         https://bugs.webkit.org/show_bug.cgi?id=134959
2865
2866         This was not the problem! (Requested by kling on #webkit).
2867
2868         Reverted changeset:
2869
2870         "Revert: Run the FastMalloc scavenger thread on iOS as well."
2871         https://bugs.webkit.org/show_bug.cgi?id=134927
2872         http://trac.webkit.org/changeset/171107
2873
2874 2014-07-15  Andreas Kling  <akling@apple.com>
2875
2876         Revert: Run the FastMalloc scavenger thread on iOS as well.
2877         <https://webkit.org/b/134927>
2878         <rdar://problem/17485079>
2879
2880         This appears to be the cause of some elusive crashes, and since I don't
2881         have a way to reproduce them, let's just go back to not running the
2882         scavenger thread on iOS.
2883
2884         Reviewed by Antti Koivisto.
2885
2886         * wtf/FastMalloc.cpp:
2887
2888 2014-07-13  Filip Pizlo  <fpizlo@apple.com>
2889
2890         HashMap should have removeIf()
2891         https://bugs.webkit.org/show_bug.cgi?id=134870
2892
2893         Reviewed by Sam Weinig.
2894         
2895         Expose a new HashMap method, called removeIf(), which allows you to do an efficient
2896         pass over the map and remove a bunch of things at once. This is used by DFG GCSE as
2897         part of https://bugs.webkit.org/show_bug.cgi?id=134677.
2898
2899         * wtf/HashMap.h:
2900         (WTF::X>::removeIf):
2901         * wtf/HashTable.h:
2902         (WTF::KeyTraits>::removeIf):
2903
2904 2014-07-11  peavo@outlook.com  <peavo@outlook.com>
2905
2906         [Win] Enable DFG JIT.
2907         https://bugs.webkit.org/show_bug.cgi?id=123615
2908
2909         Reviewed by Mark Lam.
2910
2911         * wtf/Platform.h:
2912
2913 2014-07-11  Commit Queue  <commit-queue@webkit.org>
2914
2915         Unreviewed, rolling out r170995.
2916         https://bugs.webkit.org/show_bug.cgi?id=134831
2917
2918         Causing odd crashes in debug builds (Requested by zdobersek on
2919         #webkit).
2920
2921         Reverted changeset:
2922
2923         "[WTF] Add the move constructor, move assignment operator for
2924         HashTable"
2925         https://bugs.webkit.org/show_bug.cgi?id=130772
2926         http://trac.webkit.org/changeset/170995
2927
2928 2014-07-09  Zan Dobersek  <zdobersek@igalia.com>
2929
2930         [WTF] Add the move constructor, move assignment operator for HashTable
2931         https://bugs.webkit.org/show_bug.cgi?id=130772
2932
2933         Reviewed by Darin Adler.
2934
2935         HashTable has both copy constructor and copy assignment operator, meaning that the move constructor
2936         and move assignment operator are implicitly deleted. This patch defines both to avoid unnecessary
2937         copies when moves can be performed.
2938
2939         * wtf/HashTable.h:
2940         (WTF::KeyTraits>::HashTable):
2941
2942 2014-07-10  Alex Christensen  <achristensen@webkit.org>
2943
2944         Enable same features on all Windows ports.
2945         https://bugs.webkit.org/show_bug.cgi?id=134715
2946
2947         Reviewed by Brent Fulgham.
2948
2949         * wtf/Platform.h:
2950         Use REQUEST_ANIMATION_FRAME_TIMER on WinCairo.
2951
2952 2014-07-09  Brent Fulgham  <bfulgham@apple.com>
2953
2954         [Win] Unreviewed build fix after r170930.
2955
2956         * WTF.vcxproj/copy-files.cmd: Include cf files in
2957         post-build copy operation.
2958
2959 2014-07-09  Brent Fulgham  <bfulgham@apple.com>
2960
2961         [Win] Remove uses of 'bash' in build system
2962         https://bugs.webkit.org/show_bug.cgi?id=134782
2963         <rdar://problem/17615533>
2964
2965         Reviewed by Dean Jackson.
2966
2967         Remove uses of 'bash' by replacing Windows-specific bash scripts
2968         with Perl equivalents.
2969
2970         * WTF.vcxproj/WTFGenerated.make:
2971         * WTF.vcxproj/WTFGenerated.vcxproj:
2972         * WTF.vcxproj/WTFGenerated.vcxproj.filters:
2973         * WTF.vcxproj/WTFPreBuild.cmd:
2974         * WTF.vcxproj/build-generated-files.pl: Copied from Source/WTF/WTF.vcxproj/build-generated-files.sh.
2975         * WTF.vcxproj/build-generated-files.sh: Removed.
2976
2977 2014-07-09  Brent Fulgham  <bfulgham@apple.com>
2978
2979         [Win] Remove use of 'grep' in build steps
2980         https://bugs.webkit.org/show_bug.cgi?id=134770
2981         <rdar://problem/17608783>
2982
2983         Reviewed by Tim Horton.
2984
2985         Replace uses of the grep command in Windows builds with the equivalent
2986         Perl program.
2987
2988         * WTF.vcxproj/WTFPreBuild.cmd:
2989
2990 2014-07-07  Zan Dobersek  <zdobersek@igalia.com>
2991
2992         Enable ARMv7 disassembler for the GTK port
2993         https://bugs.webkit.org/show_bug.cgi?id=134676
2994
2995         Reviewed by Benjamin Poulain.
2996
2997         * wtf/Platform.h: Enable the ARMv7 disassembler for the GTK port when
2998         targeting the ARMv7 architecture.
2999
3000 2014-07-06  Yoav Weiss  <yoav@yoav.ws>
3001
3002         Turn on img@sizes compile flag
3003         https://bugs.webkit.org/show_bug.cgi?id=134634
3004
3005         Reviewed by Benjamin Poulain.
3006
3007         * wtf/FeatureDefines.h: Added compile flag definition.
3008
3009 2014-07-03  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
3010
3011         Unreivewed, fix build break on EFL and GTK since r170767.
3012
3013         * wtf/CMakeLists.txt: Exclude Decoder.h and Encoder.h because those files were removed.
3014
3015 2014-07-03  Daniel Bates  <dabates@apple.com>
3016
3017         Add WTF::move()
3018         https://bugs.webkit.org/show_bug.cgi?id=134500
3019
3020         Reviewed by Darin Adler.
3021
3022         Substitution of WTF::move() for std::move() rubber-stamped by Anders Carlsson.
3023
3024         Implement WTF::move(), a replacement for std::move(). WTF::move() is less error
3025         prone than std::move() as it compile asserts that its argument is a non-const
3026         lvalue reference before ultimately casting it to a rvalue reference (via std::move).
3027
3028         * wtf/Deque.h: Substitute WTF::move() for std::move().
3029         * wtf/HashMap.h: Ditto.
3030         * wtf/HashSet.h: Ditto.
3031         * wtf/HashTable.h: Ditto.
3032         * wtf/IteratorAdaptors.h: Ditto.
3033         * wtf/IteratorRange.h: Ditto.
3034         * wtf/ListHashSet.h: Ditto.
3035         * wtf/MainThread.cpp: Ditto.
3036         [...]
3037         * wtf/StdLibExtras.h:
3038         (WTF::move): Added.
3039         [...]
3040
3041 2014-07-03  Anders Carlsson  <andersca@apple.com>
3042
3043         Get rid of Encoder.h and Decoder.h from WTF
3044         https://bugs.webkit.org/show_bug.cgi?id=134600
3045
3046         Reviewed by Darin Adler.
3047
3048         * WTF.vcxproj/WTF.vcxproj:
3049         * WTF.vcxproj/WTF.vcxproj.filters:
3050         * WTF.xcodeproj/project.pbxproj:
3051         * wtf/Decoder.h: Removed.
3052         * wtf/Encoder.h: Removed.
3053
3054 2014-07-03  Ryuan Choi  <ryuan.choi@samsung.com>
3055
3056         Broken build with build-webkit --no-video
3057         https://bugs.webkit.org/show_bug.cgi?id=134587
3058
3059         Reviewed by Darin Adler.
3060
3061         MEDIA_CONTROLS_SCRIPT requires VIDEO enabled.
3062
3063         * wtf/FeatureDefines.h: Added error message for dependency failure.
3064
3065 2014-07-02  Enrica Casucci  <enrica@apple.com>
3066
3067         iOS build fix after http://trac.webkit.org/changeset/170697.
3068         
3069         Unreviewed.
3070
3071         * wtf/Deque.h:
3072
3073 2014-07-02  Dan Bernstein  <mitz@apple.com>
3074
3075         Remove some code only needed for versions of Safari that are no longer supported
3076         https://bugs.webkit.org/show_bug.cgi?id=134537
3077
3078         Reviewed by Anders Carlsson.
3079
3080         * wtf/Assertions.cpp:
3081         * wtf/Assertions.h:
3082
3083 2014-07-01  Alex Christensen  <achristensen@webkit.org>
3084
3085         Reduce dynamic memory allocation in css jit.
3086         https://bugs.webkit.org/show_bug.cgi?id=134416
3087
3088         Reviewed by Benjamin Poulain.
3089
3090         * wtf/Deque.h:
3091         Added inlineCapacity optional template parameter.
3092
3093 2014-06-30  Commit Queue  <commit-queue@webkit.org>
3094
3095         Unreviewed, rolling out r170605.
3096         https://bugs.webkit.org/show_bug.cgi?id=134484
3097
3098         The changes cause crashes on ARM64 (Requested by benjaminp on
3099         #webkit).
3100
3101         Reverted changeset:
3102
3103         "Reduce dynamic memory allocation in css jit."
3104         https://bugs.webkit.org/show_bug.cgi?id=134416
3105         http://trac.webkit.org/changeset/170605
3106
3107 2014-06-30  Daniel Bates  <dabates@apple.com>
3108
3109         Make TransformIterator::TransformIterator() take rvalue references
3110         https://bugs.webkit.org/show_bug.cgi?id=134468
3111
3112         Reviewed by Darin Adler.
3113
3114         It's unnecessary to support TransformIterator::TransformIterator() taking const lvalue references
3115         as we only call it with rvalues. As a side benefit, we can use move semantics to initialize the
3116         members of TransformIterator.
3117
3118         * wtf/IteratorAdaptors.h:
3119         (WTF::TransformIterator::TransformIterator): Make constructor take arguments as rvalue references.
3120         (WTF::makeTransformIterator): Substitute std::move() for std::forward().
3121
3122 2014-06-30  Alex Christensen  <achristensen@webkit.org>
3123
3124         Reduce dynamic memory allocation in css jit.
3125         https://bugs.webkit.org/show_bug.cgi?id=134416
3126
3127         Reviewed by Benjamin Poulain.
3128
3129         * wtf/Deque.h:
3130         Added inlineCapacity optional template parameter.
3131
3132 2014-06-30  Anders Carlsson  <andersca@apple.com>
3133
3134         Add code for encoding legacy session history entries
3135         https://bugs.webkit.org/show_bug.cgi?id=134452
3136
3137         Reviewed by Andreas Kling.
3138
3139         * wtf/MallocPtr.h:
3140         (WTF::MallocPtr::malloc):
3141         (WTF::MallocPtr::realloc):
3142
3143 2014-06-27  Andreas Kling  <akling@apple.com>
3144
3145         [ARMv7] Skip one particularly expensive fastFree() alignment check.
3146         <https://webkit.org/b/134402>
3147
3148         The size class alignment check in fastFree() was crazy expensive on ARMv7
3149         due to its use of modulo. Disabling it shaves 470ms off of PLT main thread
3150         time in the web process.
3151
3152         Note that this was very hard to identify in profiles due to TCO.
3153
3154         Reviewed by Gavin Barraclough.
3155
3156         * wtf/FastMalloc.cpp:
3157         (WTF::TCMalloc_ThreadCache::CreateCacheIfNecessary):
3158
3159 2014-06-26  Andreas Kling  <akling@apple.com>
3160
3161         Bump FastMalloc thread cache max size to 1MB on iOS.
3162         <https://webkit.org/b/134365>
3163
3164         The previous limit (512kB) comes from the old days of very-low-memory
3165         devices, and we can now afford to spend another 512kB here.
3166         Note that we already have a mechanism to purge FastMalloc caches on
3167         system memory pressure.
3168
3169         Looks like a ~400ms progression on PLT.
3170
3171         Reviewed by Geoff Garen.
3172
3173         * wtf/FastMalloc.cpp:
3174
3175 2014-06-26  Laszlo Gombos  <l.gombos@samsung.com>
3176
3177         Define TARGET_OS_IPHONE to 0 for non-darwin ports
3178         https://bugs.webkit.org/show_bug.cgi?id=134347
3179
3180         Reviewed by Darin Adler.
3181
3182         A follow-up to r169880 to make it easier to reason about
3183         the code. The purpose of this change to allow
3184         "#if TARGET_OS_IPHONE" in public header files.
3185
3186         * wtf/Platform.h:
3187
3188 2014-06-26  Chris Fleizach  <cfleizach@apple.com>
3189
3190         Add an undo group for each dictated utterance in WebKit
3191         https://bugs.webkit.org/show_bug.cgi?id=134086
3192
3193         Applied review comments from Sam Weinig.
3194
3195         Move the associated USE #define into Platform.h.
3196
3197         * wtf/Platform.h:
3198
3199 2014-06-25  Geoffrey Garen  <ggaren@apple.com>
3200
3201         Unreviewed, rolling out r166876.
3202
3203         Caused some ECMA test262 failures
3204
3205         Reverted changeset:
3206
3207         "Date object needs to check for ES5 15.9.1.14 TimeClip limit."
3208         https://bugs.webkit.org/show_bug.cgi?id=131248
3209         http://trac.webkit.org/changeset/166876
3210
3211 2014-06-25  peavo@outlook.com  <peavo@outlook.com>
3212
3213         [Win64] ASM LLINT is not enabled.
3214         https://bugs.webkit.org/show_bug.cgi?id=130638
3215
3216         Reviewed by Mark Lam.
3217
3218         * wtf/Platform.h: Enable LLINT and JIT for Win64.
3219
3220 2014-06-25  Laszlo Gombos  <l.gombos@samsung.com>
3221
3222         Remove build guard for progress element
3223         https://bugs.webkit.org/show_bug.cgi?id=134292
3224
3225         Reviewed by Benjamin Poulain.
3226
3227         The build flag is no longer needed as it is always on.
3228
3229         * wtf/FeatureDefines.h:
3230
3231 2014-06-24  Andreas Kling  <akling@apple.com>
3232
3233         Run the FastMalloc scavenger thread on iOS as well.
3234         <https://webkit.org/b/134287>
3235         <rdar://problem/17446198>
3236
3237         Reviewed by Gavin Barraclough.
3238
3239         * wtf/FastMalloc.cpp:
3240
3241 2014-06-24  Anders Carlsson  <andersca@apple.com>
3242
3243         Add PageState to HistoryItem conversion code
3244         https://bugs.webkit.org/show_bug.cgi?id=134259
3245
3246         Reviewed by Andreas Kling.
3247
3248         * wtf/Optional.h:
3249         (WTF::Optional::valueOr):
3250
3251 2014-06-24  László Langó  <llango.u-szeged@partner.samsung.com>
3252
3253         [JavaScriptCore] Enable concurrent JIT on EFL.
3254         https://bugs.webkit.org/show_bug.cgi?id=134242
3255
3256         Reviewed by Csaba Osztrogonác.
3257
3258         * wtf/Platform.h:
3259
3260 2014-06-23  Ryuan Choi  <ryuan.choi@samsung.com>
3261
3262         [EFL] Replace RefPtr<Evas_Object> with UniquePtrEfl
3263         https://bugs.webkit.org/show_bug.cgi?id=134236
3264
3265         Reviewed by Gyuyoung Kim.
3266
3267         Although there are ref/unref for Evas_Object, it's bit odd so we should call evas_object_del to destroy it.
3268         So, this patch replaced RefPtr<Evas_Object> with UniquePtrEfl for the simplicity.
3269
3270         * wtf/PlatformEfl.cmake: Removed RefPtrEfl.cpp from source list.
3271         * wtf/efl/RefPtrEfl.cpp: Removed.
3272         * wtf/efl/RefPtrEfl.h: Removed.
3273
3274 2014-06-21  Brady Eidson  <beidson@apple.com>
3275
3276         Gamepad API - Deprecate the existing implementation
3277         https://bugs.webkit.org/show_bug.cgi?id=134108
3278
3279         Reviewed by Timothy Hatcher.
3280
3281         -Add new "GAMEPAD_DEPRECATED" build flag, moving the existing implementation to use it
3282         -Move some implementation files into a "deprecated" subdirectory.
3283
3284         * wtf/FeatureDefines.h:
3285
3286 2014-06-21  Commit Queue  <commit-queue@webkit.org>
3287
3288         Unreviewed, rolling out r170244.
3289         https://bugs.webkit.org/show_bug.cgi?id=134157
3290
3291         GTK/EFL bindings generator works differently, making this
3292         patch not work there.  Will fix entire patch after a rollout.
3293         (Requested by bradee-oh on #webkit).
3294
3295         Reverted changeset:
3296
3297         "Gamepad API - Deprecate the existing implementation"
3298         https://bugs.webkit.org/show_bug.cgi?id=134108
3299         http://trac.webkit.org/changeset/170244
3300
3301 2014-06-21  Brady Eidson  <beidson@apple.com>
3302
3303         Gamepad API - Deprecate the existing implementation
3304         https://bugs.webkit.org/show_bug.cgi?id=134108
3305
3306         Reviewed by Timothy Hatcher.
3307
3308         -Add new "GAMEPAD_DEPRECATED" build flag, moving the existing implementation to use it
3309         -Add the "Deprecated" suffix to some implementation files
3310
3311         * wtf/FeatureDefines.h:
3312
3313 2014-06-21  Eva Balazsfalvi  <evab.u-szeged@partner.samsung.com>
3314
3315         Removing PAGE_VISIBILITY_API compile guard.
3316         https://bugs.webkit.org/show_bug.cgi?id=133844
3317
3318         Reviewed by Gavin Barraclough.
3319
3320         * wtf/FeatureDefines.h:
3321
3322 2014-06-20  Anders Carlsson  <andersca@apple.com>
3323
3324         Add encoding and decoding support for WTF::Optional
3325         https://bugs.webkit.org/show_bug.cgi?id=134125
3326
3327         Reviewed by Andreas Kling.
3328
3329         * wtf/Optional.h:
3330         (WTF::Optional::operator=):
3331
3332 2014-06-20  Anders Carlsson  <andersca@apple.com>
3333
3334         Add copy/move constructors and assignment operators to WTF::Optional
3335         https://bugs.webkit.org/show_bug.cgi?id=134119
3336
3337         Reviewed by Andreas Kling.
3338
3339         * wtf/Optional.h:
3340         (WTF::Optional::Optional):
3341         (WTF::Optional::operator=):
3342
3343 2014-06-19  Anders Carlsson  <andersca@apple.com>
3344
3345         Add WTF::Optional class
3346         https://bugs.webkit.org/show_bug.cgi?id=134083
3347
3348         Reviewed by Andreas Kling.
3349
3350         * WTF.xcodeproj/project.pbxproj:
3351         * wtf/Optional.h: Added.
3352         (WTF::Optional::Optional):
3353         (WTF::Optional::~Optional):
3354         (WTF::Optional::operator bool):
3355         (WTF::Optional::value):
3356
3357 2014-06-19  Dániel Bátyai  <dbatyai.u-szeged@partner.samsung.com>
3358
3359         Remove ENABLE(LLINT) and ENABLE(LLINT_C_LOOP) guards
3360         https://bugs.webkit.org/show_bug.cgi?id=130389
3361
3362         Reviewed by Mark Lam.
3363
3364         Removed ENABLE(LLINT) since we always build with it, and changed ENABLE(LLINT_C_LOOP)
3365         into !ENABLE(JIT) since they are mutually exclusive.
3366
3367         * wtf/OSAllocatorPosix.cpp:
3368         (WTF::OSAllocator::reserveAndCommit):
3369         * wtf/Platform.h:
3370
3371 2014-06-18  Anders Carlsson  <andersca@apple.com>
3372
3373         Add CF type cast function templates and use them in KeyedDecoder in WebKit2
3374         https://bugs.webkit.org/show_bug.cgi?id=134033
3375
3376         Reviewed by Sam Weinig.
3377
3378         * WTF.xcodeproj/project.pbxproj:
3379         * wtf/cf/TypeCasts.h: Added.
3380         (WTF::dynamic_cf_cast):
3381         Returns null if the given CFTypeRef object doesn't have the right type.
3382
3383         (WTF::checked_cf_cast):
3384         ASSERTs (with security implication) if the given CFTypeRef object is null or doesn't have the right type.
3385
3386 2014-06-17  Tamas Gergely  <tgergely.u-szeged@partner.samsung.com>
3387
3388         Misused PLATFORM(MIDDLE_ENDIAN) and PLATFORM(BIG_ENDIAN).
3389         https://bugs.webkit.org/show_bug.cgi?id=128301
3390
3391         Reviewed by Daniel Bates.
3392
3393         Endianness is a CPU attribute, not a PLATFORM. PLATFORM() macro is replaced to CPU().
3394
3395         * wtf/text/ASCIIFastPath.h:
3396         (WTF::copyLCharsFromUCharSource):
3397
3398 2014-06-17  Andreas Kling  <akling@apple.com>
3399
3400         Web process main thread priority is lower than some network process threads.
3401         <https://webkit.org/b/133987>
3402         <rdar://problem/17330300>
3403
3404         Bring all of our threads to the appropriate priority level by opting in to the
3405         threading QoS APIs. By marking them "user initiated", they still yield to UI
3406         interaction, but take priority over background tasks.
3407
3408         Reviewed by Maciej Stachowiak.
3409
3410         * wtf/Platform.h:
3411         * wtf/Threading.cpp:
3412         (WTF::setCurrentThreadIsUserInitiated):
3413         * wtf/Threading.h:
3414         * wtf/ThreadingPthreads.cpp:
3415         (WTF::createThreadInternal):
3416
3417 2014-06-17  Alex Christensen  <achristensen@webkit.org>
3418
3419         Enable css jit for armv7 on iOS.
3420         https://bugs.webkit.org/show_bug.cgi?id=133961
3421         <rdar://problem/17310631>
3422
3423         Reviewed by Andreas Kling.
3424
3425         * wtf/Platform.h:
3426         Enable css jit for ARM thumb on iOS.
3427
3428 2014-06-17  Dan Bernstein  <mitz@apple.com>
3429
3430         String::isolatedCopy doesn’t return an isolated copy when used on an rvalue reference
3431         https://bugs.webkit.org/show_bug.cgi?id=133968
3432
3433         Reviewed by Anders Carlsson.
3434
3435         Made the rvalue reference overload of isolatedCopy() non-const, so that std::move(*this) is
3436         an rvalue reference that can be moved, rather than copied, into the returned String.
3437
3438         * wtf/text/WTFString.cpp:
3439         (WTF::String::isolatedCopy):
3440         * wtf/text/WTFString.h:
3441
3442 2014-06-15  Dan Bernstein  <mitz@apple.com>
3443
3444         iOS build fix after r169995.
3445
3446         * wtf/RetainPtr.h:
3447
3448 2014-06-15  Anders Carlsson  <andersca@apple.com>
3449
3450         Add an autorelease() member function to RetainPtr
3451         https://bugs.webkit.org/show_bug.cgi?id=133929
3452
3453         Reviewed by Dan Bernstein.
3454
3455         * wtf/RetainPtr.h:
3456
3457 2014-06-13  Alex Christensen  <achristensen@webkit.org>
3458
3459         Unreviewed disabling css jit on armv7.  It's not quite ready yet.
3460
3461         * wtf/Platform.h:
3462         Disable css jit on armv7.
3463
3464 2014-06-13  Alex Christensen  <achristensen@webkit.org>
3465
3466         Enable css jit for armv7 on iOS.
3467         https://bugs.webkit.org/show_bug.cgi?id=133890
3468         <rdar://problem/17310631>
3469
3470         Reviewed by Andreas Kling.
3471
3472         * wtf/Platform.h:
3473         Enable css jit for ARM thumb on iOS.
3474
3475 2014-06-13  Mark Hahnenberg  <mhahnenberg@apple.com>
3476
3477         OSR exit should barrier the Executables for all InlineCallFrames, not just those on the stack at the time of exit
3478         https://bugs.webkit.org/show_bug.cgi?id=133880
3479
3480         Reviewed by Filip Pizlo.
3481
3482         * wtf/Bag.h:
3483         (WTF::Bag::iterator::operator!=): Add != to the Bag iterator so we can use it in range-based iteration.
3484
3485 2014-06-12  Gavin Barraclough  <barraclough@apple.com>
3486
3487         Add support for thread/WorkQueue QoS
3488         https://bugs.webkit.org/show_bug.cgi?id=130688
3489
3490         Reviewed by Anders Carlson & Simon Fraser.
3491
3492         Add the ability to mark threads as UserInteractive.
3493
3494         * wtf/Threading.cpp:
3495         (WTF::setCurrentThreadIsUserInteractive):
3496             - added method to set QoS of current thread to UserInteractive.
3497         * wtf/Threading.h:
3498             - added declaration.
3499
3500 2014-06-12  Alexey Proskuryakov  <ap@apple.com>
3501
3502         Fix Mac after r169880.
3503
3504         This revision added a C++ comment to Platform.h, which breaks sandbox profile
3505         preprocessing.
3506
3507         Also, I do not believe that this comment was entirely accurate - we've always used
3508         this technique with GCC, so there has to be more to it. So, I just removed the comment.
3509
3510         * wtf/Platform.h:
3511
3512 2014-06-11  Csaba Osztrogonác  <ossy@webkit.org>
3513
3514         [EFL][GTK] Ultimate fix not to have build failures
3515         in the future because of "#if TARGET_OS_IPHONE" guards.
3516
3517         Unreviewed buildfix.
3518
3519         * wtf/Platform.h: Define TARGET_OS_IPHONE to 0 on EFL and GTK.
3520
3521 2014-06-11  Ryosuke Niwa  <rniwa@webkit.org>
3522
3523         Turning on DUMP_PROPERTYMAP_STATS causes a build failure
3524         https://bugs.webkit.org/show_bug.cgi?id=133673
3525
3526         Reviewed by Andreas Kling.
3527
3528         Added DEFINE_GLOBAL_FOR_LOGGING to allow running a destructor in logging code
3529         that needs to be enabled in release builds (e.g. for JavaScriptCore).
3530
3531         * wtf/StdLibExtras.h:
3532
3533 2014-06-09  Benjamin Poulain  <bpoulain@apple.com>
3534
3535         Improve CSSPrimitiveValue::customCSSText for ARMv7
3536         https://bugs.webkit.org/show_bug.cgi?id=133597
3537
3538         Reviewed by Andreas Kling.
3539
3540         * wtf/RefPtr.h:
3541         (WTF::RefPtr<T>::RefPtr):
3542         * wtf/text/WTFString.h:
3543         (WTF::String::String):
3544
3545 2014-06-05  Yoav Weiss  <yoav@yoav.ws>
3546
3547         Align srcset parser with recent spec changes
3548         https://bugs.webkit.org/show_bug.cgi?id=133504
3549
3550         Reviewed by Darin Adler.
3551
3552         I've added toInt and toFloat methods to StringView, and exposed
3553         charactersToInt so that they can be used by
3554         HTMLSrcsetParser.cpp.
3555
3556         * wtf/text/WTFString.h:
3557         * wtf/text/StringView.h:
3558         (WTF::StringView::toInt):
3559         (WTF::StringView::toFloat):
3560
3561 2014-06-04  Alex Christensen  <achristensen@webkit.org>
3562
3563         Enable WebGL on Windows.
3564         https://bugs.webkit.org/show_bug.cgi?id=133503
3565
3566         Reviewed by Brent Fulgham.
3567
3568         * wtf/FeatureDefines.h:
3569         Enable WebGL for AppleWin and WinCairo ports.
3570
3571 2014-06-01  Jer Noble  <jer.noble@apple.com>
3572
3573         [MSE] Appends of overlapping sample data do not clear existing samples properly.
3574         https://bugs.webkit.org/show_bug.cgi?id=133435
3575
3576         Reviewed by Darin Adler.
3577
3578         Add a dump method to MediaTime, so that MediaTimes can be easily converted to strings (for logging purposes).
3579
3580         * wtf/MediaTime.cpp:
3581         (WTF::MediaTime::dump):
3582         * wtf/MediaTime.h:
3583
3584 2014-05-31  Anders Carlsson  <andersca@apple.com>
3585
3586         Add a LazyNeverDestroyed class template and use it
3587         https://bugs.webkit.org/show_bug.cgi?id=133425
3588
3589         Reviewed by Darin Adler.
3590
3591         LazyNeverDestroyed is similar to NeverDestroyed, except it's lazily constructed
3592         by calling construct(). This makes it useful for using inside std::call_once functions.
3593         
3594         * wtf/Forward.h:
3595         * wtf/NeverDestroyed.h:
3596         (WTF::LazyNeverDestroyed::construct):
3597         (WTF::LazyNeverDestroyed::operator T&):
3598         (WTF::LazyNeverDestroyed::get):
3599         (WTF::LazyNeverDestroyed::asPtr):
3600         (WTF::LazyNeverDestroyed::MaybeRelax::MaybeRelax):
3601         * wtf/mac/DeprecatedSymbolsUsedBySafari.mm:
3602         (WTF::atomicallyInitializedStaticMutex):
3603         * wtf/unicode/icu/CollatorICU.cpp:
3604         (WTF::cachedCollatorMutex):
3605
3606 2014-05-29  Alex Christensen  <achristensen@webkit.org>
3607
3608         Enable css jit by default on arm64.
3609         https://bugs.webkit.org/show_bug.cgi?id=133246
3610         <rdar://problem/17073407>
3611
3612         Reviewed by Benjamin Poulain.
3613
3614         * wtf/Platform.h:
3615         Added arm64 to list of supported architectures.
3616
3617 2014-05-28  Filip Pizlo  <fpizlo@apple.com>
3618
3619         DFG::DCEPhase inserts into an insertion set in reverse, causing hilarious basic block corruption if you kill a lot of NewArrays
3620         https://bugs.webkit.org/show_bug.cgi?id=133368
3621
3622         Reviewed by Mark Lam.
3623
3624         * wtf/Insertion.h:
3625         (WTF::executeInsertions): This algorithm is only correct if insertions are added in the right order. Assert that the order is right.
3626
3627 2014-05-27  Jon Lee  <jonlee@apple.com>
3628
3629         Update ENABLE(MEDIA_SOURCE) on Mac
3630         https://bugs.webkit.org/show_bug.cgi?id=133141
3631
3632         Reviewed by Darin Adler.
3633
3634         * wtf/FeatureDefines.h: #ifdef unneeded for Mac since it's covered in the .xcconfigs.
3635
3636 2014-05-27  Tibor Meszaros  <tmeszaros.u-szeged@partner.samsung.com>
3637
3638         Remove BLOB guards
3639         https://bugs.webkit.org/show_bug.cgi?id=132863
3640
3641         Reviewed by Csaba Osztrogonác.
3642
3643         * wtf/FeatureDefines.h:
3644
3645 2014-05-27  Gwang Yoon Hwang  <yoon@igalia.com>
3646
3647         [GLIB] RunLoop::dispatch always executes the function on the main thread instead of the target thread.
3648         https://bugs.webkit.org/show_bug.cgi?id=133291
3649
3650         Reviewed by Carlos Garcia Campos.
3651
3652         GMainLoopSource::schedule[AfterDelay] must be used with the appropriate
3653         GMainContext. Because current implementations in RunLoopGtk passes nullptr
3654         instead of its runLoopContext when using GMainLoopSource, all of dispatched
3655         functions are executed on the main thread regardless of which runloops is used.
3656
3657         This patch fixes the issue by passing the m_runLoopContext instead the default
3658         parameter to the GMainLoopSource::schedule[AfterDelay].
3659
3660         * wtf/gtk/RunLoopGtk.cpp:
3661         (WTF::RunLoop::wakeUp):
3662         (WTF::RunLoop::TimerBase::start):
3663
3664 2014-05-26  Darin Adler  <darin@apple.com>
3665
3666         Class name matching should use ASCII case-insensitive matching, not Unicode case folding
3667         https://bugs.webkit.org/show_bug.cgi?id=133292
3668
3669         Reviewed by Anders Carlsson.
3670
3671         * wtf/text/AtomicString.cpp:
3672         (WTF::AtomicString::addSlowCase): Change to take references instead of pointers since these
3673         arguments can never be null.
3674         (WTF::AtomicString::lower): Rearranged slightly to use PassRef in a more efficient but
3675         slightly uglier way.
3676         (WTF::AtomicString::convertToASCIILowercase): Added.
3677         * wtf/text/AtomicString.h: Updated for above changes.
3678
3679         * wtf/text/StringImpl.cpp:
3680         (WTF::StringImpl::convertToASCIILowercase): Added.
3681         * wtf/text/StringImpl.h: Updated for above.
3682
3683         * wtf/text/WTFString.cpp:
3684         (WTF::String::convertToASCIILowercase): Added.
3685         * wtf/text/WTFString.h: Updated for above.
3686
3687 2014-05-22  Zan Dobersek  <zdobersek@igalia.com>
3688
3689         Add the partial specialization for VectorTraits<std::unique_ptr<P>>
3690         https://bugs.webkit.org/show_bug.cgi?id=133083
3691
3692         Reviewed by Andreas Kling.
3693
3694         * wtf/VectorTraits.h: Like for RefPtr<P>, OwnPtr<P> and Ref<P>, the partial
3695         specialization for VectorTraits<std::unique_ptr<P>> should exist and should
3696         inherit from SimpleClassVector.
3697
3698 2014-05-20  Geoffrey Garen  <ggaren@apple.com>
3699
3700         Rolled out <http://trac.webkit.org/changeset/166184>
3701         https://bugs.webkit.org/show_bug.cgi?id=133144
3702
3703         Reviewed by Gavin Barraclough.
3704
3705         It caused a performance regression.
3706
3707         * wtf/FastMalloc.cpp:
3708         (WTF::TCMalloc_PageHeap::runScavengerThread):
3709         * wtf/Threading.h:
3710         * wtf/ThreadingPthreads.cpp:
3711         (WTF::createThreadInternal):
3712         (WTF::setCurrentThreadQOSUtility): Deleted.
3713         * wtf/ThreadingWin.cpp:
3714         (WTF::setCurrentThreadQOSUtility): Deleted.
3715
3716 2014-05-20  Jer Noble  <jer.noble@apple.com>
3717
3718         [Mac] AVAssets are never destroyed; lack of an autorelease pool when calling callOnMainThread.
3719         https://bugs.webkit.org/show_bug.cgi?id=133130
3720
3721         Reviewed by Geoff Garen.
3722
3723         Wrap the function to be called in an autorelease pool, so that autoreleased objects are cleaned
3724         up immediately after the end of the function.
3725
3726         * wtf/mac/MainThreadMac.mm:
3727         (WTF::timerFired):
3728
3729 2014-05-18  Rik Cabanier  <cabanier@adobe.com>
3730
3731         support for navigator.hardwareConcurrency
3732         https://bugs.webkit.org/show_bug.cgi?id=132588
3733
3734         Reviewed by Filip Pizlo.
3735
3736         * wtf/FeatureDefines.h:
3737
3738 2014-05-14  Tibor Meszaros  <tmeszaros.u-szeged@partner.samsung.com>
3739
3740         Remove CSS_STICKY_POSITION guards
3741         https://bugs.webkit.org/show_bug.cgi?id=132676
3742
3743         Reviewed by Simon Fraser.
3744
3745         * wtf/FeatureDefines.h:
3746
3747 2014-05-13  Simon Fraser  <simon.fraser@apple.com>
3748
3749         [iOS WK2] background-attachment:fixed behaves very poorly
3750         https://bugs.webkit.org/show_bug.cgi?id=132881
3751         <rdar://problem/16789526>
3752
3753         Reviewed by Beth Dakin.
3754         
3755         Remove ENABLE_FAST_MOBILE_SCROLLING. Ports can use the fixedBackgroundsPaintRelativeToDocument
3756         setting now.
3757
3758         * wtf/FeatureDefines.h:
3759
3760 2014-05-08  Alexey Proskuryakov  <ap@apple.com>
3761
3762         Automatically zip document bundles used via File API
3763         https://bugs.webkit.org/show_bug.cgi?id=132713
3764         <rdar://problem/13397892>
3765
3766         Reviewed by Anders Carlsson.
3767
3768         * wtf/FeatureDefines.h: Added ENABLE_FILE_REPLACEMENT for Mac.
3769
3770 2014-05-07  Filip Pizlo  <fpizlo@apple.com>
3771
3772         UNREACHABLE_FOR_PLATFORM() is meant to be a release crash.
3773
3774         Rubber stamped by Mark Hahnenberg..
3775
3776         * wtf/Assertions.h:
3777         (UNREACHABLE_FOR_PLATFORM):
3778
3779 2014-05-06  Alberto Garcia  <berto@igalia.com>
3780
3781         There is no HW_AVAILCPU on FreeBSD, NetBSD, and OpenBSD
3782         https://bugs.webkit.org/show_bug.cgi?id=132542
3783
3784         Reviewed by Michael Saboff.
3785
3786         Use sysconf() to get the number of processor cores.
3787
3788         * wtf/NumberOfCores.cpp:
3789         (WTF::numberOfProcessorCores):
3790
3791 2014-05-04  Darin Adler  <darin@apple.com>
3792
3793         RetainPtr: Use adoptCF function instead of AdoptCF constructor argument
3794         https://bugs.webkit.org/show_bug.cgi?id=80222
3795
3796         Reviewed by Alexey Proskuryakov.
3797
3798         All the clients are gone, so we can now remove AdoptCF and AdoptNS.
3799
3800         * wtf/RetainPtr.h: Removed the public constructors that let you specify AdoptCF
3801         and AdoptNS. Instead, made the adoptCF and adoptNS functions be friends and use
3802         a private constructor that takes an Adopt argument.
3803         (WTF::adoptCF): Moved the Objective-C class check in here.
3804         (WTF::adoptNS): Moved the code to deal with the CFRetain for garbage collection
3805         in here; it used to be spread across the constructor and adoptNSReference.
3806
3807 2014-05-04  Andreas Kling  <akling@apple.com>
3808
3809         Optimize JSRopeString for resolving directly to AtomicString.
3810         <https://webkit.org/b/132548>
3811
3812         Add AtomicString::find([LU]Char*, unsigned length) helpers for finding
3813         an existing AtomicString without a StringImpl on hand.
3814
3815         Reviewed by Filip Pizlo.
3816
3817         * wtf/text/AtomicString.h:
3818         * wtf/text/AtomicString.cpp:
3819         (WTF::AtomicString::find):
3820
3821 2014-05-01  Brent Fulgham  <bfulgham@apple.com>
3822
3823         Fix handling of attributes prior to compiling shader
3824         https://bugs.webkit.org/show_bug.cgi?id=132430
3825
3826         Reviewed by Dean Jackson.
3827
3828         WebGL programs that called bindAttribLocations prior to compiling shader sources
3829         would perform the bind using the non-hashed symbol name, but would later create
3830         the attributes as hashed names. Consequently, the program would refer to
3831         attributes that were never actually part of any shader, resulting in some amazing
3832         display artifacts.
3833
3834         This patch adds a dictionary of hashed symbol names so that we can tell the WebGL
3835         program the proper name that will be used when the shader is eventually compiled,
3836         allowing the WebGL program to link against the proper symbol after compiling and
3837         linking completes.
3838
3839         * wtf/HexNumber.h:
3840         (WTF::appendUnsigned64AsHex): Add uint64_t-compatible hex->string converter.
3841
3842 2014-04-30  Geoffrey Garen  <ggaren@apple.com>
3843
3844         Link against bmalloc in production builds
3845         https://bugs.webkit.org/show_bug.cgi?id=132413
3846
3847         Reviewed by Sam Weinig.
3848
3849         Production builders have been configured to handle this, so let's build
3850         it.
3851
3852         * Configurations/WTF.xcconfig:
3853
3854 2014-05-01  Ryuan Choi  <ryuan.choi@samsung.com>
3855
3856         [EFL] There are many warnings with software backend
3857         https://bugs.webkit.org/show_bug.cgi?id=132422
3858
3859         Reviewed by Gyuyoung Kim.
3860
3861         * wtf/efl/EflTypedefs.h: Added Ecore_X_Window typedef
3862
3863 2014-04-30  Simon Fraser  <simon.fraser@apple.com>
3864
3865         Remove ENABLE_PLUGIN_PROXY_FOR_VIDEO
3866         https://bugs.webkit.org/show_bug.cgi?id=132396
3867
3868         Reviewed by Eric Carlson.
3869
3870         Remove ENABLE_PLUGIN_PROXY_FOR_VIDEO and related code.
3871
3872         * wtf/FeatureDefines.h:
3873
3874 2014-04-30  Víctor Manuel Jáquez Leal  <vjaquez@igalia.com>
3875
3876         [GTK][GStreamer] Remove unnecessary GLIB_CHECK_VERSION #ifdefs
3877         https://bugs.webkit.org/show_bug.cgi?id=132390
3878
3879         Reviewed by Philippe Normand.
3880
3881         Since EFL port use GLib 2.38 and GTK+, 2.33.2, I assume it is OK
3882         remove, in GTK+ and GST, the existing glib version guards.
3883
3884         This code was rollback from r149879 because Qt MIPS used it. But since
3885         Qt is gone, it is safe to remove now.
3886
3887         * wtf/gobject/GRefPtr.cpp:
3888         (WTF::refGPtr): Deleted.
3889         (WTF::derefGPtr): Deleted.
3890
3891 2014-04-29  Alex Christensen  <achristensen@webkit.org>
3892
3893         [WinCairo] Switch video from GStreamer to Media Foundation.
3894         https://bugs.webkit.org/show_bug.cgi?id=132358
3895
3896         Reviewed by Brent Fulgham.
3897
3898         * WTF.vcxproj/WTF.vcxproj:
3899         Removed dependencies on GStreamer.
3900         * wtf/Platform.h:
3901         Use Media Foundation instead of GStreamer and GLib.
3902
3903 2014-04-29  Filip Pizlo  <fpizlo@apple.com>
3904
3905         Unreviewed, fix cloop build.
3906
3907         * wtf/Platform.h:
3908
3909 2014-04-29  Michael Saboff  <msaboff@apple.com>
3910
3911         For DARWIN platforms, use system temporary directory for DataLog output
3912         https://bugs.webkit.org/show_bug.cgi?id=132346
3913
3914         Reviewed by Geoffrey Garen.
3915
3916         Added code to call confstr() to access the process's temporary directory to use that
3917         location instead of /tmp/.  Put the code behind #ifdef DATA_LOG_TO_DARWIN_TEMP_DIR.
3918
3919         * wtf/DataLog.cpp:
3920         (WTF::initializeLogFileOnce):
3921
3922 2014-04-25  Filip Pizlo  <fpizlo@apple.com>
3923
3924         Figure out how many cores are available for realsies.
3925
3926         Rubber stamped by Andreas Kling.
3927         
3928         HW_AVAILCPU is more canonical than HW_NCPU. For example if you use hacks to tell Darwin
3929         to make it seem like there are fewer CPUs, HW_AVAILCPU will change but HW_NCPU won't.
3930         HW_NCPU doesn't reflect how much actual paralellism you'll get; it's merely reporting
3931         facts about the machine you're running on. HW_AVAILCPU is almost always what WebKit
3932         wants since it uses this information to decide how many threads to launch for various
3933         things.
3934
3935         * wtf/NumberOfCores.cpp:
3936         (WTF::numberOfProcessorCores):
3937
3938 2014-04-22  Brent Fulgham  <bfulgham@apple.com>
3939
3940         [Win] Support Python 2.7 in Cygwin
3941         https://bugs.webkit.org/show_bug.cgi?id=132023
3942
3943         Reviewed by Michael Saboff.
3944
3945         * WTF.vcxproj/WTFGenerated.make: Use proper path to Python.
3946
3947 2014-04-21  Eric Carlson  <eric.carlson@apple.com>
3948
3949         [Mac] implement WebKitDataCue
3950         https://bugs.webkit.org/show_bug.cgi?id=131799
3951
3952         Reviewed by Dean Jackson.
3953
3954         * wtf/FeatureDefines.h: Define ENABLE_DATACUE_VALUE.
3955
3956 2014-04-21  Darin Adler  <darin@apple.com>
3957
3958         Add HashSet::takeAny
3959         https://bugs.webkit.org/show_bug.cgi?id=131928
3960
3961         Reviewed by Benjamin Poulain.
3962
3963         * wtf/HashSet.h: Added an overload of take that takes an iterator,
3964         and used it to implement both the existing take and new takeAny functions.
3965
3966 2014-04-20  Andreas Kling  <akling@apple.com>
3967
3968         Speed up jsStringWithCache() through WeakGCMap inlining.
3969         <https://webkit.org/b/131923>
3970
3971         Add HashMap::fastAdd(), which is the same as add() except we'll tell
3972         the compiler to aggressively inline it.
3973
3974         Reviewed by Darin Adler.
3975
3976         * wtf/HashMap.h:
3977         * wtf/HashTable.h:
3978
3979 2014-04-19  Filip Pizlo  <fpizlo@apple.com>
3980
3981         Make it easier to check if an integer sum would overflow
3982         https://bugs.webkit.org/show_bug.cgi?id=131900
3983
3984         Reviewed by Darin Adler.
3985
3986         * wtf/CheckedArithmetic.h:
3987         (WTF::checkedSum):
3988         (WTF::sumOverflows):
3989
3990 2014-04-18  Commit Queue  <commit-queue@webkit.org>
3991
3992         Unreviewed, rolling out r167527.
3993         https://bugs.webkit.org/show_bug.cgi?id=131883
3994
3995         Broke 32-bit build (Requested by ap on #webkit).
3996
3997         Reverted changeset:
3998
3999         "[Mac] implement WebKitDataCue"
4000         https://bugs.webkit.org/show_bug.cgi?id=131799
4001         http://trac.webkit.org/changeset/167527
4002
4003 2014-04-18  Eric Carlson  <eric.carlson@apple.com>
4004
4005         [Mac] implement WebKitDataCue
4006         https://bugs.webkit.org/show_bug.cgi?id=131799
4007
4008         Reviewed by Dean Jackson.
4009
4010         * wtf/FeatureDefines.h: Define ENABLE_DATACUE_VALUE.
4011
4012 2014-04-18  Martin Robinson  <mrobinson@igalia.com>
4013
4014         Remove DynamicAnnotations.h?
4015         https://bugs.webkit.org/show_bug.cgi?id=131754
4016
4017         Reviewed by Simon Fraser.
4018
4019         This file, which helped support tools like Valgrind was unused.
4020
4021         * WTF.vcxproj/WTF.vcxproj: Remove references to the files.
4022         * WTF.vcxproj/WTF.vcxproj.filters: Remove references to the files.
4023         * WTF.xcodeproj/project.pbxproj: Remove references to the files.
4024         * wtf/CMakeLists.txt: Remove references to the files.
4025         * wtf/DynamicAnnotations.cpp: Removed.
4026         * wtf/DynamicAnnotations.h: Removed.
4027         * wtf/ThreadSafeRefCounted.h: Remove references to the files.
4028         * wtf/text/StringStatics.cpp: Remove references to the files.
4029
4030 2014-04-18  Philippe Normand  <pnormand@igalia.com>
4031
4032         Remove NETWORK_INFO support
4033         https://bugs.webkit.org/show_bug.cgi?id=131841
4034
4035         Reviewed by Gyuyoung Kim.
4036
4037         * wtf/FeatureDefines.h:
4038
4039 2014-04-17  Filip Pizlo  <fpizlo@apple.com>
4040
4041         Don't include CompilationThread.h from StringImpl.h
4042         https://bugs.webkit.org/show_bug.cgi?id=131817
4043
4044         Reviewed by Simon Fraser.
4045
4046         * wtf/CompilationThread.h:
4047         * wtf/StdLibExtras.h:
4048         * wtf/text/StringImpl.h:
4049
4050 2014-04-17  Darin Adler  <darin@apple.com>
4051
4052         Use HashMap<unique_ptr> and Vector<unique_ptr> instead of deprecatedDeleteAllValues
4053         https://bugs.webkit.org/show_bug.cgi?id=73757
4054
4055         Reviewed by Brent Fulgham.
4056
4057         * wtf/Vector.h:
4058         (WTF::deprecatedDeleteAllValues): Deleted.
4059
4060 2014-04-17  Darin Adler  <darin@apple.com>
4061
4062         Add separate flag for IndexedDatabase in workers since the current implementation is not threadsafe
4063         https://bugs.webkit.org/show_bug.cgi?id=131785
4064         rdar://problem/16003108
4065
4066         Reviewed by Brady Eidson.
4067
4068         * wtf/FeatureDefines.h: Added INDEXED_DATABASE_IN_WORKERS.
4069
4070 2014-04-16  Simon Fraser  <simon.fraser@apple.com>
4071
4072         Don't include CryptographicallyRandomNumber.h in StringImpl.h
4073         https://bugs.webkit.org/show_bug.cgi?id=131772
4074
4075         Reviewed by Sam Weinig.
4076
4077         * wtf/text/StringImpl.h:
4078
4079 2014-04-16  Gavin Barraclough  <barraclough@apple.com>
4080
4081         Update to pthread QoS SPI
4082         https://bugs.webkit.org/show_bug.cgi?id=131753
4083
4084         Rubber stamped by Benjamin Poulain
4085
4086         * wtf/ThreadingPthreads.cpp:
4087         (WTF::setCurrentThreadQOSUtility):
4088
4089 2014-04-14  Geoffrey Garen  <ggaren@apple.com>
4090
4091         WTF should have an optional mbmalloc target so we can benchmark FastMalloc
4092         https://bugs.webkit.org/show_bug.cgi?id=131662
4093
4094         Reviewed by Darin Adler.
4095
4096         * WTF.xcodeproj/project.pbxproj: Added the target.
4097         * wtf/mbmalloc.cpp: Added. Implements the libmbmalloc.dylib API required
4098         by MallocBench.
4099
4100 2014-04-16  Darin Adler  <darin@apple.com>
4101
4102         Make Vector::takeLast work with move-only types (and optimize for types where move is faster)
4103         https://bugs.webkit.org/show_bug.cgi?id=131735
4104
4105         Reviewed by Alexey Proskuryakov.
4106
4107         * wtf/Vector.h:
4108         (WTF::Vector::takeLast): Added a missing std::move. All the other take functions have it.
4109
4110 2014-04-14  Mark Lam  <mark.lam@apple.com>
4111
4112         monotonicallyIncreasingTime() should only initialize its static timebaseInfo once.
4113         <https://webkit.org/b/131630>
4114
4115         Reviewed by Filip Pizlo.
4116
4117         The current initialization of the static field is not thread safe.
4118
4119         * wtf/CurrentTime.cpp:
4120         (WTF::monotonicallyIncreasingTime):
4121
4122 2014-04-14  Benjamin Poulain  <benjamin@webkit.org>
4123
4124         [JSC] Improve the call site of string comparison in some hot path
4125         https://bugs.webkit.org/show_bug.cgi?id=131605
4126
4127         Reviewed by Darin Adler.
4128
4129         * wtf/text/StringImpl.cpp:
4130         (WTF::stringImplContentEqual):
4131         Inline that function to reduce the call overhead for JSC.
4132         This is only inlined twice, it is not catastrophic for our binary.
4133
4134 2014-04-13  Andy Estes  <aestes@apple.com>
4135
4136         Relax adoption requirements of RefCounted objects that are NeverDestroyed
4137         https://bugs.webkit.org/show_bug.cgi?id=131593
4138
4139         Reviewed by Dan Bernstein.
4140
4141         RefCounted objects that are created by NeverDestroyed<> won't have a
4142         RefPtr adopting them, so call relaxAdoptionRequirements().
4143
4144         * wtf/NeverDestroyed.h:
4145         (WTF::NeverDestroyed::NeverDestroyed):
4146         (WTF::NeverDestroyed::MaybeRelax::MaybeRelax):
4147
4148 2014-04-10  Brent Fulgham  <bfulgham@apple.com>
4149
4150         [Win] Clean up some 64-bit warnings from Visual Studio analyzer
4151         https://bugs.webkit.org/show_bug.cgi?id=131514
4152
4153         Reviewed by Tim Horton.
4154
4155         * WTF.vcxproj/WTF.vcxproj: Use correct platform settings for
4156         64-bit build.
4157         * config.h: Ditto.
4158         * wtf/CurrentTime.cpp:
4159         (WTF::highResUpTime): Resolve warning about deprecated API.
4160         * wtf/StackBounds.cpp:
4161         (WTF::StackBounds::initialize): Silence warning about
4162         an uninitialized variable.
4163
4164 2014-04-09  Geoffrey Garen  <ggaren@apple.com>
4165
4166         Rolled back in r166972.
4167
4168         This time, we conditionally exclude linking against bmalloc in Production
4169         builds. Production builds will not be able to link against bmalloc
4170         until the Production build system has been updated to build bmalloc.
4171
4172             WTF should link against bmalloc
4173             https://bugs.webkit.org/show_bug.cgi?id=131403
4174
4175             Reviewed by Mark Rowe.
4176
4177             * Configurations/WTF.xcconfig:
4178             * WTF.xcodeproj/project.pbxproj:
4179
4180 2014-04-09  Geoffrey Garen  <ggaren@apple.com>
4181
4182         Put bmalloc headers in the right place
4183         https://bugs.webkit.org/show_bug.cgi?id=131464
4184
4185         Reviewed by Mark Rowe.
4186
4187         * wtf/FastMalloc.cpp: Use "<bmalloc/...>" syntax so we can find our
4188         headers in <header-root>/usr/local/include/bmalloc/.
4189
4190 2014-04-09  Geoffrey Garen  <ggaren@apple.com>
4191
4192         Rolled back out r166972.
4193
4194         The production buildbots are still broken because the build-root script
4195         doesn't build bmalloc.
4196
4197         * WTF.xcodeproj/project.pbxproj:
4198
4199 2014-04-09  Geoffrey Garen  <ggaren@apple.com>
4200
4201         Rolled back in r166972.
4202
4203         The iOS buildbot's scripts have been updated to build bmalloc, so the
4204         build should now succeed on the bot.
4205
4206         Also renamed "Frameworks" to "Libraries" as suggested in a review comment.
4207
4208             WTF should link against bmalloc
4209             https://bugs.webkit.org/show_bug.cgi?id=131403
4210
4211             Reviewed by Michael Saboff.
4212
4213             This is required to build successfullly with bmalloc enabled.
4214
4215             * WTF.xcodeproj/project.pbxproj:
4216
4217 2014-04-08  Geoffrey Garen  <ggaren@apple.com>
4218
4219         Stop linking WTF against bmalloc.
4220
4221         Reviewed by Enrica Casucci.
4222
4223         This seems to have broken an iOS buildbot script. Disable it for now
4224         until we can fix the script.
4225
4226         * WTF.xcodeproj/project.pbxproj:
4227
4228 2014-04-08  Geoffrey Garen  <ggaren@apple.com>
4229
4230         WTF should link against bmalloc
4231         https://bugs.webkit.org/show_bug.cgi?id=131403
4232
4233         Reviewed by Michael Saboff.
4234
4235         This is required to build successfullly with bmalloc enabled.
4236
4237         * WTF.xcodeproj/project.pbxproj:
4238
4239 2014-04-08  Geoffrey Garen  <ggaren@apple.com>
4240
4241         Added a bmalloc back-end for FastMalloc
4242         https://bugs.webkit.org/show_bug.cgi?id=131387
4243
4244         Reviewed by Andreas Kling.
4245
4246         We'll need to rethink some things if we adopt this back-end. For example,
4247         fastMallocSize() and fastMallocGoodSize() are no longer real things. But,
4248         this is enough to test for now.
4249
4250         * wtf/FastMalloc.cpp:
4251         (WTF::fastMalloc):
4252         (WTF::fastCalloc):
4253         (WTF::fastRealloc):
4254         (WTF::fastFree):
4255         (WTF::fastMallocSize):
4256         (WTF::fastMallocGoodSize):
4257         (WTF::tryFastMalloc):
4258         (WTF::tryFastRealloc):
4259         (WTF::tryFastCalloc):
4260         (WTF::releaseFastMallocFreeMemory):
4261         (WTF::fastMallocStatistics):
4262
4263 2014-04-08  Andres Gomez  <agomez@igalia.com>
4264
4265         [GTK] [EFL] Build fails with GCC < 4.8.x
4266         https://bugs.webkit.org/show_bug.cgi?id=130585
4267
4268         Reviewed by Martin Robinson.
4269
4270         The behavior in lower versions of GCC seem to be related to
4271         http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-active.html#2132.
4272
4273         Provided explicit casts for the failing ambiguous overloads.
4274
4275         * wtf/gtk/MainThreadGtk.cpp:
4276         (WTF::scheduleDispatchFunctionsOnMainThread):
4277         * wtf/gtk/RunLoopGtk.cpp:
4278         (WTF::RunLoop::wakeUp): Provided lambda with a RefPtr instead of
4279         ref and de-referring.
4280
4281 2014-04-04  Mark Lam  <mark.lam@apple.com>
4282
4283         Date object needs to check for ES5 15.9.1.14 TimeClip limit.
4284         <https://webkit.org/b/131248>
4285
4286         Reviewed by Mark Hahnenberg.
4287
4288         * wtf/DateMath.cpp:
4289         - Moved the definition of maxECMAScriptTime to the .h file so that we
4290           can use it in other files as well.
4291         (WTF::msToYear):
4292         - Removed a stale comment for parseDateFromNullTerminatedCharacters().
4293         * wtf/DateMath.h:
4294
4295 2014-04-04  Mark Hahnenberg  <mhahnenberg@apple.com>
4296
4297         Enhanced GC logging
4298         https://bugs.webkit.org/show_bug.cgi?id=131246
4299
4300         Reviewed by Geoff Garen.
4301
4302         Remove OBJECT_MARK_LOGGING
4303
4304         * wtf/FeatureDefines.h:
4305         * wtf/Platform.h:
4306
4307 2014-04-03  Zsolt Borbely  <zsborbely.u-szeged@partner.samsung.com>
4308
4309         [EFL] Enable CSS JIT again, it works fine after r166666.
4310
4311         Reviewed by Csaba Osztrogonác.
4312
4313         * wtf/Platform.h:
4314
4315 2014-04-03  Javier Fernandez  <jfernandez@igalia.com>
4316
4317         [GTK][Cmake] Enable CSS JIT
4318         https://bugs.webkit.org/show_bug.cgi?id=131022
4319
4320         Reviewed by Martin Robinson.
4321
4322         * wtf/Platform.h: Enable CSS JIT for GTK port.
4323
4324 2014-04-02  Frédéric Wang  <fred.wang@free.fr>
4325
4326         Operator stretching: read the Open Type MATH table
4327         https://bugs.webkit.org/show_bug.cgi?id=130324
4328
4329         Reviewed by Chris Fleizach.
4330
4331         * wtf/Platform.h: enable OPENTYPE_MATH on platforms that can read OpenType tables.
4332
4333 2014-04-02  Alex Christensen  <achristensen@webkit.org>
4334
4335         [WinCairo] Build fix with GMainLoopSource.
4336         https://bugs.webkit.org/show_bug.cgi?id=131089
4337
4338         Reviewed by Carlos Garcia Campos.
4339
4340         * wtf/gobject/GMainLoopSource.cpp:
4341         Only compile if glib is used, which fixes compile errors with video disabled in WinCairo.
4342         * wtf/gobject/GMainLoopSource.h:
4343         Export the GMainLoopSource functions to WTF.dll to link with where they are called in the GStreamer code.
4344         Also removed spaces to appease style bot.
4345
4346 2014-04-01  Zsolt Borbely  <zsborbely.u-szeged@partner.samsung.com>
4347
4348         [EFL] REGRESSION(166569): It made DoYouEvenBench/Full.html, CSS/QuerySelector.html and Dromaeo performance tests crash
4349         https://bugs.webkit.org/show_bug.cgi?id=131039
4350
4351         Reviewed by Csaba Osztrogonác.
4352
4353         * wtf/Platform.h: Disable CSS JIT on EFL until proper fix.
4354
4355 2014-04-01  Commit Queue  <commit-queue@webkit.org>
4356
4357         Unreviewed, rolling out r166583.
4358         https://bugs.webkit.org/show_bug.cgi?id=131040
4359
4360         It's causing frequent crashes when running Layout Tests
4361         (Requested by svillar on #webkit).
4362
4363         Reverted changeset:
4364
4365         "[GTK][Cmake] Enable CSS JIT"
4366         https://bugs.webkit.org/show_bug.cgi?id=131022
4367         http://trac.webkit.org/changeset/166583
4368
4369 2014-04-01  Javier Fernandez  <jfernandez@igalia.com>
4370
4371         [GTK][Cmake] Enable CSS JIT
4372         https://bugs.webkit.org/show_bug.cgi?id=131022
4373