65889f59bb11d61420d6ec781ed1be92e8791f86
[WebKit-https.git] / Source / WTF / ChangeLog
1 2013-09-06  Andreas Kling  <akling@apple.com>
2
3         Remove old workaround for Nokia's Harmattan GCC on Qt/ARM.
4         <https://webkit.org/b/37253>
5
6         Reviewed by Anders Carlsson.
7
8         Apparently this was a workaround for GCC getting stuck in an infinite loop
9         when building for ARM in a Nokia SDK over 2 years ago.
10
11         I think it's safe to remove this now, but if I'm wrong, and you're reading
12         this ChangeLog wondering why I did this to you, feel free to put it back in.
13
14         * wtf/PassRefPtr.h:
15         (WTF::refIfNotNull):
16         (WTF::derefIfNotNull):
17
18 2013-09-06  Andreas Kling  <akling@apple.com>
19
20         Remove unused RefPtr(PlacementNewAdopt) constructor.
21         <https://webkit.org/b/120914>
22
23         Reviewed by Anders Carlsson.
24
25         * wtf/RefPtr.h:
26
27 2013-09-06  David Kilzer  <ddkilzer@apple.com>
28
29         BUILD FIX (r155171): INSTALL_PATH_PREFIX should no longer be used beneath BUILT_PRODUCTS_DIR in HEADER_SEARCH_PATHS for iOS
30
31         * Configurations/Base.xcconfig:
32         (HEADER_SEARCH_PATHS): Change
33         $(BUILT_PRODUCTS_DIR)/$(INSTALL_PATH_PREFIX)/usr/local/include to
34         $(BUILT_PRODUCTS_DIR)/usr/local/include.
35
36 2013-09-06  Anders Carlsson  <andersca@apple.com>
37
38         Remove fastNew/fastDelete
39         https://bugs.webkit.org/show_bug.cgi?id=120904
40
41         Reviewed by Andreas Kling.
42
43         Remove the various variants of fastNew and fastDelete.
44
45         * wtf/FastAllocBase.h:
46
47 2013-09-06  Alberto Garcia  <berto@igalia.com>
48
49         [GTK] GlibUtilities: getCurrentExecutablePath() does not compile on GNU/Hurd
50         https://bugs.webkit.org/show_bug.cgi?id=120793
51
52         Reviewed by Gustavo Noronha Silva.
53
54         Original patch by Svante Signell <svante.signell@telia.com>.
55
56         PATH_MAX is not defined in GNU/Hurd, this patch adds a dummy
57         implementation to make it compile.
58
59         * wtf/gobject/GlibUtilities.cpp:
60         (getCurrentExecutablePath):
61
62 2013-09-05  Dan Bernstein  <mitz@apple.com>
63
64         INSTALL_PATH_PREFIX is used even when not installing
65         https://bugs.webkit.org/show_bug.cgi?id=120810
66
67         Reviewed by Andy Estes.
68
69         * Configurations/CopyWTFHeaders.xcconfig: Removed INSTALL_PATH_PREFIX from
70         the definition of PRIVATE_HEADERS_FOLDER_PATH. Also removed the leading
71         slash, because the Xcode definition of this build setting is relative.
72         * WTF.xcodeproj/project.pbxproj: Prepend INSTALL_PATH_PREFIX here when installing.
73
74 2013-09-05  Anders Carlsson  <andersca@apple.com>
75
76         Fix build with older versions of clang from Xcode.
77
78         * wtf/Compiler.h:
79
80 2013-09-05  Anders Carlsson  <andersca@apple.com>
81
82         Make Vector::uncheckedAppend work with move-only types
83         https://bugs.webkit.org/show_bug.cgi?id=120799
84
85         Reviewed by Andreas Kling.
86
87         * wtf/Vector.h:
88         (WTF::::uncheckedAppend):
89         Use std::forward to invoke the move constructor when possible.
90
91 2013-09-05  Anders Carlsson  <andersca@apple.com>
92
93         Add COMPILER_SUPPORTS(CXX_AUTO_TYPE) and #error if it's 0
94         https://bugs.webkit.org/show_bug.cgi?id=120794
95
96         Reviewed by Andreas Kling.
97
98         People have already begun using C++11 auto in WebCore, so let's make it a prerequisite.
99
100         * wtf/Compiler.h:
101
102 2013-09-05  Anders Carlsson  <andersca@apple.com>
103
104         Clean up wtf/Compiler.h
105         https://bugs.webkit.org/show_bug.cgi?id=120790
106
107         Reviewed by Andreas Kling.
108
109         - Get rid of the CLANG_PRAGMA define, it's not used anywhere.
110         - Remove a workaround for a bug in the version of clang that came with Xcode 4.2.
111         - Replace WTF_COMPILER_SUPPORTS_CXX_FINAL_CONTROL with a compiler quirk for versions of clang
112           that have a buggy final implementation and fix a bug in the macro where final would be disabled
113           for versions of clang where __clang_minor__ is less than 2, regardless of the major version.
114         - Fail if someone tries to compile the WebKit stack with a compiler that doesn't support rvalue
115           references or static_assert.
116
117         * wtf/Compiler.h:
118
119 2013-09-05  Anders Carlsson  <andersca@apple.com>
120
121         Change StringBuffer back to not use an OwnPtr in an attempt to fix ports.
122         
123         * wtf/text/StringBuffer.h:
124
125 2013-09-04  Anders Carlsson  <andersca@apple.com>
126
127         Vector::releaseBuffer should return an OwnPtr
128         https://bugs.webkit.org/show_bug.cgi?id=120718
129
130         Reviewed by Andreas Kling.
131
132         Change Vector::releaseBuffer() to return an OwnPtr. I intentionally chose
133         to use an OwnPtr over a PassOwnPtr since we're trying to move away from PassOwnPtr objects.
134         
135         Fix fallout from this change by adopting OwnPtr/PassOwnPtr in StringBuffer and the two StringImpl
136         constructors that adopt the passed in pointer.
137
138         * wtf/Vector.h:
139         * wtf/text/StringBuffer.h:
140         * wtf/text/StringImpl.h:
141
142 2013-09-05  Mikhail Pozdnyakov  <mikhail.pozdnyakov@intel.com>
143
144         Remove String(RefPtr<StringImpl>) constructor
145         https://bugs.webkit.org/show_bug.cgi?id=120767
146
147         Reviewed by Anders Carlsson.
148
149         The String(RefPtr<StringImpl>) constructor should be removed for the following reasons:
150         - It almost does not have clients, so it is unneeded.
151         - RefPtr should never be passed by value
152
153         * wtf/text/StringBuilder.cpp:
154         (WTF::StringBuilder::shrinkToFit):
155         * wtf/text/WTFString.h:
156
157 2013-09-05  Jaehun Lim  <ljaehun.lim@samsung.com>
158
159         Unreviewed. Fix build after r155083
160
161         Source/WTF/wtf/Vector.h:1210:48: error: ‘>>’ should be ‘> >’ within a nested template argument list
162
163         * wtf/Vector.h: Add missing space.
164
165 2013-09-04  Mark Rowe  <mrowe@apple.com>
166
167         Fix AutodrainedPool.h to compile without errors under ARC.
168
169         Rubber-stamped by Anders Carlsson.
170
171         * wtf/AutodrainedPool.h: Some versions of Clang complain about any use of NSAutoreleasePool under ARC.
172         Change the type of the member variable to id to work around this. Since the implementation file is compiled
173         under manual reference counting, everything will work fine.
174
175 2013-09-04  Anders Carlsson  <andersca@apple.com>
176
177         De-indent Vector.h.
178
179         Rubber-stamped by Andreas Kling.
180         
181         I'm cleaning up Vector and making it work with move-only objects, and the namespace WTF
182         indentation is driving me crazy.
183
184         * wtf/Vector.h:
185
186 2013-09-03  Filip Pizlo  <fpizlo@apple.com>
187
188         CodeBlock memory cost reporting should be rationalized
189         https://bugs.webkit.org/show_bug.cgi?id=120615
190
191         Reviewed by Darin Adler.
192
193         * wtf/RefCountedArray.h:
194         (WTF::RefCountedArray::refCount):
195
196 2013-09-03  Enrica Casucci  <enrica@apple.com>
197
198         Follow up to http://trac.webkit.org/changeset/155014
199
200         Reviewed by Alexey Proskuryakov.
201
202         In the r155014 I renamed hasLineBreakingPropertyComplexContext
203         to requiresComplexContextForWordBreaking but forgot to
204         make the same change in UnicodeWchar.h.
205
206         * wtf/unicode/wchar/UnicodeWchar.cpp:
207         (WTF::Unicode::requiresComplexContextForWordBreaking):
208         * wtf/unicode/wchar/UnicodeWchar.h:
209
210 2013-09-03  Enrica Casucci  <enrica@apple.com>
211
212         Can't select Katakana word by double-clicking.
213         <rdar://problem/14654926>
214
215         Reviewed by Alexey Proskuryakov and Ryosuke Niwa.
216
217         For some languages, like Japanese we need
218         to use more context for word breaking.
219         I've renamed the function to better reflect its use
220         and remove the unused hasLineBreakingPropertyComplexContextOrIdeographic.
221
222         * wtf/unicode/icu/UnicodeIcu.h:
223         (WTF::Unicode::requiresComplexContextForWordBreaking):
224
225 2013-09-03  Andreas Kling  <akling@apple.com>
226
227         Support Vector<Ref<T>>.
228         <https://webkit.org/b/120637>
229
230         Reviewed by Antti Koivisto.
231
232         Add a Ref(const T&) constructor to enable Vector<Ref<T>>. This looks a bit awkward
233         but is necessary for Vector::append(const T&) to find a constructor.
234
235         An alternative would be to add something like std::vector::emplace_back, but I can't
236         think of a good name for that, and it'd be nice if append() would "just work."
237
238         Also add operator->(). I initially excluded this because I felt it made for
239         unsafe-looking code. Things quickly got out of hand with .get() everywhere though.
240
241         IMO -> looks OK as long as it's only used on the first link in a dereference chain,
242         as that variable and its type will be "in context."
243
244         * wtf/Ref.h:
245         (WTF::Ref::Ref):
246         (WTF::Ref::~Ref):
247         (WTF::Ref::operator->):
248         (WTF::Ref::get):
249         * wtf/VectorTraits.h:
250
251             Add simple traits for Ref<T> so it can be moved around freely by Vector.
252
253 2013-09-03  Mikhail Pozdnyakov  <mikhail.pozdnyakov@intel.com>
254
255         Check WTF::VectorFiller template argument type size in compile time
256         https://bugs.webkit.org/show_bug.cgi?id=120631
257
258         Reviewed by Darin Adler.
259
260         The template argument's type size in WTF::VectorFiller 'memset' specialization
261         should be checked during compilation rather than in runtime.
262
263         * wtf/Vector.h:
264
265 2013-09-02  Darin Adler  <darin@apple.com>
266
267         Cut down on double hashing and code needlessly using hash table iterators
268         https://bugs.webkit.org/show_bug.cgi?id=120611
269
270         Reviewed by Andreas Kling.
271
272         Double hashing is common in code that needs to combine a remove with some
273         action to only be done if the code is removed. The only way to avoid it is
274         to write code using find and a hash table iterator. To help with this, add
275         a boolean return value to remove functions to indicate if anything was removed.
276
277         Double hashing also happens in code that does a get followed by a remove.
278         The take function is helpful in this case. To help with this, add a takeFirst
279         funciton to ListHashSet.
280
281         * wtf/HashCountedSet.h:
282         (WTF::HashCountedSet::removeAll): Added a boolean return value, analogous to the one
283         that the HashCountedSet::remove function already has.
284
285         * wtf/HashMap.h:
286         (WTF::HashMap::remove): Added a boolean return value, true if something was removed.
287         * wtf/HashSet.h:
288         (WTF::HashSet::remove): Ditto.
289         * wtf/RefPtrHashMap.h:
290         (WTF::RefPtrHashMap::remove): Ditto.
291
292         * wtf/ListHashSet.h:
293         (WTF::ListHashSet::takeFirst): Added.
294         (WTF::ListHashSet::takeLast): Added.
295         (WTF::ListHashSet::remove): Added a boolean return value, true if something was removed.
296
297         * wtf/WTFThreadData.h:
298         (JSC::IdentifierTable::remove): Use the new remove return value to get rid of most of
299         the code in this function.
300
301 2013-09-02  David Kilzer  <ddkilzer@apple.com>
302
303         Remove duplicate entries found by Xcode in WTF project
304
305         Platform.h was duplicated in r111778 after being added in
306         r111504.
307
308         A dangling reference to Ref.h was added in r154962.
309
310         * WTF.xcodeproj/project.pbxproj: Remove duplicate entries for
311         Platform.h and Ref.h.
312
313 2013-09-02  Andreas Kling  <akling@apple.com>
314
315         Actually add Ref.h
316
317 2013-09-02  Darin Adler  <darin@apple.com>
318
319         [Mac] No need for HardAutorelease, which is same as CFBridgingRelease
320         https://bugs.webkit.org/show_bug.cgi?id=120569
321
322         Reviewed by Andy Estes.
323
324         * wtf/ObjcRuntimeExtras.h: Added a FIXME about miscapitalization of ObjC.
325         Deleted HardAutorelease.
326         (wtfObjcMsgSend): Dropped the use of abbreviations in local class and argument names.
327         (wtfCallIMP): Ditto.
328
329 2013-09-01  Andreas Kling  <akling@apple.com>
330
331         Ref: A smart pointer for the reference age.
332         <https://webkit.org/b/120570>
333
334         Reviewed by Antti Koivisto.
335
336         Add a very simple simple Ref<T> smart pointer class that is never null.
337         It's initialized by passing a T& to the constructor and cannot be assigned to.
338
339         operator-> is not overloaded, to prevent unsafe-looking code.
340         The value is extracted by "T& get()", since C++ does not let you override operator.()
341
342         * wtf/Ref.h:
343
344 2013-08-30  Oliver Hunt  <oliver@apple.com>
345
346         Make JSValue bool conversion less dangerous
347         https://bugs.webkit.org/show_bug.cgi?id=120505
348
349         Reviewed by Darin Adler.
350
351         Make LIKELY and UNLIKELY macros coerce to bool before
352         passing to expect.
353
354         * wtf/Compiler.h:
355
356 2013-08-30  Antti Koivisto  <antti@apple.com>
357
358         Remove code behind ENABLE(DIALOG_ELEMENT)
359         https://bugs.webkit.org/show_bug.cgi?id=120467
360
361         Reviewed by Darin Adler.
362
363         * wtf/FeatureDefines.h:
364
365 2013-08-29  Sam Weinig  <sam@webkit.org>
366
367         Add ENABLE guards for Promises
368         https://bugs.webkit.org/show_bug.cgi?id=120488
369
370         Reviewed by Andreas Kling.
371
372         * wtf/FeatureDefines.h:
373
374 2013-08-28  Zan Dobersek  <zdobersek@igalia.com>
375
376         [GTK] Add support for building JSC with FTL JIT enabled
377         https://bugs.webkit.org/show_bug.cgi?id=120270
378
379         Reviewed by Filip Pizlo.
380
381         * wtf/Platform.h: Define ENABLE_FTL_JIT to the value of 1 for the GTK port if building for the x86-64
382         architecture with LLVM present and the define not being previously defined. This is applicable when
383         configuring the Automake build with '--enable-ftl-jit=auto'.
384
385 2013-08-27  Arunprasad Rajkumar  <arurajku@cisco.com>
386
387         Replace currentTime() with monotonicallyIncreasingTime() in WebCore
388         https://bugs.webkit.org/show_bug.cgi?id=119958
389
390         Reviewed by Alexey Proskuryakov.
391
392         WTF::currentTime() is prone to NTP and manual adjustments, so use
393         WTF::monotonicallyIncreasingTime() to measure elapsed time.
394
395         It is a continuation of r154201.
396
397         * wtf/CurrentTime.h: Edited comment.
398
399 2013-08-27  Andre Moreira Magalhaes   <andre.magalhaes@collabora.co.uk>
400
401         [gstreamer] Make sure gstreamer source element is thread-safe
402         https://bugs.webkit.org/show_bug.cgi?id=115352
403
404         Reviewed by Philippe Normand.
405
406         Add convenience class that simplifies locking and unlocking a GMutex.
407
408         * GNUmakefile.list.am:
409         * wtf/gobject/GMutexLocker.h: Added.
410         (WebCore::GMutexLocker::GMutexLocker):
411         (WebCore::GMutexLocker::~GMutexLocker):
412         (WebCore::GMutexLocker::lock):
413         (WebCore::GMutexLocker::unlock):
414         (WebCore::GMutexLocker::mutex):
415
416 2013-08-26  Andy Estes  <aestes@apple.com>
417
418         Don't leak objects in HardAutorelease when OBJC_NO_GC is undefined but
419         Objective-C GC is disabled at runtime.
420         
421         Reviewed by Darin Adler.
422
423         * wtf/ObjcRuntimeExtras.h:
424         (HardAutorelease):
425
426 2013-08-23  Andy Estes  <aestes@apple.com>
427
428         Fix issues found by the Clang Static Analyzer
429         https://bugs.webkit.org/show_bug.cgi?id=120230
430
431         Reviewed by Darin Adler.
432
433         * wtf/ObjcRuntimeExtras.h:
434         (HardAutorelease): Added a canonical implementation of HardAutorelease.
435
436 2013-08-26  Zan Dobersek  <zdobersek@igalia.com>
437
438         Undefine __STDC_LIMIT_MACROS and __STDC_CONSTANT_MACROS before redefining them
439         https://bugs.webkit.org/show_bug.cgi?id=120313
440
441         Reviewed by Darin Adler.
442
443         * wtf/LLVMHeaders.h: Undefine the two macros before they are defined again.
444         This way we avoid the compilation-time warnings about the macros being invalidly redefined.
445
446 2013-08-26  Oliver Hunt  <oliver@apple.com>
447
448         Building is so overrated.
449
450         * wtf/Compression.cpp:
451         (WTF::GenericCompressedData::decompress):
452
453 2013-08-26  Oliver Hunt  <oliver@apple.com>
454
455         Disable compression under MSVC for now as we're getting
456         weird release-only failures.
457
458         * wtf/Compression.cpp:
459
460 2013-08-24  Benjamin Poulain  <benjamin@webkit.org>
461
462         Save three bytes per CStringBuffer object
463         https://bugs.webkit.org/show_bug.cgi?id=120040
464
465         Reviewed by Darin Adler.
466
467         Merge https://chromium.googlesource.com/chromium/blink/+/894ae8eafdb64912aefd8f9c809f4ccda84f3b89
468
469         sizeof(CStringBuffer) was rounded up to 8 on account of struct size and
470         alignment rules. This is clearly not what was intended.
471
472         * wtf/text/CString.cpp:
473         (WTF::CStringBuffer::createUninitialized):
474         * wtf/text/CString.h:
475         (WTF::CStringBuffer::data):
476         (WTF::CStringBuffer::mutableData):
477
478 2013-08-24  Darin Adler  <darin@apple.com>
479
480         RetainPtr lacks move constructor for case when argument is a RetainPtr of a different type
481         https://bugs.webkit.org/show_bug.cgi?id=120255
482
483         Reviewed by Andreas Kling.
484
485         * wtf/RetainPtr.h: Added missing move constructor, modeled on the other move constructor,
486         and the one from RetPtr.
487
488 2013-08-24  Oliver Hunt  <oliver@apple.com>
489
490         Make the world build.
491
492         * wtf/Compression.h:
493
494 2013-08-24  Oliver Hunt  <oliver@apple.com>
495
496         REGRESSION(r154498): Crashes on EFL, GTK, Qt on release configurations
497         https://bugs.webkit.org/show_bug.cgi?id=120246
498
499         Reviewed by Antti Koivisto.
500
501         Undestroy all the platforms that don't use the global new overload
502
503         * wtf/Compression.h:
504
505 2013-08-21  Mark Rowe  <mrowe@apple.com>
506
507         <https://webkit.org/b/120141> Make RetainPtr work with ARC.
508
509         Have RetainPtr store the object its managing as a CFTypeRef and manage its lifetime with
510         CFRetain / CFRelease. This is necessary to have explicit control over the lifetime of
511         Objective-C objects when automatic reference counting is in use. Two helper methods are
512         introduced to convert between the pointer type that the RetainPtr manages and the CFTypeRef
513         that the pointer is stored as. For CF types and Objective-C types with ARC disabled,
514         these methods are simply casts. For Objective-C types under ARC they need to use the
515         special bridging casts to keep the compiler happy.
516
517         Reviewed by Anders Carlsson.
518
519         * wtf/RetainPtr.h:
520         (WTF::RetainPtr::RetainPtr): Use the helper methods to convert to and from the storage
521         types when necessary.
522         (WTF::RetainPtr::~RetainPtr): Ditto.
523         (WTF::RetainPtr::get): Ditto.
524         (WTF::RetainPtr::operator->): Ditto.
525         (WTF::RetainPtr::operator PtrType): Ditto.
526         (WTF::::RetainPtr): Ditto.
527         (WTF::::clear): Ditto.
528         (WTF::::leakRef): Ditto.
529         (WTF::=): Ditto.
530
531         (WTF::RetainPtr::fromStorageTypeHelper): Use crazy template magic to determine whether to use
532         a bridging cast or not depending on the desired return type.
533         (WTF::RetainPtr::fromStorageType):
534         (WTF::RetainPtr::toStorageType): Overloading is sufficient here.
535
536 2013-08-21  Mark Rowe  <mrowe@apple.com>
537
538         Revert r153637.
539
540         It didn't work with ARC like it said it would. We'll need to take a slightly different approach.
541
542         Rubber-stamped by Anders Carlsson.
543
544         * wtf/RetainPtr.h:
545         (WTF::RetainPtr::RetainPtr):
546         (WTF::RetainPtr::~RetainPtr):
547         (WTF::RetainPtr::operator UnspecifiedBoolType):
548         (WTF::::RetainPtr):
549         (WTF::::clear):
550         (WTF::=):
551         (WTF::adoptCF):
552         (WTF::adoptNS):
553
554 2013-08-23  Brent Fulgham  <bfulgham@apple.com>
555
556         [Windows] Unreviewed build correction after r154513.
557
558         * WTF.vcxproj/build-generated-files.sh: Variable was missing '$' character.
559
560 2013-08-23  Darin Adler  <darin@apple.com>
561
562         Cut down repeated code in RefPtr and RetainPtr by using copy/move-and-swap for assignment operators
563         https://bugs.webkit.org/show_bug.cgi?id=120223
564
565         Reviewed by Anders Carlsson.
566
567         * wtf/RefPtr.h: Switch to copy-and-swap in the assignment operators. The move ones already were done
568         that way.
569         * wtf/RetainPtr.h: Ditto, except for the move ones too.
570
571 2013-08-23  Oliver Hunt  <oliver@apple.com>
572
573         Add more validation logic to CompressibleVector
574         https://bugs.webkit.org/show_bug.cgi?id=120227
575
576         Reviewed by Brent Fulgham.
577
578         Add a pile of assertions to try on catch whatever is going wrong
579         in the windows environment or other platforms.
580
581         * wtf/Compression.cpp:
582         (WTF::GenericCompressedData::create):
583         (WTF::GenericCompressedData::decompress):
584         * wtf/Compression.h:
585         (WTF::CompressedVector::decompress):
586
587 2013-08-23  Alex Christensen  <achristensen@apple.com>
588
589         Re-separating Win32 and Win64 builds.
590         https://bugs.webkit.org/show_bug.cgi?id=120178
591
592         Reviewed by Brent Fulgham.
593
594         * WTF.vcxproj/WTFGenerated.make:
595         Pass PlatformArchitecture as a command line parameter to bash scripts.
596         * WTF.vcxproj/build-generated-files.sh:
597         Use PlatformArchitecture from command line to determine which object directory to use (obj32 or obj64).
598
599 2013-08-22  Filip Pizlo  <fpizlo@apple.com>
600
601         build-jsc --ftl-jit should work
602         https://bugs.webkit.org/show_bug.cgi?id=120194
603
604         Reviewed by Oliver Hunt.
605
606         * wtf/LLVMHeaders.h: I don't know what went wrong here. If HAVE(LLVM), then we need those headers!
607
608 2013-08-23  Brent Fulgham  <bfulgham@apple.com>
609
610         [Windows] Unreviewed build correction after r154498.
611
612         * WTF.vcxproj/WTF.vcxproj.filters: Adjust files so they show up
613         in the proper folders.
614         * WTF.vcxproj/WTFCommon.props: Add search path for zlib header and
615         include link directive.
616
617 2013-08-23  Oliver Hunt  <oliver@apple.com>
618
619         Attempt to appease windows bot.
620
621         * wtf/Compression.h:
622
623 2013-08-23  Oliver Hunt  <oliver@apple.com>
624
625         Re-sort xcode project file
626
627         * WTF.xcodeproj/project.pbxproj:
628
629 2013-08-23  Oliver Hunt  <oliver@apple.com>
630
631         Support in memory compression of rarely used data
632         https://bugs.webkit.org/show_bug.cgi?id=120143
633
634         Reviewed by Gavin Barraclough.
635
636         Adds a set of utility functions to wrap the use of zlib over a generic
637         type or a Vector<> as well as adding CompressibleVector that wraps
638         either a Vector<> or compressed data.
639
640         * GNUmakefile.list.am:
641         * WTF.pro:
642         * WTF.vcxproj/WTF.vcxproj:
643         * WTF.xcodeproj/project.pbxproj:
644         * wtf/CMakeLists.txt:
645         * wtf/CheckedArithmetic.h:
646         * wtf/Compression.cpp: Added.
647         (WTF::zAlloc):
648         (WTF::zFree):
649         (WTF::GenericCompressedData::create):
650         (WTF::GenericCompressedData::decompress):
651         * wtf/Compression.h: Added.
652         (WTF::GenericCompressedData::compressedSize):
653         (WTF::GenericCompressedData::originalSize):
654         (WTF::GenericCompressedData::GenericCompressedData):
655         (WTF::CompressedVector::create):
656         (WTF::CompressedVector::decompress):
657         (WTF::CompressedVector::size):
658         (WTF::CompressibleVector::CompressibleVector):
659         (WTF::CompressibleVector::shrinkToFit):
660         (WTF::CompressibleVector::size):
661         (WTF::CompressibleVector::operator[]):
662         (WTF::CompressibleVector::at):
663         (WTF::CompressibleVector::begin):
664         (WTF::CompressibleVector::end):
665         (WTF::CompressibleVector::data):
666         (WTF::CompressibleVector::decompressIfNecessary):
667
668 2013-08-21  Commit Queue  <commit-queue@webkit.org>
669
670         Unreviewed, rolling out r154416.
671         http://trac.webkit.org/changeset/154416
672         https://bugs.webkit.org/show_bug.cgi?id=120147
673
674         Broke Windows builds (Requested by rniwa on #webkit).
675
676         * WTF.vcxproj/WTFGenerated.make:
677         * WTF.vcxproj/build-generated-files.sh:
678
679 2013-08-21  Alex Christensen  <achristensen@apple.com>
680
681         <https://webkit.org/b/120137> Separating Win32 and Win64 builds.
682
683         Reviewed by Brent Fulgham.
684
685         * WTF.vcxproj/WTFGenerated.make:
686         Pass PlatformArchitecture as a command line parameter to bash scripts.
687         * WTF.vcxproj/build-generated-files.sh:
688         Use PlatformArchitecture from command line to determine which object directory to use (obj32 or obj64).
689
690 2013-08-21  Allan Sandfeld Jensen  <allan.jensen@digia.com>
691
692         Disable maybe-uninitialized warning in GCC 4.8
693         https://bugs.webkit.org/show_bug.cgi?id=119835
694
695         Reviewed by Anders Carlsson.
696
697         Disable the maybe-uninitialized warning.
698
699         * wtf/Compiler.h:
700
701 2013-08-20  Alex Christensen  <achristensen@apple.com>
702
703         Use PlatformArchitecture to distinguish between 32-bit and 64-bit builds on Windows.
704         https://bugs.webkit.org/show_bug.cgi?id=119512
705
706         Reviewed by Brent Fulgham.
707
708         * WTF.vcxproj/WTFGeneratedCommon.props:
709         Replaced obj32, bin32, and lib32 with macros for 64-bit build.
710
711 2013-08-20  Víctor Manuel Jáquez Leal  <vjaquez@igalia.com>
712
713         <https://webkit.org/b/120056> [GTK][ARM] enable DFG_JIT
714
715         Reviewed by Martin Robinson.
716
717         Enable DFG_JIT in GTK+ platform for ARM/Thumb architecture
718
719         * wtf/Platform.h:
720
721 2013-08-19  Ryosuke Niwa  <rniwa@webkit.org>
722
723         <https://webkit.org/b/120049> Delete code for Snow Leopard
724
725         Reviewed by Benjamin Poulain.
726
727         * wtf/FastMalloc.cpp:
728         (WTF::TCMalloc_ThreadCache::CreateCacheIfNecessary):
729         * wtf/FeatureDefines.h:
730         * wtf/Platform.h:
731
732 2013-08-19  Joseph Pecoraro  <pecoraro@apple.com>
733
734         <https://webkit.org/b/120036> [iOS] Upstream Source/WTF Xcode project for iOS
735
736         Reviewed by David Kilzer.
737
738         Include iOS only WebCoreThread.* files in an ios group, and clean up
739         the included files a bit.
740
741         * WTF.xcodeproj/project.pbxproj:
742         * wtf/ios/WebCoreThread.cpp:
743         * wtf/ios/WebCoreThread.h:
744
745 2013-08-19  Joseph Pecoraro  <pecoraro@apple.com>
746
747         <https://webkit.org/b/119905> [iOS] Upstream Source/WTF
748
749         Reviewed by Benjamin Poulain.
750
751         Upstream iOS WebKit Source/WTF.
752
753         * Configurations/Base.xcconfig:
754         JavaScriptCore.framework is a public framework.
755
756         * wtf/Assertions.h:
757         Define an export macro for iOS projects just including <wtf/Assertions.h>.
758
759         * wtf/Platform.h:
760         * wtf/FeatureDefines.h:
761         iOS ENABLE and USE defines.
762
763         * wtf/MainThread.h:
764         * wtf/mac/MainThreadMac.mm:
765         (WTF::initializeApplicationUIThreadIdentifier):
766         (WTF::initializeWebThreadIdentifier):
767         (WTF::canAccessThreadLocalDataForThread):
768         * wtf/WeakPtr.h:
769         (WTF::WeakReference::get):
770         (WTF::WeakReference::clear):
771         Shared WebThread and MainThread access to thread local data.
772
773         * wtf/WTFThreadData.cpp:
774         (WTF::WTFThreadData::WTFThreadData):
775         Shared WebThread and MainThread identifier tables.
776
777         * wtf/ThreadSpecific.h:
778         (WTF::::replace):
779         Used later on so that WebThread can share the MainThread's thread global data.
780
781         * wtf/text/StringStatics.cpp:
782         (WTF::AtomicString::init):
783         When USE(WEB_THREAD) assert AtomicString::init is initialized on the realMainThread.
784
785         * wtf/unicode/CharacterNames.h:
786         * wtf/unicode/icu/UnicodeIcu.h:
787         (WTF::Unicode::hasLineBreakingPropertyComplexContextOrIdeographic):
788         Minor iOS constants and functions used later by WebCore.
789
790 2013-08-16  Arunprasad Rajkumar  <arurajku@cisco.com>
791
792         <https://webkit.org/b/119785> Replace currentTime() with monotonicallyIncreasingTime() in WebCore
793
794         Reviewed by Alexey Proskuryakov.
795
796         WTF::currentTime() is prone to DST changes and NTP adjustments, so use
797         WTF::monotonicallyIncreasingTime() to measure elapsed time.
798
799         * wtf/CurrentTime.h:
800         (WTF::monotonicallyIncreasingTimeMS): Added mille second version of monotonic time API.
801
802 2013-08-15  Filip Pizlo  <fpizlo@apple.com>
803
804         refCount() of a StringImpl could be zero if it's static; in that case we shouldn't report extra memory cost
805         https://bugs.webkit.org/show_bug.cgi?id=119870
806
807         Reviewed by Mark Hahnenberg.
808
809         * wtf/text/StringImpl.h:
810         (WTF::StringImpl::costDuringGC):
811         (WTF::StringImpl::isStatic):
812         (WTF::StringImpl::bufferOwnership):
813
814 2013-08-14  Filip Pizlo  <fpizlo@apple.com>
815
816         Typed arrays should be rewritten
817         https://bugs.webkit.org/show_bug.cgi?id=119064
818
819         Reviewed by Oliver Hunt.
820         
821         - Added the notion of a reference counted object that can be marked Deferred,
822           which is like a special-purpose upref.
823         
824         - Added a common byte flipper.
825
826         Automake work courtesy of Zan Dobersek <zdobersek@igalia.com>.
827
828         * GNUmakefile.list.am:
829         * WTF.xcodeproj/project.pbxproj:
830         * wtf/DeferrableRefCounted.h: Added.
831         (WTF::DeferrableRefCountedBase::ref):
832         (WTF::DeferrableRefCountedBase::hasOneRef):
833         (WTF::DeferrableRefCountedBase::refCount):
834         (WTF::DeferrableRefCountedBase::isDeferred):
835         (WTF::DeferrableRefCountedBase::DeferrableRefCountedBase):
836         (WTF::DeferrableRefCountedBase::~DeferrableRefCountedBase):
837         (WTF::DeferrableRefCountedBase::derefBase):
838         (WTF::DeferrableRefCountedBase::setIsDeferredBase):
839         (WTF::DeferrableRefCounted::deref):
840         (WTF::DeferrableRefCounted::setIsDeferred):
841         (WTF::DeferrableRefCounted::DeferrableRefCounted):
842         (WTF::DeferrableRefCounted::~DeferrableRefCounted):
843         * wtf/FlipBytes.h: Added.
844         (WTF::needToFlipBytesIfLittleEndian):
845         (WTF::flipBytes):
846         (WTF::flipBytesIfLittleEndian):
847
848 2013-08-14  Julien Brianceau  <jbrianceau@nds.com>
849
850         DFG_JIT implementation for sh4 architecture.
851         https://bugs.webkit.org/show_bug.cgi?id=119737
852
853         Reviewed by Oliver Hunt.
854
855         * wtf/Platform.h:
856
857 2013-08-13  Arunprasad Rajkumar  <arurajku@cisco.com>
858
859         [WTF] [JSC] Replace currentTime() with monotonicallyIncreasingTime() in all possible places
860         https://bugs.webkit.org/show_bug.cgi?id=119762
861
862         Reviewed by Geoffrey Garen.
863
864         * wtf/MainThread.cpp:
865         (WTF::dispatchFunctionsFromMainThread):
866
867 2013-08-12  Ragner Magalhaes  <ranger.n@samsung.com>
868
869         Broken build with build-webkit --no-webgl
870         https://bugs.webkit.org/show_bug.cgi?id=119272
871
872         Reviewed by Alexandru Chiculita.
873
874         CSS_SHADERS requires WEBGL enabled.
875         Add error message to dependency failure.
876
877         * wtf/FeatureDefines.h:
878
879 2013-08-12  Joseph Pecoraro  <pecoraro@apple.com>
880
881         [iOS] isMainThread implementation with USE(WEB_THREAD)
882         https://bugs.webkit.org/show_bug.cgi?id=119644
883
884         Reviewed by Benjamin Poulain.
885
886         On iOS isMainThread() means that the current thread is either the
887         MainThread or WebThread and the current thread has the WebThreadLock.
888
889         * wtf/ios/WebCoreThread.cpp: Added.
890         * wtf/ios/WebCoreThread.h: Added.
891         * wtf/mac/MainThreadMac.mm:
892         (WTF::isMainThread):
893
894 2013-08-11  Carlos Garcia Campos  <cgarcia@igalia.com>
895
896         Unreviewed. Fix make distcheck.
897
898         * GNUmakefile.list.am: Add missing header file.
899
900 2013-08-09  Christophe Dumez  <ch.dumez@sisa.samsung.com>
901
902         Make atob() throw an InvalidCharacterError on excess padding characters
903         https://bugs.webkit.org/show_bug.cgi?id=118898
904
905         Reviewed by Darin Adler.
906
907         Add a Base64FailOnInvalidCharacterOrExcessPadding value to the Base64DecodePolicy
908         enumeration so that the caller can request strict padding validation in addition
909         to strict character validation. This is needed so that we can use
910         WTF::base64Decode() for window.atob().
911
912         * wtf/text/Base64.cpp:
913         (WTF::base64DecodeInternal):
914         * wtf/text/Base64.h:
915
916 2013-08-07  Alex Christensen  <achristensen@apple.com>
917
918         Fixed wrong definition for AppleWin port's WebGL after r153768.
919
920         Rubberstamped by Benjamin Poulain.
921
922         * wtf/Platform.h: Replaced WTF_USE_SURFACE with WTF_USE_GRAPHICS_SURFACE.
923
924 2013-08-04  Sam Weinig  <sam@webkit.org>
925
926         Remove support for HTML5 MicroData
927         https://bugs.webkit.org/show_bug.cgi?id=119480
928
929         Reviewed by Anders Carlsson.
930
931         * wtf/FeatureDefines.h:
932
933 2013-08-06  Alex Christensen  <achristensen@apple.com>
934
935         Enabled WebGL on WinCairo port.
936         https://bugs.webkit.org/show_bug.cgi?id=119502
937
938         Reviewed by Benjamin Poulain.
939
940         * wtf/FeatureDefines.h: Enabled WebGL.
941         * wtf/Platform.h: Added definitions required for WebGL on Windows.
942
943 2013-08-05  Mark Rowe  <mrowe@apple.com>
944
945         <rdar://problem/5927399> FastMalloc should support MallocStackLogging
946
947         Call the malloc stack logging function from within the various entry points to FastMalloc
948         when stack logging is enabled.
949
950         Reviewed by Oliver Hunt and Geoff Garen.
951
952         * wtf/FastMalloc.cpp:
953         Call in to MallocHook::InvokeNewHook / MallocHook::InvokeDeleteHook at the appropriate entry
954         points to FastMalloc. The naming comes from TCMalloc's existing, unused concept of malloc hooks.
955         (WTF::MallocHook::record): Call the stack logging function with appropriate argument types.
956         (WTF::MallocHook::recordAllocation): Out-of-line slow path for when stack logging is enabled
957         that calls record with the values in the right arguments.
958         (WTF::MallocHook::recordDeallocation): Ditto.
959         (WTF::MallocHook::init): Stack logging is enabled if the system allocator has enabled stack logging.
960         (WTF::MallocHook::InvokeNewHook): Call recordAllocation in the unlikely event that stack logging is
961         enabled.
962         (WTF::MallocHook::InvokeDeleteHook): Ditto for recordDeallocation.
963         (WTF::TCMalloc_ThreadCache::InitModule): Initialize the malloc hook.
964
965 2013-08-06  Brent Fulgham  <bfulgham@apple.com>
966
967         [Windows] Unreviewed build correction after r153754 and r153757.
968
969         * wtf/MathExtras.h:
970         (remainder): Provide implementation of C99 remainder for VS2010 (and earlier).
971
972 2013-07-23  David Farler  <dfarler@apple.com> 
973         Provide optional OTHER_CFLAGS, OTHER_CPPFLAGS, OTHER_LDFLAGS additions for building with ASAN
974         https://bugs.webkit.org/show_bug.cgi?id=117762
975
976         Reviewed by Mark Rowe.
977
978         * Configurations/DebugRelease.xcconfig:
979         Add ASAN_OTHER_CFLAGS, CPLUSPLUSFLAGS.
980
981 2013-08-05  Mark Rowe  <mrowe@apple.com>
982
983         Build fix for Qt Windows.
984
985         * wtf/Assertions.cpp: Include StringExtras.h rather than StdLibExtras.h, since the former is where
986         strncasecmp is declared.
987
988 2013-07-26  Mark Rowe  <mrowe@apple.com>
989
990         Logging should be configurable using human-readable channel names rather than crazy bitmasks
991         <http://webkit.org/b/119031>
992
993         Implement shared logic for initializing logging channels based on human-readable channel names in WTF,
994         and rework the WebCore, WebKit and WebKit2 logging initialization on top of it.
995
996         Logging channels may now be enabled by providing a comma-separated list of channel names, with the special
997         "all" name enabling all channels. Channel names prefixed with a leading "-" will result in the named channel
998         being disabled. For instance, specifying "all,-history,-loading" will result in all logging channels except
999         for history and loading being enabled.
1000
1001         For OS X developers, this also changes the name of the user defaults used to enable logging. This is done to allow
1002         the old user defaults to remain set for those people that need to switch between version of WebKit before and
1003         after this change. Where the old user default keys were WebCoreLogLevel, WebKitLogLevel and WebKit2LogLevel,
1004         the new user default keys are WebCoreLogging, WebKitLogging and WebKit2Logging.
1005
1006         For GTK developers, this changes the separator used in the WEBKIT_DEBUG environment variable to a comma for
1007         consistency with the other platforms and to enable more code sharing.
1008
1009         While doing this work I've also taken the opportunity to eliminate the need to touch multiple files when
1010         adding a new logging channel. Now only the header in the relevant project needs to be updated.
1011
1012         Reviewed by Sam Weinig.
1013
1014         * wtf/Assertions.cpp:
1015         (WTFLogChannelByName): Iterate over the provided array of log channels, returning the first whose name
1016         matches case-insensitively.
1017         (setStateOfAllChannels): Helper function to set the state of all channels to a single value.
1018         (WTFInitializeLogChannelStatesFromString): Parse a string containing a case-insensitive, comma-separated list
1019         of channel names to enable or disable, with the latter being prefixed by a "-".
1020         * wtf/Assertions.h: Update the layout of WTFLogChannel to include only the state of the channel and its name.
1021         Declare WTFLogChannelByName and WTFInitializeLogChannelStatesFromString.
1022         * wtf/RefCountedLeakCounter.cpp: Update to the new format of WTFLogChannel.
1023
1024 2013-08-05  Benjamin Poulain  <bpoulain@apple.com>
1025
1026         Disable <meter> by default on iOS, it is enabled through the xconfig files
1027         https://bugs.webkit.org/show_bug.cgi?id=119503
1028
1029         Reviewed by Alexey Proskuryakov.
1030
1031         * wtf/FeatureDefines.h:
1032
1033 2013-08-05  Oliver Hunt  <oliver@apple.com>
1034
1035         Move TypedArray implementation into JSC
1036         https://bugs.webkit.org/show_bug.cgi?id=119489
1037
1038         Reviewed by Filip Pizlo.
1039
1040         Remove TypedArray implementation from WTF
1041
1042         * GNUmakefile.list.am:
1043         * WTF.xcodeproj/project.pbxproj:
1044         * wtf/Forward.h:
1045
1046 2013-08-02  Benjamin Poulain  <benjamin@webkit.org>
1047
1048         Remove a bunch of redundant checks for empty string in StringImpl
1049         https://bugs.webkit.org/show_bug.cgi?id=118768
1050
1051         Reviewed by Ryosuke Niwa.
1052
1053         The first thing done by createUninitialized() is check if the length passed
1054         is zero. Internally, there are many cases for which we know the check will never succeed.
1055
1056         Clang is usually really smart for those kind of things, but there are a few cases where
1057         the condition to avoid returning empty() is not simply a check for the length.
1058         This patch adds an internal initializer to deal with that.
1059
1060         * wtf/text/StringImpl.cpp:
1061         (WTF::StringImpl::createUninitializedInternal):
1062         (WTF::StringImpl::createUninitializedInternalNonEmpty):
1063         (WTF::StringImpl::createInternal): Create internal has a special case for null pointer
1064         for the characters. The test also check length, the second check for length cannot fail.
1065         (WTF::StringImpl::create8BitIfPossible): ditto.
1066         (WTF::StringImpl::lower): 3 of the calls cannot be reached for empty length. On an empty length,
1067         the test for (noUpper && !(ored & ~0x7F)) would have caused the function to return "this".
1068
1069         For the last createUninitialized(), there is no guarantee the realLength is not zero.
1070
1071         (WTF::StringImpl::replace): The first thing we do in replace(UChar,UChar) is check if there is anything
1072         to replace. The check for length will never succeed as there must be a character to replace at that point.
1073         * wtf/text/StringImpl.h:
1074
1075 2013-08-02  Mark Lam  <mark.lam@apple.com>
1076
1077         Gardening: Touched a line in Platform.h to get all bots to do a clean build.
1078
1079         Not reviewed.
1080
1081         * wtf/Platform.h:
1082
1083 2013-08-02  Mikhail Pozdnyakov  <mikhail.pozdnyakov@intel.com>
1084
1085         Check WTF::Vector size with '0' inline capacity
1086         https://bugs.webkit.org/show_bug.cgi?id=119397
1087
1088         Reviewed by Andreas Kling.
1089
1090         Putting in place the compile assertion that had been removed with r153514.
1091
1092         * wtf/SizeLimits.cpp:
1093
1094 2013-07-26  Mark Rowe  <mrowe@apple.com>
1095
1096         <http://webkit.org/b/119169> RetainPtr should support ARC for Objective-C objects.
1097
1098         While RetainPtr is not necessary under ARC, having it available makes it easier to transition
1099         existing code from manual retain / release to ARC.
1100
1101         Under ARC, the object member of RetainPtr is treated as a strong reference by the compiler.
1102         This means that merely assigning to the member variable is sufficient to retain the object,
1103         and clearing the member variable is sufficient to release it. We still need to explicitly
1104         CFRetain / CFRelease CoreFoundation types so the explicit calls to these functions are
1105         moved in to helper functions and overloading is used to have the Objective-C object versions
1106         of them be no-ops under ARC.
1107
1108         Reviewed by Anders Carlsson.
1109
1110         * wtf/RetainPtr.h:
1111         (WTF::retain): Continue to always CFRetain / CFRelease CoreFoundation objects. Only CFRetain / CFRelease
1112         Objective-C objects when using manual retain / release.
1113         (WTF::release): Ditto.
1114         (WTF::adoptNSReference): Adopting references will be handled automatically by the compiler
1115         when possible under ARC by eliminating redundant retain / release pairs.
1116         (WTF::RetainPtr::ImplicitConversionToBoolIsNotAllowed): A new method that exists only to be used by the
1117         conversion to the unspecified bool type.
1118         (WTF::RetainPtr::operator UnspecifiedBoolType): Switch to using a pointer to a member function as the
1119         unspecified bool type to avoid warnings from the compiler when casting Objective-C object types under ARC.
1120
1121         (WTF::RetainPtr::RetainPtr): Switch to our retain / release helper functions.
1122         (WTF::RetainPtr::~RetainPtr): Ditto.
1123         (WTF::::RetainPtr): Ditto.
1124         (WTF::::clear): Ditto.
1125         (WTF::=): Ditto.
1126         (WTF::adoptCF): Annotate the argument with CF_RELEASES_ARGUMENT on both the declaration and the definition.
1127         (WTF::adoptNS): Ditto for NS_RELEASES_ARGUMENT.
1128
1129 2013-08-01  Mark Rowe  <mrowe@apple.com>
1130
1131         <rdar://problem/14235491> FastMalloc zone enumerator responding to MALLOC_PTR_REGION_RANGE_TYPE with individual allocations
1132
1133         Teach PageMapMemoryUsageRecorder::recordPendingRegions to only record data of the type that it's asked for.
1134         This also fixes the vmmap output to associate some regions with the FastMalloc malloc zone that were previously
1135         associated with it only via the VM tag, meaning they were incorrectly being omitted from the malloc statistics
1136         section of the report.
1137
1138         Reviewed by Dan Bernstein.
1139
1140         * wtf/FastMalloc.cpp:
1141         (WTF::PageMapMemoryUsageRecorder::recordPendingRegions): Report the individual allocations only when requested. Add
1142         the ability to report the regions containing pointers separately from the allocations.
1143
1144 2013-08-01  Mark Rowe  <mrowe@apple.com>
1145
1146         <rdar://problem/14528244> False-positive leaks from FastMalloc.
1147
1148         A logic error in the page map enumeration code within FastMalloc could result in a subset of the memory regions
1149         owned by FastMalloc being skipped by the malloc zone enumeration code used by leaks and other performance tools.
1150         If the only reference to an allocated object lived within one of the skipped memory regions, leaks would believe
1151         it had been leaked since it would not find any references to the object.
1152
1153         The logic error manifested when a FastMalloc span owned a region of memory that crossed a 16MB address space boundary,
1154         and when there was one or more other spans immediately after it in the address space. Crossing the 16MB address space
1155         boundary means that the start and end points of the span are in different leaf nodes of the page map trie, and the
1156         code within the page map's visitValues method didn't correctly account this case when skipping to the end of the span
1157         after visiting it. It would resume iterating from the start of the next leaf node rather than continuing to skip values
1158         until the end of the span was passed. The value representing the end of the span would then be processed as if it were
1159         the start of a new span, and more values would be skipped even though they may contain actual spans.
1160
1161         The solution is to rework the algorithm used in visitValues so that it will skip the correct number of values even when
1162         some of the values are in different leaf nodes. This is a more involved change than it may seem since it's also necessary
1163         to deal with the case where a memory region spans two separate root nodes, which can happen if the region happens to cross
1164         a 64GB boundary in the address space.
1165
1166         Reviewed by Geoff Garen.
1167
1168         * wtf/TCPageMap.h:
1169         (TCMalloc_PageMap3::visitValues): Use a single loop to iterate, with the loop index being the key in to the page map in the
1170         same form as used by get and set. This allows us to correctly deal with the index being skipped to a different intermediate or
1171         root node as a result of visiting a span that crosses a 16MB boundary in memory.
1172         (TCMalloc_PageMap2::visitValues): Ditto, but without having to deal with intermediate nodes.
1173
1174 2013-08-01  Ruth Fong  <ruth_fong@apple.com>
1175
1176         [Forms: color] <input type='color'> popover color well implementation
1177         <rdar://problem/14411008> and https://bugs.webkit.org/show_bug.cgi?id=119356
1178
1179         Reviewed by Benjamin Poulain.
1180
1181         * wtf/FeatureDefines.h: Added and enabled INPUT_TYPE_COLOR_POPOVER.
1182
1183 2013-08-01  Simon Fraser  <simon.fraser@apple.com>
1184
1185         REGRESSION(r145592): AutodrainedPool.h. RunLoopTimer.h, SchedulePair.h are being copied into the wrong location
1186         https://bugs.webkit.org/show_bug.cgi?id=112833
1187
1188         Reviewed by Sam Weinig.
1189         
1190         AutodrainedPool.h and SchedulePair.h should just be project headers, not
1191         private headers, so they get copied into <build dir>/usr/local/include/wtf
1192         not <build dir>/usr/local/include
1193
1194         * WTF.xcodeproj/project.pbxproj:
1195
1196 2013-07-31  Ruth Fong  <ruth_fong@apple.com>
1197
1198         <input type=color> Mac UI behaviour
1199         <rdar://problem/10269922> and https://bugs.webkit.org/show_bug.cgi?id=61276
1200
1201         Reviewed by Brady Eidson.
1202
1203         * wtf/FeatureDefines.h: Enabled INPUT_TYPE_COLOR on Mac port.
1204
1205 2013-07-31  Andreas Kling  <akling@apple.com>
1206
1207         Shrink Vectors with inline capacity.
1208         <http://webkit.org/b/119295>
1209         <rdar://problem/14598360>
1210
1211         Reviewed by Anders Carlsson.
1212
1213         Pack Vector::m_size next to VectorBufferBase::m_capacity so there's no space wasted
1214         on padding when sizeof(T) >= 8. Since m_size is not conceptually part of the buffer,
1215         I just using'ed it into Vector.
1216
1217         * wtf/SizeLimits.cpp:
1218         * wtf/Vector.h:
1219         (WTF::VectorBufferBase::VectorBufferBase):
1220         (WTF::VectorBuffer::VectorBuffer):
1221         (WTF::Vector::Vector):
1222         (WTF::::Vector):
1223
1224 2013-07-30  Patrick Gansterer  <paroga@webkit.org>
1225
1226         Move WindowsExtras.h from WebCore to WTF
1227         https://bugs.webkit.org/show_bug.cgi?id=118125
1228
1229         Reviewed by Anders Carlsson.
1230
1231         Move it to WTF to be able to use the functions in WTF too.
1232
1233         * wtf/WindowsExtras.h: Renamed from Source/WebCore/platform/win/WindowsExtras.h.
1234         (WTF::getRegistryValue):
1235         (WTF::getWindowPointer):
1236         (WTF::setWindowPointer):
1237         * wtf/win/MainThreadWin.cpp:
1238         (WTF::initializeMainThreadPlatform):
1239
1240 2013-07-29  Carlos Garcia Campos  <cgarcia@igalia.com>
1241
1242         Unreviewed. Fix make distcheck.
1243
1244         * GNUmakefile.list.am: Add missing files to compilation.
1245
1246 2013-07-29  Mark Rowe  <mrowe@apple.com>
1247
1248         <rdar://problem/14528244> Tons of FastMalloc leaks reported by leaks of objects that have already been deallocated
1249
1250         Reviewed by Sam Weinig.
1251
1252         * wtf/FastMalloc.cpp:
1253         (WTF::TCMalloc_Central_FreeList::enumerateFreeObjects): Mark objects in the transfer cache as being free.
1254
1255 2013-07-29  Zan Dobersek  <zdobersek@igalia.com>
1256
1257         Reintroduce convenience CheckedInt*, CheckedUint* types
1258         https://bugs.webkit.org/show_bug.cgi?id=119213
1259
1260         Reviewed by Oliver Hunt.
1261
1262         Reintroduce CheckedInt* and CheckedUint* types that were previously provided for convenience
1263         through the CheckedInt header that was removed in r153095. The types are now based on the
1264         Checked class, using the RecordOverflow class as the overflow handler.
1265
1266         * wtf/CheckedArithmetic.h:
1267
1268 2013-07-27  Ryosuke Niwa  <rniwa@webkit.org>
1269
1270         REGRESSION(r153380): Can't open messages on Gmail
1271         https://bugs.webkit.org/show_bug.cgi?id=119165
1272
1273         Reviewed by Andreas Kling.
1274
1275         This bug was caused by r153380. The bug doesn't reproduce as long as WebKit is built by clang 4.2 and later
1276         or final is disabled (it could be clang 4.1 and later but we don't have information about that).
1277
1278         Fix the bug by disabling final on earlier versions of clang. Unfortunately we can only check versions of
1279         Apple clang since __clang_major__ and __clang_minor__ are vendor dependent.
1280
1281         * wtf/Compiler.h:
1282
1283 2013-07-26  Oliver Hunt <oliver@apple.com>
1284
1285         ASSERT failure in wtf/CheckedBoolean.h line 43 on Windows
1286         https://bugs.webkit.org/show_bug.cgi?id=119170
1287
1288         Reviewed by Michael Saboff.
1289
1290         Added a copy constructor to CheckedBoolean.
1291
1292         * wtf/CheckedBoolean.h:
1293         (CheckedBoolean::CheckedBoolean):
1294
1295 2013-07-25  Brent Fulgham  <bfulgham@apple.com>
1296
1297         [Windows] Unreviewed build fix.
1298
1299         * WTF.vcxproj/WTF.vcxproj: Add missing SixCharacterHash.h,.cpp files.
1300         * WTF.vcxproj/WTF.vcxproj.filters: Ditto.
1301         * wtf/NumberOfCores.h: Add export macro to numberOfProcessorCores.
1302         * wtf/PrintStream.h: Add export macro to dumpCharacter.
1303         * wtf/SixCharacterHash.h: Add export macro to sixCharacterHashStringToInteger
1304         and integerToSixCharacterHashString.
1305         * wtf/text/CString.h: Add export macro to hash and equal methods.
1306         (WTF::CStringHash::hash): Add export macro.
1307
1308 2013-07-25  peavo@outlook.com  <peavo@outlook.com>
1309
1310         [Windows] Provide ASM implemenation of 8-bit compare-and-swap
1311         https://bugs.webkit.org/show_bug.cgi?id=119084
1312
1313         Reviewed by Brent Fulgham.
1314
1315         * wtf/Atomics.h:
1316         (WTF::weakCompareAndSwap): Add a 32-bit X86 Assembly path for
1317         Windows build.
1318
1319 2013-07-25  Brent Fulgham  <bfulgham@apple.com>
1320
1321         [Windows] Unreviewed build fix.
1322
1323         * WTF.vcxproj/WTF.vcxproj: Add missing CompilationThread.h,.cpp
1324         * WTF.vcxproj/WTF.vcxproj.filters: Ditto.
1325
1326 2013-07-25  Michael Brüning  <michael.bruning@digia.com>
1327
1328         Fix Windows build after r153134.
1329         https://bugs.webkit.org/show_bug.cgi?id=119090
1330
1331         Reviewed by Oliver Hunt.
1332
1333         Add USE(PTHREADS) guards around pthread specific code
1334         for now. This will cause isCompilationThread to always
1335         return false on non pthread platforms such as Windows.
1336
1337         We might be able to use the Windows one-time initialization
1338         for this, but this is only available from Windows Vista on.
1339
1340         * wtf/CompilationThread.cpp:
1341         (WTF::initializeCompilationThreads):
1342
1343 2013-07-25  Allan Sandfeld Jensen  <allan.jensen@digia.com>
1344
1345         Fix windows build after FTL upstream
1346
1347         Unreviewed build fix.
1348
1349         * wtf/Atomics.h:
1350         (WTF::weakCompareAndSwap):
1351
1352 2013-07-25  Ryuan Choi  <ryuan.choi@samsung.com>
1353
1354         Unreviewed, build fix on the EFL port.
1355
1356         * wtf/CMakeLists.txt: Added SixCharacterHash.cpp
1357
1358 2013-07-25  Gabor Rapcsanyi  <rgabor@webkit.org>
1359
1360         Unreviewed, build fix on the Qt port.
1361
1362         * WTF.pro: Add additional build files for the FTL.
1363
1364 2013-07-25  Zan Dobersek  <zdobersek@igalia.com>
1365
1366         Unreviewed, further GTK build fixing.
1367
1368         * GNUmakefile.am: Make libWTF.la depend on any changes made to the build targets list.
1369         * GNUmakefile.list.am: Add SixCharacterHash source files to the build.
1370
1371 2013-07-25  Csaba Osztrogonác  <ossy@webkit.org>
1372
1373         [GTK] Similar fix to r153304.
1374
1375         * GNUmakefile.list.am:
1376
1377 2013-07-25  Grzegorz Czajkowski  <g.czajkowski@samsung.com>
1378
1379         Build break in debug after r153134: StringImpl.h:640: undefined reference to `WTF::isCompilationThread()
1380         https://bugs.webkit.org/show_bug.cgi?id=119077
1381
1382         Reviewed by Christophe Dumez.
1383
1384         * wtf/CMakeLists.txt:
1385         Added CompilationThread.{h/cpp}.
1386
1387 2013-07-24  Filip Pizlo  <fpizlo@apple.com>
1388
1389         fourthTier: DFG IR dumps should be easier to read
1390         https://bugs.webkit.org/show_bug.cgi?id=119050
1391
1392         Reviewed by Mark Hahnenberg.
1393         
1394         Added support for dumping values within a context. By default, if you say
1395         print(inContext(value, context)) it calls value.dumpInContext(out, context)
1396         instead of value.dump(out).
1397         
1398         Hoisted the support for six-character hashes out of JSC::CodeBlockHash into
1399         WTF, in the form of SixCharacterHash.h.
1400         
1401         Added a helper for creating dump contexts where the inContext() dump will
1402         just use a short string hash to "name" the object being dumped, and then
1403         will print out the full dumps in an endnote to your dump.
1404         
1405         Added support for using CString as a hashtable key.
1406
1407         * WTF.xcodeproj/project.pbxproj:
1408         * wtf/PrintStream.h:
1409         (WTF):
1410         (ValueInContext):
1411         (WTF::ValueInContext::ValueInContext):
1412         (WTF::ValueInContext::dump):
1413         (WTF::inContext):
1414         * wtf/SixCharacterHash.cpp: Added.
1415         (WTF):
1416         (WTF::sixCharacterHashStringToInteger):
1417         (WTF::integerToSixCharacterHashString):
1418         * wtf/SixCharacterHash.h: Added.
1419         (WTF):
1420         * wtf/StringHashDumpContext.h: Added.
1421         (WTF):
1422         (StringHashDumpContext):
1423         (WTF::StringHashDumpContext::StringHashDumpContext):
1424         (WTF::StringHashDumpContext::getID):
1425         (WTF::StringHashDumpContext::dumpBrief):
1426         (WTF::StringHashDumpContext::brief):
1427         (WTF::StringHashDumpContext::isEmpty):
1428         (WTF::StringHashDumpContext::dump):
1429         * wtf/text/CString.cpp:
1430         (WTF::CString::hash):
1431         (WTF):
1432         (WTF::operator<):
1433         (WTF::CStringHash::equal):
1434         * wtf/text/CString.h:
1435         (WTF::CString::CString):
1436         (CString):
1437         (WTF::CString::isHashTableDeletedValue):
1438         (WTF):
1439         (WTF::CStringHash::hash):
1440         (CStringHash):
1441
1442 2013-07-21  Filip Pizlo  <fpizlo@apple.com>
1443
1444         fourthTier: DFG Nodes should be able to abstractly tell you what they read and what they write
1445         https://bugs.webkit.org/show_bug.cgi?id=118910
1446
1447         Reviewed by Sam Weinig.
1448         
1449         Fix compile goof in sortedListDump().
1450
1451         * wtf/ListDump.h:
1452         (WTF::sortedListDump):
1453
1454 2013-07-16  Filip Pizlo  <fpizlo@apple.com>
1455
1456         fourthTier: NaturalLoops should be able to quickly answer questions like "what loops own this basic block"
1457         https://bugs.webkit.org/show_bug.cgi?id=118750
1458
1459         Reviewed by Mark Hahnenberg.
1460         
1461         Add a utility function for inserting an element into a vector that has bounded size,
1462         and where the insertion causes things to drop off the end.
1463
1464         * wtf/StdLibExtras.h:
1465         (WTF):
1466         (WTF::insertIntoBoundedVector):
1467
1468 2013-07-12  Filip Pizlo  <fpizlo@apple.com>
1469
1470         fourthTier: DFG should have an SSA form for use by FTL
1471         https://bugs.webkit.org/show_bug.cgi?id=118338
1472
1473         Reviewed by Mark Hahnenberg.
1474         
1475         - Extend variadicity of PrintStream and dataLog.
1476         
1477         - Give HashSet the ability to add a span of things.
1478         
1479         - Give HashSet the ability to == another HashSet.
1480         
1481         - Note FIXME's in HashTable concerning copying performance, that affects
1482           the way that the DFG now uses HashSets and HashMaps.
1483         
1484         - Factor out the bulk-insertion logic of JSC::DFG::InsertionSet into
1485           WTF::Insertion, so that it can be used in more places.
1486         
1487         - Create a dumper for lists and maps.
1488
1489         * WTF.xcodeproj/project.pbxproj:
1490         * wtf/DataLog.h:
1491         (WTF):
1492         (WTF::dataLog):
1493         * wtf/HashSet.h:
1494         (HashSet):
1495         (WTF):
1496         (WTF::::add):
1497         (WTF::=):
1498         * wtf/HashTable.h:
1499         (WTF::::HashTable):
1500         (WTF::=):
1501         * wtf/Insertion.h: Added.
1502         (WTF):
1503         (Insertion):
1504         (WTF::Insertion::Insertion):
1505         (WTF::Insertion::index):
1506         (WTF::Insertion::element):
1507         (WTF::Insertion::operator<):
1508         (WTF::executeInsertions):
1509         * wtf/ListDump.h: Added.
1510         (WTF):
1511         (ListDump):
1512         (WTF::ListDump::ListDump):
1513         (WTF::ListDump::dump):
1514         (MapDump):
1515         (WTF::MapDump::MapDump):
1516         (WTF::MapDump::dump):
1517         (WTF::listDump):
1518         (WTF::sortedListDump):
1519         (WTF::lessThan):
1520         (WTF::mapDump):
1521         (WTF::sortedMapDump):
1522         * wtf/PrintStream.h:
1523         (PrintStream):
1524         (WTF::PrintStream::print):
1525
1526 2013-07-02  Filip Pizlo  <fpizlo@apple.com>
1527
1528         Unreviewed, fix 32-bit build.
1529
1530         * wtf/Platform.h:
1531
1532 2013-07-02  Filip Pizlo  <fpizlo@apple.com>
1533
1534         fourthTier: FTL should use the equivalent of llvm opt -O2 by default
1535         https://bugs.webkit.org/show_bug.cgi?id=118311
1536
1537         Reviewed by Mark Hahnenberg.
1538         
1539         * wtf/LLVMHeaders.h:
1540
1541 2013-06-27  Filip Pizlo  <fpizlo@apple.com>
1542
1543         fourthTier: JSC's disassembly infrastructure should be able to disassemble the code that LLVM generates
1544         https://bugs.webkit.org/show_bug.cgi?id=118148
1545
1546         Reviewed by Anders Carlsson.
1547         
1548         We now use LLVM for two things: disassembler and FTL. Separate out the question
1549         of whether we have LLVM (HAVE(LLVM)) from whether we want to use the LLVM
1550         disassembler (USE(LLVM_DISASSEMBLER)) and whether we enable the FTL
1551         (ENABLE(FTL_JIT)).
1552         
1553         Also move the cruft for including LLVM headers into WTF since now we use it in
1554         a bunch of places, not all related to FTL. There's no obvious place to put that
1555         file in JSC so I put it in WTF.
1556
1557         * WTF.xcodeproj/project.pbxproj:
1558         * wtf/LLVMHeaders.h: Copied from Source/JavaScriptCore/ftl/FTLLLVMHeaders.h.
1559         * wtf/Platform.h:
1560
1561 2013-06-25  Filip Pizlo  <fpizlo@apple.com>
1562
1563         fourthTier: DFG should support switch_string
1564         https://bugs.webkit.org/show_bug.cgi?id=117967
1565
1566         Reviewed by Sam Weinig.
1567         
1568         Make it possible to compare a RefPtr<StringImpl> and a StringImpl* without
1569         having to ref the StringImpl.
1570
1571         * wtf/text/StringHash.h:
1572         (WTF::StringHash::equal):
1573
1574 2013-06-24  Filip Pizlo  <fpizlo@apple.com>
1575
1576         fourthTier: Count external memory usage towards heap footprint
1577         https://bugs.webkit.org/show_bug.cgi?id=117948
1578
1579         Reviewed by Geoffrey Garen.
1580
1581         Expose some functionality needed for properly measuring StringImpl footprint.
1582
1583         * wtf/Atomics.h:
1584         (WTF::weakCompareAndSwapSize):
1585         (WTF):
1586         * wtf/MathExtras.h:
1587         (divideRoundedUp):
1588         * wtf/text/StringImpl.h:
1589         (WTF::StringImpl::cost):
1590         (StringImpl):
1591         (WTF::StringImpl::costDuringGC):
1592         (WTF::StringImpl::refCount):
1593
1594 2013-06-23  Filip Pizlo  <fpizlo@apple.com>
1595
1596         fourthTier: DFG should optimize identifier string equality
1597         https://bugs.webkit.org/show_bug.cgi?id=117920
1598
1599         Reviewed by Sam Weinig.
1600
1601         Note that this ChangeLog was supposed to be committed in r151890.
1602         
1603         Expose the IsIdentifier bit to the JIT.
1604         
1605         * wtf/text/StringImpl.h:
1606         (WTF::StringImpl::flagIsIdentifier):
1607
1608 2013-06-18  Filip Pizlo  <fpizlo@apple.com>
1609
1610         fourthTier: DFG should have switch_char
1611         https://bugs.webkit.org/show_bug.cgi?id=117710
1612
1613         Reviewed by Michael Saboff.
1614         
1615         I wanted to be able to say stringImpl->at(index), and now I can!
1616
1617         Also made it possible to convert a UChar to a utf8 CString without
1618         allocating a StringImpl.
1619
1620         * wtf/text/StringImpl.cpp:
1621         (WTF::StringImpl::utf8Impl):
1622         (WTF):
1623         (WTF::StringImpl::utf8ForCharacters):
1624         (WTF::StringImpl::utf8ForRange):
1625         * wtf/text/StringImpl.h:
1626         (StringImpl):
1627         (WTF::StringImpl::at):
1628         (WTF::StringImpl::operator[]):
1629
1630 2013-06-15  Filip Pizlo  <fpizlo@apple.com>
1631
1632         fourthTier: Add CFG simplification for Switch
1633         https://bugs.webkit.org/show_bug.cgi?id=117677
1634
1635         Reviewed by Mark Hahnenberg.
1636
1637         * wtf/TriState.h:
1638         * wtf/text/StringImpl.h:
1639
1640 2013-06-15  Filip Pizlo  <fpizlo@apple.com>
1641
1642         Printing a StringImpl* should really guard against NULL
1643         https://bugs.webkit.org/show_bug.cgi?id=117675
1644
1645         Reviewed by Mark Hahnenberg.
1646
1647         * wtf/PrintStream.cpp:
1648         (WTF::printInternal):
1649
1650 2013-06-11  Filip Pizlo  <fpizlo@apple.com>
1651
1652         fourthTier: DFG should support op_in and it should use patching to make it fast
1653         https://bugs.webkit.org/show_bug.cgi?id=117385
1654
1655         Reviewed by Geoffrey Garen.
1656         
1657         Now if you pass a null StringImpl* then something will still get printed instead
1658         of crashing. I figure that this is broadly useful for debug code, and I make use
1659         of it in the JSC portion of this patch.
1660
1661         * wtf/PrintStream.cpp:
1662         (WTF::printInternal):
1663
1664 2013-06-09  Filip Pizlo  <fpizlo@apple.com>
1665
1666         Unreviewed, fix build. On some compilers the automatic coercion from WTF::String to NSString*
1667         causes operator[] to appear ambiguous. One way around this is to make WTF::String behave like
1668         most of our other classes: at(unsigned) is always a valid synonym for operator[](unsigned).
1669
1670         * wtf/text/WTFString.h:
1671         (WTF::String::at):
1672         (WTF::String::operator[]):
1673
1674 2013-06-08  Filip Pizlo  <fpizlo@apple.com>
1675
1676         fourthTier: Recursive deadlock in DFG::ByteCodeParser
1677         https://bugs.webkit.org/show_bug.cgi?id=117376
1678
1679         Reviewed by Mark Hahnenberg.
1680         
1681         I've often wanted to leave a lock early. Now I have that power!
1682
1683         * wtf/Locker.h:
1684         (WTF::Locker::Locker):
1685         (WTF::Locker::~Locker):
1686         (Locker):
1687         (WTF::Locker::unlockEarly):
1688         (WTF::Locker::lock):
1689
1690 2013-05-27  Filip Pizlo  <fpizlo@apple.com>
1691
1692         It should be possible to record heap operations (both FastMalloc and JSC GC)
1693         https://bugs.webkit.org/show_bug.cgi?id=116848
1694
1695         Reviewed by Mark Hahnenberg.
1696
1697         * WTF.xcodeproj/project.pbxproj:
1698         * wtf/DataLog.cpp:
1699         (WTF):
1700         (WTF::initializeLogFileOnce):
1701         * wtf/FastMalloc.cpp:
1702         (WTF::TCMalloc_ThreadCache::CreateCacheIfNecessary):
1703         * wtf/Platform.h:
1704
1705 2013-05-21  Filip Pizlo  <fpizlo@apple.com>
1706
1707         fourthTier: DFG should be able to run on a separate thread
1708         https://bugs.webkit.org/show_bug.cgi?id=112839
1709
1710         Reviewed by Geoffrey Garen.
1711         
1712         * wtf/ByteSpinLock.h:
1713         Make it non-copyable. We previously had bugs where we used ByteSpinLock as a locker.
1714         Clearly that's bad.
1715
1716         * wtf/MetaAllocatorHandle.h:
1717         Make it thread-safe ref-counted, since we may now be passing them between the
1718         concurrent JIT thread and the main thread.
1719
1720         * wtf/Vector.h:
1721         (WTF::Vector::takeLast):
1722         I've wanted this method for ages, and now I finally added.
1723
1724 2013-04-30  Filip Pizlo  <fpizlo@apple.com>
1725
1726         fourthTier: DFG tries to ref/deref StringImpls in a ton of places
1727         https://bugs.webkit.org/show_bug.cgi?id=115300
1728
1729         Reviewed by Geoffrey Garen.
1730         
1731         Make it possible to do more things directly to StringImpl*'s, including being
1732         able to directly do utf8 conversion on a substring without creating the
1733         substring first.
1734         
1735         Add assertions to StringImpl that it isn't being ref/deref'd from the
1736         compilation thread.
1737
1738         * wtf/PrintStream.cpp:
1739         (WTF::printInternal):
1740         (WTF):
1741         * wtf/PrintStream.h:
1742         (WTF):
1743         (WTF::printInternal):
1744         * wtf/StringPrintStream.h:
1745         (WTF):
1746         (WTF::toCString):
1747         * wtf/text/StringImpl.cpp:
1748         (WTF::StringImpl::utf8ForRange):
1749         (WTF::StringImpl::utf8):
1750         (WTF):
1751         * wtf/text/StringImpl.h:
1752         (StringImpl):
1753         (WTF::StringImpl::hasAtLeastOneRef):
1754         (WTF::StringImpl::ref):
1755         (WTF::StringImpl::deref):
1756
1757 2013-04-29  Filip Pizlo  <fpizlo@apple.com>
1758
1759         fourthTier: String::utf8() should also be available as StringImpl::utf8() so that you don't have to ref() a StringImpl just to get its utf8()
1760         https://bugs.webkit.org/show_bug.cgi?id=115393
1761
1762         Reviewed by Geoffrey Garen.
1763
1764         * WTF.xcodeproj/project.pbxproj:
1765         * wtf/text/ConversionMode.h: Added.
1766         (WTF):
1767         * wtf/text/StringImpl.cpp:
1768         (WTF):
1769         (WTF::putUTF8Triple):
1770         (WTF::StringImpl::utf8):
1771         * wtf/text/StringImpl.h:
1772         (StringImpl):
1773         * wtf/text/WTFString.cpp:
1774         (WTF):
1775         (WTF::String::utf8):
1776         * wtf/text/WTFString.h:
1777         (String):
1778
1779 2013-07-16  Oliver Hunt <oliver@apple.com>
1780
1781         Merge dfgFourthTier r149301
1782
1783     2013-04-28  Filip Pizlo  <fpizlo@apple.com>
1784
1785         fourthTier: ASSERT that commonly used not-thread-safe methods in the runtime are not being called during compilation
1786         https://bugs.webkit.org/show_bug.cgi?id=115297
1787
1788         Reviewed by Geoffrey Garen.
1789         
1790         Taught WTF the notion of compilation threads. This allows all parts of our stack
1791         to assert that we're not being called from a JSC compilation thread. This is in
1792         WTF because it will probably end up being used in StringImpl and WTFString.
1793
1794         * WTF.xcodeproj/project.pbxproj:
1795         * wtf/CompilationThread.cpp: Added.
1796         (WTF):
1797         (WTF::initializeCompilationThreadsOnce):
1798         (WTF::initializeCompilationThreads):
1799         (WTF::isCompilationThread):
1800         (WTF::exchangeIsCompilationThread):
1801         * wtf/CompilationThread.h: Added.
1802         (WTF):
1803         (CompilationScope):
1804         (WTF::CompilationScope::CompilationScope):
1805         (WTF::CompilationScope::~CompilationScope):
1806         (WTF::CompilationScope::leaveEarly):
1807
1808 2013-07-16  Oliver Hunt <oliver@apple.com>
1809
1810         Merge dfgFourthTier r148836
1811
1812     2013-04-21  Filip Pizlo  <fpizlo@apple.com>
1813
1814         fourthTier: It should be possible to query WatchpointSets, and add Watchpoints, even if the compiler is running in another thread
1815         https://bugs.webkit.org/show_bug.cgi?id=114909
1816
1817         Reviewed by Oliver Hunt.
1818         
1819         Harden our notions of memory fences, now that we're doing racy algorithms.
1820
1821         * wtf/Atomics.h:
1822         (WTF):
1823         (WTF::compilerFence):
1824         (WTF::armV7_dmb):
1825         (WTF::armV7_dmb_st):
1826         (WTF::loadLoadFence):
1827         (WTF::loadStoreFence):
1828         (WTF::storeLoadFence):
1829         (WTF::storeStoreFence):
1830         (WTF::memoryBarrierAfterLock):
1831         (WTF::memoryBarrierBeforeUnlock):
1832         (WTF::x86_mfence):
1833
1834 2013-07-16  Oliver Hunt <oliver@apple.com>
1835
1836         Merge dfgFourthTier r148804
1837
1838     2013-04-20  Filip Pizlo  <fpizlo@apple.com>
1839
1840         fourthTier: value profiles and array profiles should be thread-safe enough to be accessible in a concurrent compilation thread
1841         https://bugs.webkit.org/show_bug.cgi?id=114906
1842
1843         Reviewed by Oliver Hunt.
1844         
1845         Add ability to abstract whether or not the CodeBlock requires locking at all,
1846         since some platforms may not support the byte spin-locking and/or may not want
1847         to, if they turn off concurrent JIT.
1848
1849         * WTF.xcodeproj/project.pbxproj:
1850         * wtf/ByteSpinLock.h:
1851         * wtf/NoLock.h: Added.
1852         (WTF):
1853         (NoLock):
1854         (WTF::NoLock::lock):
1855         (WTF::NoLock::unlock):
1856         (WTF::NoLock::isHeld):
1857         * wtf/Platform.h:
1858
1859 2013-04-17  Filip Pizlo  <fpizlo@apple.com>
1860
1861         fourthTier: all inline caches should thread-safe enough to allow a concurrent compilation thread to read them safely
1862         https://bugs.webkit.org/show_bug.cgi?id=114762
1863
1864         Reviewed by Mark Hahnenberg.
1865         
1866         Implemented a new spinlock that is optimized for compactness, by using just a byte.
1867         This will be useful as we start using fine-grained locking on a bunch of places.
1868         
1869         At some point I'll make these byte-sized spinlocks into adaptive mutexes, but for
1870         now I think it's fine to do the evil thing and use spinning particularly since we
1871         only use them for short critical sections.
1872
1873         * WTF.xcodeproj/project.pbxproj:
1874         * wtf/Atomics.h:
1875         (WTF):
1876         (WTF::weakCompareAndSwap):
1877         * wtf/ByteSpinLock.h: Added.
1878         (WTF):
1879         (ByteSpinLock):
1880         (WTF::ByteSpinLock::ByteSpinLock):
1881         (WTF::ByteSpinLock::lock):
1882         (WTF::ByteSpinLock::unlock):
1883         (WTF::ByteSpinLock::isHeld):
1884         * wtf/ThreadingPrimitives.h:
1885         (WTF::pauseBriefly):
1886         (WTF):
1887
1888 2013-04-12  Filip Pizlo  <fpizlo@apple.com>
1889
1890         fourthTier: FTL should have OSR exit
1891         https://bugs.webkit.org/show_bug.cgi?id=113623
1892
1893         Reviewed by Oliver Hunt.
1894         
1895         Finally make toCString() somewhat variadic.
1896
1897         * wtf/StringPrintStream.h:
1898         (WTF):
1899         (WTF::toCString):
1900
1901 2013-03-31  Filip Pizlo  <fpizlo@apple.com>
1902
1903         https://bugs.webkit.org/show_bug.cgi?id=113656
1904         Fix Sam's nits.
1905
1906         Unreviewed.
1907         
1908         Forgot to land these as part of http://trac.webkit.org/changeset/147299.
1909
1910         * wtf/MathExtras.h:
1911         (isGreaterThanNonZeroPowerOfTwo):
1912
1913 2013-03-29  Filip Pizlo  <fpizlo@apple.com>
1914
1915         fourthTier: FTL JIT should be able run some simple function
1916         https://bugs.webkit.org/show_bug.cgi?id=113481
1917
1918         Reviewed by Geoffrey Garen.
1919
1920         * wtf/Platform.h:
1921
1922 2013-07-22  Benjamin Poulain  <benjamin@webkit.org>
1923
1924         String::lower() - Skip to slow path on the first failure
1925         https://bugs.webkit.org/show_bug.cgi?id=118885
1926
1927         Reviewed by Andreas Kling.
1928
1929         In the 8 bits case, we don't need to know the state of the full string before changing characters
1930         to their lowercase variant.
1931         Just fail immediately and start transforming characters from the point of failure.
1932
1933         This avoid reading the string twice when the uppercase character is not at the end of the string.
1934
1935         * wtf/text/StringImpl.cpp:
1936         (WTF::StringImpl::lower):
1937
1938 2013-07-22  Brent Fulgham  <bfulgham@apple.com>
1939
1940         [Windows] Unreviewed build fix.
1941
1942         * WTF.vcxproj/WTFGenerated.make: Stop triggering a "Build All" when things have not changed.
1943
1944 2013-07-19  Alex Christensen  <achristensen@apple.com>
1945
1946         Added x64 configuration to Visual Studio build.
1947         https://bugs.webkit.org/show_bug.cgi?id=118888
1948
1949         Reviewed by Brent Fulgham.
1950
1951         * WTF.vcxproj/WTF.vcxproj:
1952         * WTF.vcxproj/WTF.vcxproj.filters:
1953         * WTF.vcxproj/WTFGenerated.vcxproj:
1954
1955 2013-07-18  Benjamin Poulain  <benjamin@webkit.org>
1956
1957         Fix the build after r152881
1958
1959         * wtf/text/StringImpl.cpp:
1960         (WTF::StringImpl::lower):
1961
1962 2013-07-18  Benjamin Poulain  <benjamin@webkit.org>
1963
1964         Little cleaning of StringImpl::lower() and StringImpl::upper() for ARM
1965         https://bugs.webkit.org/show_bug.cgi?id=118831
1966
1967         Reviewed by Gavin Barraclough.
1968
1969         Clean lower() and upper() before trying some optimizations:
1970         -Prefix the code with the empty() case. Otherwise, each descending loop starts with
1971          a check for length == 0.
1972         -Change ored to a 32 bits registers. ARM only has 32 bits registers and access to full word.
1973          To keep the value a UChar, the compiler is adding a bunch of useless value & 0xffff in the loops.
1974         -Change the pointer based loops for index based loops. The compiler does a mighty job at optimizing
1975          those for each architecture. No need to make the code more complex.
1976         -Don't perform the check for int32 unless we need to. The only code limited to int is Unicode::toLower.
1977
1978         * wtf/text/StringImpl.cpp:
1979         (WTF::StringImpl::lower):
1980         (WTF::StringImpl::upper):
1981
1982 2013-07-18  Andreas Kling  <akling@apple.com>
1983
1984         CodeBlock::m_argumentValueProfiles wastes a lot of memory.
1985         <http://webkit.org/b/118852>
1986         <rdar://problem/14481659>
1987
1988         Reviewed by Anders Carlsson.
1989
1990         Add Vector::resizeToFit(size), like resize() but without growth padding.
1991
1992         * wtf/Vector.h:
1993         (WTF::::resizeToFit):
1994
1995 2013-07-17  Benjamin Poulain  <benjamin@webkit.org>
1996
1997         Add a thread safety assertion when creating an AtomicString from a StringImpl
1998         https://bugs.webkit.org/show_bug.cgi?id=118637
1999
2000         Reviewed by Sam Weinig.
2001
2002         The goal is to prevent this kind of use:
2003         -Someone create a String from a StringImpl.
2004         -At some point, the string becomes atomic.
2005         -Later, when the string only has one ref, its ownership is 'passed' to an other thread
2006          without checking String::isSafeToSendToAnotherThread().
2007         -In the thread B, an AtomicString is created from the String.
2008         ->The AtomicString's StringImpl returned is not in the current thread string table.
2009
2010         * wtf/text/AtomicString.cpp:
2011         (WTF::AtomicString::isInAtomicStringTable):
2012         * wtf/text/AtomicString.h:
2013         (WTF::AtomicString::add):
2014
2015 2013-07-17  Benjamin Poulain  <benjamin@webkit.org>
2016
2017         Simplify AtomicString::lower()
2018         https://bugs.webkit.org/show_bug.cgi?id=118719
2019         <rdar://problem/14452883>
2020
2021         Reviewed by Gavin Barraclough.
2022
2023         * wtf/text/AtomicString.cpp:
2024         (WTF::AtomicString::lower): Previously, the code was using a copy constructor for two path
2025         and one regular construction in another path.
2026         Just put the StringImpl where it needs to be instead.
2027
2028 2013-07-15  Benjamin Poulain  <benjamin@webkit.org>
2029
2030         Add a threading assertion to AtomicString::remove
2031         https://bugs.webkit.org/show_bug.cgi?id=118695
2032
2033         Reviewed by Sam Weinig.
2034
2035         * wtf/text/AtomicString.cpp:
2036         (WTF::AtomicString::remove): The destructor of StringImpl remove
2037         the string from the string table if it is atomic. This needs to be done
2038         on the same thread as the one on which the string was added (otherwise the original
2039         table would keep a dangling pointer to a dead string).
2040
2041 2013-07-15  Benjamin Poulain  <benjamin@webkit.org>
2042
2043         Minor cleaning of AtomicString::addSlowCase
2044         https://bugs.webkit.org/show_bug.cgi?id=118615
2045
2046         Reviewed by Geoffrey Garen.
2047
2048         Give the variable a proper name.
2049         Add assertions to clarify the in and out states.
2050
2051         * wtf/text/AtomicString.cpp:
2052         (WTF::AtomicString::addSlowCase):
2053
2054 2013-07-12  Mikhail Pozdnyakov  <mikhail.pozdnyakov@intel.com>
2055
2056         Improve StringImpl::constructInternal() method
2057         https://bugs.webkit.org/show_bug.cgi?id=118503
2058
2059         Reviewed by Benjamin Poulain.
2060
2061         StringImpl::constructInternal used 'if ()' statement to decide which constructor
2062         to invoke hence compiler had to compile both branches even though optimizer would
2063         have then removed one of those, and as the function is inline it could affect
2064         slightly the compilation time.
2065
2066         The problem is solved via template specialization.
2067
2068         * wtf/text/StringImpl.h:
2069         (WTF::LChar):
2070         (WTF::UChar):
2071
2072 2013-07-11  Patrick Gansterer  <paroga@webkit.org>
2073
2074         Remove unused Windows CE files
2075         https://bugs.webkit.org/show_bug.cgi?id=118557
2076
2077         Reviewed by Andreas Kling.
2078
2079         * wtf/wince/FastMallocWinCE.h: Removed.
2080         * wtf/wince/MemoryManager.cpp: Removed.
2081         * wtf/wince/MemoryManager.h: Removed.
2082
2083 2013-07-10  Michael Brüning  <michael.bruning@digia.com>
2084
2085         Workaround for x86 optimizer bug in MSVC 2012.
2086         https://bugs.webkit.org/show_bug.cgi?id=118478
2087
2088         Reviewed by Benjamin Poulain.
2089
2090         This is a workaround for a bug in the x86 MSVC 2012 optimizer.
2091
2092         The problem is that the range comparison gets optimized out when
2093         the templated inline function toASCIIUpper. Copying the methods 
2094         content fixes the problem. 
2095
2096         This is unfortunately not the nicest fix, but the alternative would
2097         be to turn off optimization for StringImpl::upper on the x86 MSVC 2012
2098         build, which might impact overall performance negatively.
2099
2100         * wtf/text/StringImpl.cpp:
2101         (WTF::StringImpl::upper):
2102
2103 2013-07-08  Carlos Garcia Campos  <cgarcia@igalia.com>
2104
2105         Unreviewed. Fix make distcheck.
2106
2107         * GNUmakefile.list.am: Add missing header files.
2108
2109 2013-07-08  Antti Koivisto  <antti@apple.com>
2110
2111         Add Deque::removeLast
2112         https://bugs.webkit.org/show_bug.cgi?id=118466
2113
2114         Reviewed by Andreas Kling.
2115         
2116         Deque can remove both the first and the last element efficiently.
2117         
2118         Test: TestWebKitAPI/Tests/WTF/Deque.cpp
2119
2120         * wtf/Deque.h:
2121         (WTF::::takeLast):
2122         (WTF::::removeLast):
2123
2124 2013-07-08  Zoltan Arvai  <zarvai@inf.u-szeged.hu>
2125
2126         [Qt][Windows] Buildfix after r152426.
2127
2128         Reviewed by Csaba Osztrogonác.
2129
2130         * wtf/Platform.h: Do not include WTFHeaderDetection.h on Qt build.
2131
2132 2013-07-06  Benjamin Poulain  <benjamin@webkit.org>
2133
2134         Fix the performance regressions introduced by r152418
2135         https://bugs.webkit.org/show_bug.cgi?id=118438
2136
2137         Reviewed by Sam Weinig.
2138
2139         * wtf/text/StringImpl.h:
2140         (WTF::equal):
2141         Looping between two arbitrary pointers prevents important loop
2142         optimizations.
2143
2144 2013-07-05  Brent Fulgham  <bfulgham@apple.com>
2145
2146         [Windows] Unreviewed build correction.
2147
2148         * WTF.vcxproj/WTFGenerated.make: Avoid syntax error in generated
2149         file in cases where Legible Output support is not present.
2150
2151 2013-07-05  Brent Fulgham  <bfulgham@apple.com>
2152
2153         [Windows] Unreviewed build correction.
2154
2155         * WTF.vcxproj/WTFGenerated.make: Use space (rather than double
2156         quotes) when handling the no-Legible-Output case.
2157
2158 2013-07-05  Brent Fulgham  <bfulgham@apple.com>
2159
2160         [Windows] Identify OS-level at build-time.
2161         https://bugs.webkit.org/show_bug.cgi?id=118428
2162
2163         Reviewed by Anders Carlsson.
2164
2165         * WTF.vcxproj/WTFGenerated.make: Check for Legible Output featurs
2166         and set build environment as appropriate.
2167         * wtf/Platform.h: Activate Legible Output features if present.
2168
2169 2013-07-05  Mikhail Pozdnyakov  <mikhail.pozdnyakov@intel.com>
2170
2171         A lot of code duplication within StringImpl 'equal' functions
2172         https://bugs.webkit.org/show_bug.cgi?id=118415
2173
2174         Reviewed by Anders Carlsson.
2175
2176         There has been a lot of code duplication within StringImpl 'equal' functions:
2177         the whole logic was copied to every overloaded 'equal' function.
2178         Fixed now using templates and std::equal.
2179
2180         * wtf/text/StringImpl.cpp:
2181         (WTF::equalInternal):
2182         (WTF::equal):
2183         * wtf/text/StringImpl.h:
2184         (WTF::arraysEqual):
2185         (WTF::equal):
2186
2187 2013-07-05  Mikhail Pozdnyakov  <mikhail.pozdnyakov@intel.com>
2188
2189         Remove code duplication from StringImpl create()/reallocate() methods
2190         https://bugs.webkit.org/show_bug.cgi?id=118355
2191
2192         Reviewed by Andreas Kling.
2193
2194         StringImpl create()/reallocate() methods accepting LChar and UChar used to have
2195         duplicated code. The code duplication is removed now via used templates.
2196
2197         * wtf/text/StringImpl.cpp:
2198         (WTF::StringImpl::constructInternal):
2199         (WTF::LChar):
2200         (WTF::StringImpl::createUninitializedInternal):
2201         (WTF::StringImpl::createUninitialized):
2202         (WTF::StringImpl::reallocateInternal):
2203         (WTF::StringImpl::reallocate):
2204         (WTF::StringImpl::createInternal):
2205         (WTF::StringImpl::create):
2206         * wtf/text/StringImpl.h:
2207
2208 2013-07-03  Brent Fulgham  <bfulgham@apple.com>
2209
2210         [Windows] Unreviewed build correction.
2211
2212         * WTF.vcxproj/copy-files.cmd: Limit path (for this file) to DOS-only to avoid
2213         the Cygwin variant of rmdir from being used.
2214
2215 2013-07-03  Commit Queue  <commit-queue@webkit.org>
2216
2217         Unreviewed, rolling out r152356.
2218         http://trac.webkit.org/changeset/152356
2219         https://bugs.webkit.org/show_bug.cgi?id=118361
2220
2221         Broke JSCore tests (Requested by andersca on #webkit).
2222
2223         * wtf/text/StringImpl.cpp:
2224         (WTF::StringImpl::createUninitialized):
2225         (WTF::StringImpl::reallocate):
2226         (WTF::StringImpl::create):
2227         * wtf/text/StringImpl.h:
2228
2229 2013-07-03  Mikhail Pozdnyakov  <mikhail.pozdnyakov@intel.com>
2230
2231         Remove code duplication from StringImpl create()/reallocate() methods
2232         https://bugs.webkit.org/show_bug.cgi?id=118355
2233
2234         Reviewed by Anders Carlsson.
2235
2236         StringImpl create()/reallocate() methods accepting LChar and UChar used to have
2237         duplicated code. The code duplication is removed now via used templates.
2238
2239         * wtf/text/StringImpl.cpp:
2240         (WTF::StringImpl::constructInternal):
2241         (WTF::LChar):
2242         (WTF::StringImpl::createUninitializedInternal):
2243         (WTF::StringImpl::createUninitialized):
2244         (WTF::StringImpl::reallocateInternal):
2245         (WTF::StringImpl::reallocate):
2246         (WTF::StringImpl::createInternal):
2247         (WTF::StringImpl::create):
2248         * wtf/text/StringImpl.h:
2249
2250 2013-07-03  Csaba Osztrogonác  <ossy@webkit.org>
2251
2252         Fix cast-align warnings in FastMalloc.cpp
2253         https://bugs.webkit.org/show_bug.cgi?id=117991
2254
2255         Reviewed by Mark Hahnenberg.
2256
2257         * wtf/FastMalloc.cpp:
2258
2259 2013-07-02  Geoffrey Garen  <ggaren@apple.com>
2260
2261         plainText() is O(N^2)
2262         https://bugs.webkit.org/show_bug.cgi?id=118282
2263         <rdar://problem/14284360>
2264
2265         Reviewed by Alexey Proskuryakov.
2266
2267         * wtf/text/StringBuilder.cpp:
2268         (WTF::expandCapacity): Factored out this helper function to simplify
2269         some code that was duplicated in four places.
2270
2271         (WTF::StringBuilder::appendUninitializedSlow):
2272         (WTF::StringBuilder::append): Use expandCapacity(). One of the cases
2273         was not doing anything special, and so was O(N^2).
2274
2275         Also, always call expandCapacity() it in a standard way, calling
2276         capacity() first, so it's easy to tell at a glance that you got it right.
2277
2278 2013-07-02  Mikhail Pozdnyakov  <mikhail.pozdnyakov@intel.com>
2279
2280         Avoid code duplication inside String::append()
2281         https://bugs.webkit.org/show_bug.cgi?id=118290
2282
2283         Reviewed by Anders Carlsson.
2284
2285         The implementation of 'append(UChar)' had been repeated inside 'append(LChar)',
2286         this duplication is obviated now.
2287
2288         * wtf/text/WTFString.cpp:
2289         (WTF::String::appendInternal):
2290         (WTF::String::append):
2291         * wtf/text/WTFString.h:
2292
2293 2013-06-28  Anders Carlsson  <andersca@apple.com>
2294
2295         Remove String::deprecatedCharactersWithNullTermination() and related code
2296         https://bugs.webkit.org/show_bug.cgi?id=118211
2297
2298         Reviewed by Benjamin Poulain.
2299
2300         Remove String::deprecatedCharactersWithNullTermination, StringImpl::createWithTerminatingNullCharacter
2301         and the s_hashFlagHasTerminatingNullCharacter flag. We no longer care about whether strings have a
2302         terminating null character.
2303
2304         * wtf/text/StringImpl.cpp:
2305         (WTF::StringImpl::createFromLiteral):
2306         (WTF::StringImpl::createWithoutCopying):
2307         (WTF::StringImpl::getData16SlowCase):
2308         (WTF::StringImpl::sizeInBytes):
2309         * wtf/text/StringImpl.h:
2310         (WTF::StringImpl::StringImpl):
2311         (WTF::StringImpl::createFromLiteral):
2312         (WTF::StringImpl::isolatedCopy):
2313         * wtf/text/WTFString.cpp:
2314         * wtf/text/WTFString.h:
2315
2316 2013-06-27  Anders Carlsson  <andersca@apple.com>
2317
2318         Add a new String::charactersWithNullTermination() function that returns a vector
2319         https://bugs.webkit.org/show_bug.cgi?id=118155
2320
2321         Reviewed by Andreas Kling.
2322
2323         This new String::charactersWithNullTermination() function returns a new Vector<UChar>
2324         and does not modify the underlying string data.
2325
2326         * wtf/text/WTFString.cpp:
2327         (WTF::String::charactersWithNullTermination):
2328         * wtf/text/WTFString.h:
2329
2330 2013-06-26  Anders Carlsson  <andersca@apple.com>
2331
2332         Deprecate StringImpl::charactersWithNullTermination
2333         https://bugs.webkit.org/show_bug.cgi?id=118108
2334
2335         Reviewed by Beth Dakin.
2336
2337         The optimization in String and StringImpl to keep track of whether a string
2338         has a null terminator isn't worth it; in most cases we call charactersWithNullTermination() on
2339         temporary strings which ends up copying strings anyway.
2340         
2341         A better solution is to have a charactersWithNullTermination() function that returns a Vector<UChar>,
2342         which is similar to what we have for String::utf8() and String::ascii(). This will be done in a follow-up patch.
2343
2344         * wtf/text/WTFString.cpp:
2345         (WTF::String::deprecatedCharactersWithNullTermination):
2346         * wtf/text/WTFString.h:
2347
2348 2013-06-26  Anders Carlsson  <andersca@apple.com>
2349
2350         Add JSStringCreateWithCharactersNoCopy SPI
2351         https://bugs.webkit.org/show_bug.cgi?id=118074
2352         <rdar://problem/14279905>
2353
2354         Reviewed by Geoffrey Garen.
2355
2356         * wtf/text/StringImpl.cpp:
2357         (WTF::StringImpl::createFromLiteral):
2358         Use the new ConstructWithoutCopying constructor, passing DoesHaveTerminatingNullCharacter to it.
2359         Change the other createFromLiteral overload to just call the first.
2360
2361         (WTF::StringImpl::createWithoutCopying):
2362         Add helper functions for creating strings that shouldn't copy their underlying data.
2363
2364         * wtf/text/StringImpl.h:
2365         (WTF::StringImpl::StringImpl):
2366         Rename the ConstructFromLiteralTag constructor enum to ConstructWithoutCopyingTag. Change the constructor
2367         to take an enum that states whether the string has a terminating null character or not.
2368
2369         (WTF::StringImpl::createFromLiteral):
2370         Call createWithoutCopying.
2371
2372         (WTF::StringImpl::requiresCopy):
2373         Rename this from isASCIILiteral() and make it more generic so it can handle 16-bit strings as well.
2374
2375         (WTF::StringImpl::isolatedCopy):
2376         If this string doesn't have to be copied, just create a new StringImpl object that references the current data.
2377
2378 2013-06-26  Jer Noble  <jer.noble@apple.com>
2379
2380         Potential use-after-free after neutering AudioBuffer's underlying ArrayBuffer.
2381         https://bugs.webkit.org/show_bug.cgi?id=118040
2382
2383         Reviewed by Filip Pizlo.
2384
2385         Add support for 'unneuterable' ArrayBufferViews. Views marked as such will have their underlying
2386         ArrayBuffer objects copied rather than transferred to a new view.
2387
2388         * wtf/ArrayBuffer.cpp:
2389         (WTF::ArrayBuffer::transfer): Check whether the associated views are neuterable, and if not
2390                 clone the ArrayBuffer rather than transferring it.
2391         * wtf/ArrayBuffer.h:
2392         (WTF::ArrayBufferContents::copyTo): Added. Utility function.
2393         * wtf/ArrayBufferView.cpp:
2394         (WTF::ArrayBufferView::ArrayBufferView):
2395         (WTF::ArrayBufferView::neuter):
2396         * wtf/ArrayBufferView.h:
2397         (WTF::ArrayBufferView::setNeuterable):
2398         (WTF::ArrayBufferView::isNeuterable):
2399
2400 2013-06-26  Brent Fulgham  <bfulgham@apple.com>
2401
2402         [Windows] Enable CaptionUserPreferenceMediaAF on Windows.
2403         https://bugs.webkit.org/show_bug.cgi?id=118076
2404
2405         Reviewed by Eric Carlson.
2406
2407         * wtf/Platform.h: Enable Media Accessibility Framework in Windows build environments
2408           that support it.
2409
2410 2013-06-24  Roger Fong  <roger_fong@apple.com>
2411
2412         Unreviewed. AppleWin build fix, followup to r151915.
2413
2414         * WTF.vcxproj/WTFProduction.props:
2415
2416 2013-06-24  Mikhail Pozdnyakov  <mikhail.pozdnyakov@intel.com>
2417
2418         HashMap: reverse the order of the template arguments at alternate 'find', 'contains' and 'add' methods
2419         https://bugs.webkit.org/show_bug.cgi?id=117911
2420
2421         Reviewed by Anders Carlsson.
2422
2423         The order of the template arguments at HashMap alternate 'find', 'contains' and
2424         'add' methods is reversed so that callers can just pass the translator
2425         and let the compiler deduce input argument type.
2426
2427         Another rational is consistency with HashSet class.
2428
2429         * wtf/HashMap.h:
2430
2431 2013-06-24  peavo@outlook.com  <peavo@outlook.com>
2432
2433         [WinCairo] WTF.dll is linking with CoreFoundation.lib in VS2010.
2434         https://bugs.webkit.org/show_bug.cgi?id=117294
2435
2436         Reviewed by Brent Fulgham.
2437
2438         WinCairo build should not use CoreFoundation.
2439
2440         * WTF.vcxproj/WTFCFLite.props: Added.
2441         * WTF.vcxproj/WTFCommon.props: Remove CoreFoundation.lib from depencency list.
2442         * WTF.vcxproj/WTFCoreFoundation.props: Added.
2443         * WTF.vcxproj/WTFDebug.props: Import WTFCoreFoundation.props for WinApple.
2444         * WTF.vcxproj/WTFDebugWinCairo.props: Import WTFCFLite.props for WinCairo.
2445         * WTF.vcxproj/WTFRelease.props: Import WTFCoreFoundation.props for WinApple.
2446         * WTF.vcxproj/WTFReleaseWinCairo.props: Import WTFCFLite.props for WinCairo.
2447
2448 2013-06-17  Darin Adler  <darin@apple.com>
2449
2450         Sort all the Xcode project files
2451         https://bugs.webkit.org/show_bug.cgi?id=117696
2452
2453         Reviewed by Anders Carlsson.
2454
2455         * WTF.xcodeproj/project.pbxproj: Ran the sort-Xcode-project-file script.
2456
2457 2013-06-20  Sergio Correia  <sergio.correia@openbossa.org>
2458
2459         [WK2] Looping for EINTR on close() is incorrect for Linux, at least
2460         https://bugs.webkit.org/show_bug.cgi?id=117266
2461
2462         Reviewed by Darin Adler.
2463
2464         Added file UniStdExtras with a closeWithRetry() function that works around
2465         the EINTR behavior on Linux during a close() call: it closes the descriptor
2466         unconditionally even when the call is interrupted.
2467
2468         * wtf/UniStdExtras.h: Added.
2469         (WTF::closeWithRetry): Wrapper around POSIX close() that handles EINTR
2470         correctly.
2471
2472 2013-06-20  Mark Lam  <mark.lam@apple.com>
2473
2474         Refine the StackBounds computation for Windows.
2475         https://bugs.webkit.org/show_bug.cgi?id=117854.
2476
2477         Reviewed by Brent Fulgham.
2478
2479         * wtf/StackBounds.cpp:
2480         (WTF::StackBounds::initialize):
2481
2482 2013-06-20  Mark Lam  <mark.lam@apple.com>
2483
2484         [Windows] Undoing r150621 to roll r150600 back in as the jsc test
2485         failures have been fixed in r151808.
2486         https://bugs.webkit.org/show_bug.cgi?id=116661.
2487
2488         Reviewed by Brent Fulgham.
2489
2490         * wtf/StackBounds.cpp:
2491         (WTF::StackBounds::initialize):
2492
2493 2013-06-20  Mikhail Pozdnyakov  <mikhail.pozdnyakov@intel.com>
2494
2495         HashSet: reverse the order of the template arguments at alternate 'find', 'contains' and 'add' methods
2496         https://bugs.webkit.org/show_bug.cgi?id=117830
2497
2498         Reviewed by Anders Carlsson.
2499
2500         The order of the template arguments at HashSet alternate 'find', 'contains' and
2501         'add' methods is reversed so that callers can just pass the translator
2502         and let the compiler deduce input argument type.
2503
2504         * wtf/HashSet.h:
2505         * wtf/text/AtomicString.cpp:
2506         (WTF::addToStringTable):
2507         (WTF::findString):
2508
2509 2013-06-20  Roger Fong  <roger_fong@apple.com>
2510
2511         Make Windows makefile copy build output to a different folder.
2512         <rdar://problem/14219184>.
2513
2514         * WTF.vcxproj/WTF.make:
2515
2516 2013-06-19  Geoffrey Garen  <ggaren@apple.com>
2517
2518         Remove the SegmentedVector inline segment to shrink CodeBlock by 6X
2519         https://bugs.webkit.org/show_bug.cgi?id=117808
2520
2521         Reviewed by Oliver Hunt.
2522
2523         SegmentedVector allocation isn't super hot, but we do tend to have many
2524         live SegmentedVectors at runtime, particularly in CodeBlocks, so the
2525         right tradeoff is to allocate segments out-of-line as needed.
2526
2527         This reduces startup memory usage @ google.com by about 6MB.
2528
2529         No regression on SunSpider.
2530
2531         * wtf/SegmentedVector.h:
2532         (WTF::SegmentedVector::SegmentedVector):
2533         (WTF::SegmentedVector::at):
2534         (WTF::SegmentedVector::append):
2535         (WTF::SegmentedVector::removeLast):
2536         (WTF::SegmentedVector::clear):
2537         (WTF::SegmentedVector::deleteAllSegments): No more inline segment.
2538
2539         (WTF::SegmentedVector::ensureSegmentsFor): This code used to assume
2540         that there was always a 0 segment, so the math would underflow if there
2541         were no 0 segment. I udpated the math to account for having no segments.
2542
2543 2013-06-19  David Kilzer  <ddkilzer@apple.com>
2544
2545         BUILD FIX (r151663): Fix build for iOS WebKit
2546
2547         * wtf/text/AtomicStringTable.cpp: Include MainThread.h.
2548         (WTF::AtomicStringTable::create): Use AtomicStringTable::destroy
2549         instead of non-existent destroyAtomicStringTable function.
2550
2551 2013-06-18  Roger Fong  <roger_fong@apple.com>
2552
2553         Replace tools32 folder with tools and update WebKit Windows solution accordingly.
2554         <rdar://problem/14118143>.
2555
2556         Rubberstamped by Brent Fulgham.
2557
2558         * WTF.vcxproj/WTF.vcxproj:
2559         * WTF.vcxproj/WTFDebug.props:
2560         * WTF.vcxproj/WTFDebugWinCairo.props:
2561         * WTF.vcxproj/WTFGenerated.vcxproj:
2562         * WTF.vcxproj/WTFGeneratedDebug.props:
2563         * WTF.vcxproj/WTFGeneratedProduction.props:
2564         * WTF.vcxproj/WTFGeneratedRelease.props:
2565         * WTF.vcxproj/WTFProduction.props:
2566         * WTF.vcxproj/WTFRelease.props:
2567         * WTF.vcxproj/WTFReleaseWinCairo.props:
2568         * WTF.vcxproj/work-around-vs-dependency-tracking-bugs.py:
2569         (react_to_vsprops_changes):
2570
2571 2013-06-18  Mikhail Pozdnyakov  <mikhail.pozdnyakov@intel.com>
2572
2573         PackedIntVector: check template arguments at compile time
2574         https://bugs.webkit.org/show_bug.cgi?id=117737
2575
2576         Use 'COMPILE_ASSERT' instead of 'ASSERT' in PackedIntVector class
2577         constructor.
2578
2579         Reviewed by Sam Weinig.
2580
2581         * wtf/PackedIntVector.h:
2582         (WTF::PackedIntVector::PackedIntVector):
2583
2584 2013-06-17  Andy Estes  <aestes@apple.com>
2585
2586         A static_assert() in RetainPtr.h sometimes causes the build to fail.
2587
2588         Wrap the first argument to a static_assert() in parentheses since it
2589         contains a comma, which sometimes tricks the preprocessor into thinking
2590         the macro is being passed three arguments rather than two.
2591
2592         Reviewed by Brian Weinstein.
2593
2594         * wtf/RetainPtr.h:
2595         (WTF::RetainPtr::RetainPtr):
2596
2597 2013-06-17  Zan Dobersek  <zdobersek@igalia.com>
2598
2599         REGRESSION (r149184): Build errors in RefPtr.h when building with Clang, C++98 standard
2600         https://bugs.webkit.org/show_bug.cgi?id=116352
2601
2602         Reviewed by Anders Carlsson.
2603
2604         Use the __has_feature macro instead of the __has_extension one when detecting what features the Clang compiler
2605         that's being used is capable to provide. With the project moving onto using C++11 throughout its components,
2606         there currently exist cases where C++11-specific functionality (for instance std::move) is used despite being
2607         guarded by compiler-specific feature guards that still get enabled even when compiling in C++98 with Clang.
2608         The problematic features are enabled because they're available as C++98 language extensions by Clang.
2609
2610         Using __has_feature instead enables the feature guard only if the tested feature is actually standardized in
2611         the currently used language standard.
2612
2613         * wtf/Compiler.h:
2614
2615 2013-06-17  Ryosuke Niwa  <rniwa@webkit.org>
2616
2617         Initialize AtomicStringTable in WTFThreadData's constructor
2618         https://bugs.webkit.org/show_bug.cgi?id=117671
2619
2620         Reviewed by Geoffrey Garen.
2621
2622         Extracted AtomicStringTable from AtomicString.cpp into AtomicStringTable.h/cpp
2623         and made WTFThreadDada::WTFThreadData create the atomic string table for the thread.
2624
2625         This eliminates a branch from stringTable() in AtomicString.cpp.
2626
2627         * GNUmakefile.list.am:
2628         * WTF.pro:
2629         * WTF.vcxproj/WTF.vcxproj:
2630         * WTF.vcxproj/WTF.vcxproj.filters:
2631         * WTF.xcodeproj/project.pbxproj:
2632         * wtf/CMakeLists.txt:
2633         * wtf/WTFThreadData.cpp:
2634         (WTF::WTFThreadData::WTFThreadData):
2635         * wtf/text/AtomicString.cpp:
2636         (WTF::stringTable):
2637         * wtf/text/AtomicStringTable.cpp: Added.
2638         (WTF::AtomicStringTable::create):
2639         (WTF::AtomicStringTable::destroy):
2640         * wtf/text/AtomicStringTable.h: Added.
2641         (WTF::AtomicStringTable::table):
2642
2643 2013-06-17  Roger Fong  <roger_fong@apple.com>
2644
2645         Modify Windows makefiles to copy some bin output into Program Files.
2646         https://bugs.webkit.org/show_bug.cgi?id=117714.
2647         <rdar://problem/14179054>
2648
2649         Reviewed by Brent Fulgham.
2650
2651         * WTF.vcxproj/WTF.make:
2652
2653 2013-06-17  Grzegorz Czajkowski  <g.czajkowski@samsung.com>
2654
2655         Unreviewed, rolling out r151632.
2656         http://trac.webkit.org/changeset/151632
2657         https://bugs.webkit.org/show_bug.cgi?id=117585
2658
2659         Debug build error ASSERT(WTF_USE_GRAMMAR_CHECKING) for non MAC
2660         platforms
2661
2662         * wtf/Platform.h:
2663
2664 2013-06-14  Grzegorz Czajkowski  <g.czajkowski@samsung.com>
2665
2666         Context menu grammar checking items are available when GRAMMAR_CHECKING macro is off
2667         https://bugs.webkit.org/show_bug.cgi?id=117585
2668
2669         Reviewed by Anders Carlsson.
2670
2671         Enable GRAMMAR_CHECKING for WebKit ports that use/implement it.
2672
2673         * wtf/Platform.h:
2674
2675 2013-06-14  Patrick Gansterer  <paroga@webkit.org>
2676
2677         Introduce USE(WINGDI) for the Windows port
2678         https://bugs.webkit.org/show_bug.cgi?id=116138
2679
2680         Reviewed by Ryosuke Niwa.
2681
2682         Using USE(WINGDI) instead of OS(WINCE) will allow us to
2683         compile the GDI based Windows port on WinNT too.
2684
2685         * wtf/Platform.h:
2686
2687 2013-06-13  Ryosuke Niwa  <rniwa@webkit.org>
2688
2689         Remove LiteralIdentifierTable
2690         https://bugs.webkit.org/show_bug.cgi?id=117613
2691
2692         Reviewed by Geoffrey Garen.
2693
2694         Removed LiteralIdentifierTable since it doesn't seem to have any perf. impact now.
2695
2696         * wtf/WTFThreadData.h:
2697
2698 2013-06-13  Brent Fulgham  <bfulgham@apple.com>
2699
2700         [WinCairo] Correct FeatureDefines.h Default for ENABLE_VIEW_MODE_CSS_MEDIA
2701         https://bugs.webkit.org/show_bug.cgi?id=114396
2702
2703         Reviewed by Dean Jackson.
2704
2705         * wtf/FeatureDefines.h: The WinCairo port does not (currently) support Media elements,
2706         so make sure we do not enable this feature by default for that port.
2707
2708 2013-06-13  Brent Fulgham  <bfulgham@apple.com>
2709
2710         [Windows] Unreviewed gardening.
2711
2712         * WTF.vcxproj/WTF.vcxproj: Add FeatureDefines.h to visible files.
2713         * WTF.vcxproj/WTF.vcxproj.filters: Ditto.
2714
2715 2013-06-13  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
2716
2717         Optimize String::fromUTF8 for ASCII
2718         https://bugs.webkit.org/show_bug.cgi?id=117586
2719
2720         Reviewed by Brent Fulgham.
2721
2722         From Blink r152243 by <abarth@chromium.org>
2723
2724         Current String::fromUTF8() implementation converts 8 bit ASCII character into 16 bit.
2725         Instead of always trying to convert into a 16 bit buffer, we can add a call to charactersAreAllASCII.
2726         In the common case when characters are ASCII, we directly copy it into an 8 bit string buffer.
2727
2728         * wtf/text/WTFString.cpp:
2729         (WTF::String::fromUTF8):
2730
2731 2013-06-12  Brent Fulgham  <bfulgham@apple.com>
2732
2733         [Windows] Activate supported C++11 Features for VS2010
2734         https://bugs.webkit.org/show_bug.cgi?id=117569
2735
2736         Reviewed by Anders Carlsson.
2737
2738         * wtf/Compiler.h: Turn on rvalue references and static_assert
2739         when compiling with VS2010 (or newer)
2740
2741 2013-06-07  Roger Fong  <roger_fong@apple.com>
2742
2743         Unreviewed. Makefile fix. Copy WTF.dll over as well.
2744
2745         * WTF.vcxproj/WTF.make:
2746
2747 2013-06-07  Commit Queue  <commit-queue@webkit.org>
2748
2749         Unreviewed, rolling out r151318.
2750         http://trac.webkit.org/changeset/151318
2751         https://bugs.webkit.org/show_bug.cgi?id=117356
2752
2753         Broke Windows Release Build (Requested by bfulgham on
2754         #webkit).
2755
2756         * WTF.vcxproj/WTF.vcxproj:
2757         * WTF.vcxproj/WTFCommon.props:
2758         * WTF.vcxproj/WTFCoreFoundation.props: Removed.
2759         * WTF.vcxproj/WTFDebug.props:
2760         * WTF.vcxproj/WTFRelease.props:
2761
2762 2013-06-07  peavo@outlook.com  <peavo@outlook.com>
2763
2764         [WinCairo] WTF.dll is linking with CoreFoundation.lib in VS2010.
2765         https://bugs.webkit.org/show_bug.cgi?id=117294
2766
2767         Reviewed by Darin Adler.
2768
2769         WinCairo build should not use CoreFoundation.
2770
2771         * WTF.vcxproj/WTF.vcxproj: Exclude unneeded file from WinCairo build.
2772         * WTF.vcxproj/WTFCommon.props: Removed CoreFoundation.lib from common props.
2773         * WTF.vcxproj/WTFCoreFoundation.props: Added.
2774         * WTF.vcxproj/WTFDebug.props: Inherit from WTFCoreFoundations.props.
2775         * WTF.vcxproj/WTFRelease.props: Inherit from WTFCoreFoundations.props.
2776
2777 2013-06-06  Roger Fong  <roger_fong@apple.com>
2778
2779         Unreviewed. Fix typo with winmm linker input.
2780
2781         * WTF.vcxproj/WTFCommon.props:
2782
2783 2013-06-05  Benjamin Poulain  <bpoulain@apple.com>
2784
2785         WebSQL forces 16-bit strings
2786         https://bugs.webkit.org/show_bug.cgi?id=116935
2787
2788         Reviewed by Darin Adler.
2789
2790         Merge chromium 49c9632ac135f6f06e623a7a81d9da1f6bb7196f.
2791         https://chromium.googlesource.com/chromium/blink/+/49c9632ac135f6f06e623a7a81d9da1f6bb7196f
2792
2793         * wtf/text/StringImpl.cpp:
2794         (WTF::StringImpl::create8BitIfPossible):
2795         * wtf/text/StringImpl.h:
2796         (WTF::lengthOfNullTerminatedString):
2797         * wtf/text/WTFString.cpp:
2798         (WTF::String::String):
2799
2800 2013-06-03  Roger Fong  <roger_fong@apple.com>
2801
2802         Nuke VS2005 files from the tree.
2803         <rdar://problem/14042021>.
2804
2805         Rubberstamped by Brent Fulgham.
2806
2807         * WTF.vcproj: Removed.
2808         * WTF.vcproj/WTF.make: Removed.
2809         * WTF.vcproj/WTF.sln: Removed.
2810         * WTF.vcproj/WTF.vcproj: Removed.
2811         * WTF.vcproj/WTFCommon.vsprops: Removed.
2812         * WTF.vcproj/WTFDebug.vsprops: Removed.
2813         * WTF.vcproj/WTFDebugAll.vsprops: Removed.
2814         * WTF.vcproj/WTFDebugCairoCFLite.vsprops: Removed.
2815         * WTF.vcproj/WTFGenerated.make: Removed.
2816         * WTF.vcproj/WTFGenerated.vcproj: Removed.
2817         * WTF.vcproj/WTFGeneratedCommon.vsprops: Removed.
2818         * WTF.vcproj/WTFGeneratedDebug.vsprops: Removed.
2819         * WTF.vcproj/WTFGeneratedDebugAll.vsprops: Removed.
2820         * WTF.vcproj/WTFGeneratedDebugCairoCFLite.vsprops: Removed.
2821         * WTF.vcproj/WTFGeneratedProduction.vsprops: Removed.
2822         * WTF.vcproj/WTFGeneratedRelease.vsprops: Removed.
2823         * WTF.vcproj/WTFGeneratedReleaseCairoCFLite.vsprops: Removed.
2824         * WTF.vcproj/WTFPostBuild.cmd: Removed.
2825         * WTF.vcproj/WTFPreBuild.cmd: Removed.
2826         * WTF.vcproj/WTFProduction.vsprops: Removed.
2827         * WTF.vcproj/WTFRelease.vsprops: Removed.
2828         * WTF.vcproj/WTFReleaseCairoCFLite.vsprops: Removed.
2829         * WTF.vcproj/build-generated-files.sh: Removed.
2830         * WTF.vcproj/copy-files.cmd: Removed.
2831         * WTF.vcproj/work-around-vs-dependency-tracking-bugs.py: Removed.
2832
2833 2013-06-03  Patrick Gansterer  <paroga@webkit.org>
2834
2835         Unreviewed WinCE build fix after r150833.
2836
2837         * wtf/DateMath.cpp:
2838         (WTF::calculateDSTOffset):
2839
2840 2013-06-03  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
2841
2842         [WTF] Add OwnArrayPtr vectortraits template 
2843         https://bugs.webkit.org/show_bug.cgi?id=117131
2844
2845         Reviewed by Darin Adler.
2846
2847         To support Vector<OwnArrayPtr<P>>, which will be used by EFL port.
2848
2849         * wtf/VectorTraits.h:
2850
2851 2013-05-31  Rafael Brandao  <rafael.lobo@openbossa.org>
2852
2853         Fix double hash lookup in PageMapMemoryUsageRecorder::visit
2854         https://bugs.webkit.org/show_bug.cgi?id=117071
2855
2856         Reviewed by Andreas Kling.
2857
2858         * wtf/FastMalloc.cpp:
2859         (WTF::TCMalloc_ThreadCache::CreateCacheIfNecessary):
2860
2861 2013-05-31  Brent Fulgham  <bfulgham@apple.com>
2862
2863         [Windows] Speculative build fix for pre-VS2010 compilers
2864
2865         * wtf/Platform.h: Only treat WTF as DLL for VS2010 builds
2866
2867 2013-05-31  Zan Dobersek  <zdobersek@igalia.com>
2868
2869         Move MD5, SHA1 unit tests from WTF to TestWebKitAPI
2870         https://bugs.webkit.org/show_bug.cgi?id=116445
2871
2872         Reviewed by Benjamin Poulain.
2873
2874         Remove the MD5 and SHA1 test cases from the WTF code. The same cases are now built and run under TestWebKitAPI.
2875
2876         * wtf/MD5.cpp:
2877         (WTF::MD5::MD5):
2878         * wtf/SHA1.cpp:
2879         (WTF::SHA1::SHA1):
2880
2881 2013-05-30  Roger Fong  <roger_fong@apple.com>
2882
2883         Another unreviewed build fix for Mac.
2884
2885         * wtf/text/WTFString.h:
2886         (WTF::String::fromUTF8WithLatin1Fallback):
2887
2888 2013-05-30  Roger Fong  <roger_fong@apple.com>
2889
2890         Unreviewed build fix for Mac.
2891
2892         * wtf/OSAllocator.h:
2893         * wtf/text/WTFString.h:
2894         (WTF::String::fromUTF8):
2895
2896 2013-05-30  Roger Fong  <roger_fong@apple.com>
2897
2898         Get rid of JavaScript exports file on AppleWin port.
2899         https://bugs.webkit.org/show_bug.cgi?id=117050.
2900
2901         Reviewed by Darin Adler.
2902
2903         This requires turning WTF into a shared library and adding the WTF_EXPORT_PRIVATE to some methods where it was missed.
2904
2905         * WTF.vcxproj/WTF.vcxproj:
2906         * WTF.vcxproj/WTFCommon.props:
2907         * wtf/DateMath.h:
2908         * wtf/ExportMacros.h:
2909         * wtf/FilePrintStream.h:
2910         * wtf/OSAllocator.h:
2911         * wtf/PageAllocationAligned.h:
2912         * wtf/Platform.h:
2913         * wtf/PrintStream.h:
2914         * wtf/StackBounds.h:
2915         * wtf/StringPrintStream.h:
2916         * wtf/ThreadSpecific.h:
2917         * wtf/WTFThreadData.h:
2918         * wtf/dtoa/cached-powers.h:
2919         * wtf/dtoa/double-conversion.h:
2920         * wtf/text/WTFString.h:
2921         * wtf/unicode/Collator.h:
2922         * wtf/unicode/UTF8.h:
2923
2924 2013-05-29  Kent Tamura  <tkent@chromium.org>
2925
2926         Remove ENABLE_INPUT_MULTIPLE_FIELDS_UI.
2927         https://bugs.webkit.org/show_bug.cgi?id=116796
2928
2929         Reviewed by Ryosuke Niwa.
2930
2931         * wtf/FeatureDefines.h:
2932
2933 2013-05-27  Gavin Barraclough  <barraclough@apple.com>
2934
2935         String(new Date(2010,10,1)) is wrong in KRAT, YAKT
2936         https://bugs.webkit.org/show_bug.cgi?id=106750
2937
2938         Reviewed by Darin Adler.
2939
2940         First part of a fix, simplfy date handling code, instead of operating separately
2941         on the UTC-standard and standard-DST offsets, just generate a combined UTC-local
2942         offset (this is what we actually need, and what the OS gives us).
2943
2944         * wtf/DateMath.cpp:
2945         (WTF::calculateUTCOffset):
2946         (WTF::calculateDSTOffset):
2947             - made static, now not called from outside of this file.
2948         (WTF::calculateLocalTimeOffset):
2949             - This combines the 2038 related adjustment from calculateDSTOffset with the
2950               maxUnixTime adjustment from calculateDSTOffsetSimple. Then, if HAVE(TM_GMTOFF)
2951               just call getLocalTime, if not use calculateUTCOffset/calculateDSTOffset.
2952         (WTF::parseDateFromNullTerminatedCharacters):
2953             - call calculateLocalTimeOffset instead of calculateUTCOffset/calculateDSTOffset
2954         * wtf/DateMath.h:
2955         (WTF::LocalTimeOffset::LocalTimeOffset):
2956         (LocalTimeOffset):
2957         (WTF::LocalTimeOffset::operator==):
2958             - new struct type, a tuple of UTC-local offset & isDST flag.
2959             - replaced calculateUTCOffset/calculateDSTOffset with calculateLocalTimeOffset
2960         * wtf/GregorianDateTime.cpp:
2961         (WTF::GregorianDateTime::setToCurrentLocalTime):
2962             - call calculateLocalTimeOffset instead of calculateUTCOffset/calculateDSTOffset
2963
2964 2013-05-27  Patrick Gansterer  <paroga@webkit.org>
2965
2966         Use correct stack size on Solaris and OpenBSD
2967         https://bugs.webkit.org/show_bug.cgi?id=114978
2968
2969         Recommit after wrong rollout in r150621.
2970
2971         * wtf/StackBounds.cpp:
2972         (WTF):
2973         (WTF::StackBounds::initialize):
2974
2975 2013-05-27  Patrick Gansterer  <paroga@webkit.org>
2976
2977         Use ICU_INCLUDE_DIRS in BlackBerry CMake files
2978         https://bugs.webkit.org/show_bug.cgi?id=116210
2979
2980         Reviewed by Rob Buis.
2981
2982         Set and use the ICU_INCLUDE_DIRS variable to avoid
2983         duplicated adding of the ICU include directory.
2984
2985         * wtf/PlatformBlackBerry.cmake:
2986
2987 2013-05-27  Ádám Kallai  <kadam@inf.u-szeged.hu>
2988
2989         [Qt] Enable parallel GC. Probably it has been fixed in r131791.
2990         https://bugs.webkit.org/show_bug.cgi?id=90957
2991
2992         Reviewed by Csaba Osztrogonác.
2993
2994         * wtf/Platform.h:
2995
2996 2013-05-26  Patrick Gansterer  <paroga@webkit.org>
2997
2998         [WINCE] Add wtf_bsearch()
2999         https://bugs.webkit.org/show_bug.cgi?id=116528
3000
3001         Reviewed by Darin Adler.
3002
3003         r149833 introduced usage of ::bsearch(), which does not exist on Windwos CE.
3004         Add our own implementation of this function as wtf_bsearch and define
3005         bsearch as wtf_bsearch to fix compilation on Windwos CE.
3006
3007         * wtf/StdLibExtras.h:
3008         (wtf_bsearch):
3009
3010 2013-05-26  Kent Tamura  <tkent@chromium.org>
3011
3012         Remove ENABLE_CALENDAR_PICKER
3013         https://bugs.webkit.org/show_bug.cgi?id=116795
3014
3015         Reviewed by Ryosuke Niwa.
3016
3017         * wtf/FeatureDefines.h:
3018
3019 2013-05-24  Benjamin Poulain  <bpoulain@apple.com>
3020
3021         Inline TCMalloc_Central_FreeList's RemoveRange and FetchFromSpansSafe
3022         https://bugs.webkit.org/show_bug.cgi?id=116700
3023
3024         Reviewed by Darin Adler.
3025
3026         The two functions only have one call site each.
3027
3028         * wtf/FastMalloc.cpp:
3029         (WTF::TCMalloc_Central_FreeList::RemoveRange):
3030         (WTF::TCMalloc_Central_FreeList::FetchFromSpansSafe):
3031
3032 2013-05-24  Filip Pizlo  <fpizlo@apple.com>
3033
3034         We broke !(0/0)
3035         https://bugs.webkit.org/show_bug.cgi?id=116736
3036
3037         Reviewed by Gavin Barraclough.
3038
3039         * wtf/MathExtras.h:
3040         (isNotZeroAndOrdered):
3041         (isZeroOrUnordered):
3042
3043 2013-05-24  Anders Carlsson  <andersca@apple.com>
3044
3045         Remove PagePopup code
3046         https://bugs.webkit.org/show_bug.cgi?id=116732
3047
3048         Reviewed by Andreas Kling.
3049
3050         Remove ENABLE_PAGE_POPUP.
3051
3052         * wtf/FeatureDefines.h:
3053
3054 2013-05-25  Jer Noble  <jer.noble@apple.com>
3055
3056         Mac: Set the default audio buffer size to a large value for <video> elements.
3057         https://bugs.webkit.org/show_bug.cgi?id=116342
3058
3059         Reviewed by Eric Carlson.
3060
3061         * wtf/Platform.h: Add a WTF_USE_AUDIO_SESSION setting.
3062
3063 2013-05-23  Brent Fulgham  <bfulgham@apple.com>
3064
3065         [Windows] Rolling back r150600 as it breaks the VS2010 builds.
3066
3067         * wtf/StackBounds.cpp: Rollback.
3068
3069 2013-05-23 Patrick Gansterer <paroga@webkit.org>
3070
3071         Use correct stack size on Solaris and OpenBSD
3072         https://bugs.webkit.org/show_bug.cgi?id=114978
3073
3074         Reviewed by Oliver Hunt.
3075
3076         Original patch by David Hill <david@wmol.com>.
3077
3078         Use stack_t.ss_size for getting the size of the stack.
3079
3080         * wtf/Platform.h:
3081         * wtf/StackBounds.cpp:
3082         (WTF):
3083         (WTF::StackBounds::initialize):
3084
3085 2013-05-23  Patrick Gansterer  <paroga@webkit.org>
3086
3087         [WIN] Implement correct detection of stack size
3088         https://bugs.webkit.org/show_bug.cgi?id=116661
3089
3090         Reviewed by Oliver Hunt.
3091
3092         * wtf/StackBounds.cpp:
3093         (WTF):
3094         (WTF::StackBounds::initialize):
3095
3096 2013-05-22  Dean Jackson  <dino@apple.com>
3097
3098         Rolling out r150555. It borked about 30 media tests.
3099
3100         * wtf/Platform.h:
3101
3102 2013-05-21  Anders Carlsson  <andersca@apple.com>
3103
3104         Build fix.
3105
3106         * wtf/NeverDestroyed.h:
3107         (NeverDestroyed):
3108
3109 2013-05-20  Anders Carlsson  <andersca@apple.com>
3110
3111         Add WTF::NeverDestroyed and start using it in WTF
3112         https://bugs.webkit.org/show_bug.cgi?id=116472
3113
3114         Reviewed by Benjamin Poulain.
3115
3116         NeverDestroyed is a class template that can be used for singletons and other objects that we never
3117         want to destroy. It's intended as a replacement for WTF_STATIC_LOCAL with the advantage that it doesn't
3118         fragment the heap.
3119
3120         * GNUmakefile.list.am:
3121         * WTF.vcproj/WTF.vcproj:
3122         * WTF.vcxproj/WTF.vcxproj:
3123         * WTF.vcxproj/WTF.vcxproj.filters:
3124         * WTF.xcodeproj/project.pbxproj:
3125         Add NeverDestroyed.h
3126
3127         * wtf/Compiler.h:
3128         Add a helper macro, WTF_DELETED_FUNCTION.
3129
3130         * wtf/CryptographicallyRandomNumber.cpp:
3131         Use NeverDestroyed.
3132
3133         * wtf/NeverDestroyed.h: Added.
3134
3135         * wtf/Noncopyable.h:
3136         Use WTF_DELETED_FUNCTION.
3137
3138         * wtf/text/WTFString.cpp:
3139         (WTF::emptyString):
3140         Use 
3141
3142 2013-05-20  Zan Dobersek  <zdobersek@igalia.com>
3143
3144         Use '__typeof__' keyword to avoid problems when compiling in C++11 standard compliance
3145         https://bugs.webkit.org/show_bug.cgi?id=116447
3146
3147         Reviewed by Darin Adler.
3148
3149         The 'typeof' keyword is a GNU C extension which becomes unavailable when compiling in ANSI or specific standard mode
3150         (such as -std=c++11). The '__typeof__' keyword should be used instead as it's available in all modes both under GCC and Clang.
3151
3152         * wtf/FastMalloc.cpp:
3153         (WTF): Replace the 'typeof' keyword with '__typeof__'.
3154
3155 2013-05-19  Anders Carlsson  <andersca@apple.com>
3156
3157         Remove link prerendering code
3158         https://bugs.webkit.org/show_bug.cgi?id=116415
3159
3160         Reviewed by Darin Adler.
3161
3162         This code was only used by Chromium and is dead now.
3163
3164         * wtf/FeatureDefines.h:
3165
3166 2013-05-18  Patrick Gansterer  <paroga@webkit.org>
3167
3168         [CMake] Replace *_LIBRARY_NAME with *_OUTPUT_NAME
3169         https://bugs.webkit.org/show_bug.cgi?id=114554
3170
3171         Reviewed by Gyuyoung Kim.
3172
3173         Using variables as target names is very uncommon in CMake.
3174         The usual way to specify the name of the resulting binary
3175         is to set the OUTPUT_NAME target property.
3176
3177         * wtf/CMakeLists.txt:
3178
3179 2013-05-17  Andreas Kling  <akling@apple.com>
3180
3181         Re-align the OS(AIX) macro...
3182         ...in the hopes that the resulting world rebuild will fix failures after r150294.
3183
3184         * wtf/Platform.h:
3185
3186 2013-05-17  Anders Carlsson  <andersca@apple.com>
3187
3188         WKKeyValueStorageManagerGetKeyValueStorageOrigins should get origins from the UI process
3189         https://bugs.webkit.org/show_bug.cgi?id=116346
3190         <rdar://problem/13852829>
3191
3192         Reviewed by Andreas Kling.
3193
3194         Add forward declaration for Function.
3195
3196         * wtf/Forward.h:
3197
3198 2013-05-17  Patrick Gansterer  <paroga@webkit.org>
3199
3200         [CMake] Remove invalid include paths
3201         https://bugs.webkit.org/show_bug.cgi?id=116213
3202
3203         Reviewed by Gyuyoung Kim.
3204
3205         Since "${JAVASCRIPTCORE_DIR}/wtf" does not exist, it is safe
3206         to remove them from the list of include directories.
3207
3208         * wtf/PlatformEfl.cmake:
3209         * wtf/PlatformGTK.cmake:
3210
3211 2013-05-16  Benjamin Poulain  <bpoulain@apple.com>
3212
3213         Add the symbol WTFInvokeCrashHook back for binary compatibility.
3214
3215         Reviewed by Ryosuke Niwa.
3216
3217         * wtf/Assertions.cpp:
3218         * wtf/Assertions.h:
3219
3220 2013-05-16  Seokju Kwon  <seokju.kwon@gmail.com>
3221
3222         [CMAKE] Need to set WTF_LIBRARIES in wtf/CMakeLists.txt
3223         https://bugs.webkit.org/show_bug.cgi?id=116209
3224
3225         Reviewed by Gyuyoung Kim.
3226
3227         * wtf/CMakeLists.txt: Replace list with set.
3228
3229 2013-05-16  Benjamin Poulain  <benjamin@webkit.org>
3230
3231         Crash properly on iOS
3232         https://bugs.webkit.org/show_bug.cgi?id=115782
3233
3234         Reviewed by Darin Adler.
3235
3236         Improve crash handling. <rdar://problem/13842771>
3237
3238         * wtf/Assertions.cpp:
3239         * wtf/Assertions.h:
3240
3241 2013-05-15  Ryuan Choi  <ryuan.choi@samsung.com>
3242
3243         Unreviewed build fix after r150123
3244
3245         * wtf/CMakeLists.txt: 
3246
3247 2013-05-15  Oliver Hunt  <oliver@apple.com>
3248
3249         RefCountedArray needs to use vector initialisers for its backing store
3250         https://bugs.webkit.org/show_bug.cgi?id=116194
3251
3252         Reviewed by Gavin Barraclough.
3253
3254         Use VectorOperations to operate on the backing store
3255
3256         * wtf/RefCountedArray.h:
3257         (WTF::RefCountedArray::RefCountedArray):
3258         (WTF::RefCountedArray::operator=):
3259         (WTF::RefCountedArray::~RefCountedArray):
3260
3261 2013-05-15  Nico Weber  <thakis@chromium.org>
3262
3263         WebKit doesn't support MSVS2003 any more, remove preprocessor checks for older versions.
3264         https://bugs.webkit.org/show_bug.cgi?id=116157
3265
3266         Reviewed by Anders Carlsson.
3267
3268         Also remove a gcc3.2 workaround.
3269
3270         Merges parts of these two commits by the talented Nico Weber:
3271         https://chromium.googlesource.com/chromium/blink/+/3677e2f47348daeff405a40b6f90fbdf0654c2f5
3272         https://chromium.googlesource.com/chromium/blink/+/0fcd96c448dc30be1416dcc15713c53710c1a312
3273
3274         * wtf/Alignment.h:
3275         (WTF):
3276         * wtf/Assertions.h:
3277         * wtf/Atomics.h:
3278         (WTF):
3279         * wtf/Compiler.h:
3280         * wtf/DateMath.cpp:
3281         (WTF::getLocalTime):
3282         * wtf/MathExtras.h:
3283         * wtf/RefCountedLeakCounter.h:
3284         (RefCountedLeakCounter):
3285         * wtf/StaticConstructors.h:
3286
3287 2013-05-15  Patrick Gansterer  <paroga@webkit.org>
3288
3289         Consolidate lists in WTF CMake files
3290         https://bugs.webkit.org/show_bug.cgi?id=116142
3291
3292         Reviewed by Martin Robinson.
3293
3294         Move common files into the CMakeLists.txt to avoid duplicating the list of files.
3295         Also rebase the recently added GTK files to match the other CMake ports, since
3296         the submitted patch was based on an older version of the source tree.
3297
3298         * wtf/CMakeLists.txt:
3299         * wtf/PlatformBlackBerry.cmake:
3300         * wtf/PlatformEfl.cmake:
3301         * wtf/PlatformGTK.cmake:
3302         * wtf/PlatformWinCE.cmake:
3303
3304 2013-05-14  Carlos Garcia Campos  <cgarcia@igalia.com>
3305
3306         Remove WTF_USE_PLATFORM_STRATEGIES
3307         https://bugs.webkit.org/show_bug.cgi?id=114431
3308
3309         Reviewed by Darin Adler.
3310
3311         * wtf/Platform.h:
3312
3313 2013-05-14  Carlos Garcia Campos  <cgarcia@igalia.com>
3314
3315         [BlackBerry] Use requestAnimationFrame for animations
3316         https://bugs.webkit.org/show_bug.cgi?id=115896
3317
3318         Reviewed by Rob Buis.
3319
3320         * wtf/Platform.h: Disable REQUEST_ANIMATION_FRAME_TIMER and
3321         WTF_USE_REQUEST_ANIMATION_FRAME_DISPLAY_MONITOR for BlackBerry
3322         port.
3323
3324 2013-05-14  Carlos Garcia Campos  <cgarcia@igalia.com>
3325
3326         [BlackBerry] Implement platform strategies
3327         https://bugs.webkit.org/show_bug.cgi?id=112162
3328
3329         Reviewed by Rob Buis.
3330
3331         * wtf/Platform.h: Add BlackBerry platform to the list of platforms
3332         using platform strategies.
3333
3334 2013-05-13  Benjamin Poulain  <benjamin@webkit.org>
3335
3336         Improve stringProtoFuncLastIndexOf for the prefix case
3337         https://bugs.webkit.org/show_bug.cgi?id=115952
3338
3339         Reviewed by Geoffrey Garen.
3340
3341         Add an optimized version of StringImpl::startsWith() for JavaScriptCore.
3342
3343         * wtf/text/StringImpl.cpp:
3344         (WTF::StringImpl::startsWith):
3345         * wtf/text/StringImpl.h:
3346         (StringImpl):
3347         (WTF::StringImpl::startsWith):
3348         * wtf/text/WTFString.h:
3349         (WTF::String::startsWith):
3350
3351 2013-05-13  Carlos Garcia Campos  <cgarcia@igalia.com>
3352
3353         Unreviewed. Fix Qt Linux MIPS32R2 build after r149879.
3354
3355         Bring back GLIB_CHECK_VERSION for GBytes since Qt Linux MIPS32R2
3356         depends on glib 2.24.2.
3357
3358         * wtf/gobject/GRefPtr.cpp:
3359         (_GBytes):
3360         (WTF::refGPtr):
3361         (WTF::derefGPtr):
3362
3363 2013-05-13  Anders Carlsson  <andersca@apple.com>
3364
3365         Remove UnusedParam.h
3366         https://bugs.webkit.org/show_bug.cgi?id=116029
3367
3368         Reviewed by Andreas Kling.
3369
3370         Remove UnusedParam.h, it's empty now.
3371
3372         * GNUmakefile.list.am:
3373         * WTF.pro:
3374         * WTF.vcproj/WTF.vcproj:
3375         * WTF.vcxproj/WTF.vcxproj:
3376         * WTF.vcxproj/WTF.vcxproj.filters:
3377         * WTF.xcodeproj/project.pbxproj:
3378         * wtf/CMakeLists.txt:
3379         * wtf/UnusedParam.h: Removed.
3380
3381 2013-05-13  Zalan Bujtas  <zalan@apple.com>
3382
3383         WebProcess consuming very high CPU on linkedin.com
3384         https://bugs.webkit.org/show_bug.cgi?id=115601
3385
3386         Reviewed by Andreas Kling.
3387
3388         Disable WEB_TIMING_MINIMAL.
3389         Turn off window.performance and performance.now(). Some JS frameworks expect
3390         additional Web Timing APIs, when performance.now() is available.
3391
3392         * wtf/FeatureDefines.h:
3393
3394 2013-05-12  Anders Carlsson  <andersca@apple.com>
3395
3396         Stop including UnusedParam.h
3397         https://bugs.webkit.org/show_bug.cgi?id=116003
3398
3399         Reviewed by Sam Weinig.
3400
3401         UnusedParam.h is empty now so there's no need to include it anymore.
3402
3403         * wtf/Atomics.h:
3404         * wtf/BoundsCheckedPointer.h:
3405         * wtf/DateMath.h:
3406         * wtf/FastMalloc.cpp:
3407         * wtf/NumberOfCores.cpp:
3408         * wtf/OSAllocator.h:
3409         * wtf/OSAllocatorPosix.cpp:
3410         * wtf/PageAllocation.h:
3411         * wtf/RefCounted.h:
3412         * wtf/TCSystemAlloc.cpp:
3413         * wtf/ThreadingPthreads.cpp:
3414         * wtf/Vector.h:
3415         * wtf/dtoa/cached-powers.cc:
3416         * wtf/dtoa/fixed-dtoa.cc:
3417
3418 2013-05-12  Anders Carlsson  <andersca@apple.com>
3419
3420         Move UNUSED_PARAM and UNUSED_LABEL macros to Compiler.h
3421         https://bugs.webkit.org/show_bug.cgi?id=115997
3422
3423         Reviewed by Benjamin Poulain.
3424
3425         UnusedParam.h predates Compiler.h and the macros defined there should just go into Compiler.h
3426
3427         * wtf/Compiler.h:
3428         (unusedParam):
3429         * wtf/UnusedParam.h:
3430
3431 2013-05-12  Anders Carlsson  <andersca@apple.com>
3432
3433         Remove Complex.h from WTF
3434         https://bugs.webkit.org/show_bug.cgi?id=115989
3435
3436         Reviewed by Beth Dakin.
3437
3438         Complex.h contains a typedef and a single function (that already has an equivalent in the STL).
3439         The header is used by three files in WebCore, so just use std::complex<double> and std::polar directly.
3440
3441         * GNUmakefile.list.am:
3442         * WTF.vcproj/WTF.vcproj:
3443         * WTF.vcxproj/WTF.vcxproj:
3444         * WTF.vcxproj/WTF.vcxproj.filters:
3445         * WTF.xcodeproj/project.pbxproj:
3446         * wtf/CMakeLists.txt:
3447         * wtf/Complex.h: Removed.
3448
3449 2013-05-11  Martin Robinson  <mrobinson@igalia.com>
3450
3451         [GTK] Add a basic cmake build for WTF and JavaScriptCore
3452         https://bugs.webkit.org/show_bug.cgi?id=115967
3453
3454         Reviewed by Laszlo Gombos.
3455
3456         * wtf/PlatformGTK.cmake: Added.
3457
3458 2013-05-11  Martin Robinson  <mrobinson@igalia.com>
3459
3460         Move defines to platform
3461
3462         [GTK] Move defines that will never be configured to Platform.h
3463         https://bugs.webkit.org/show_bug.cgi?id=115965
3464
3465         Reviewed by Andreas Kling.
3466
3467         * wtf/Platform.h: Add new defines that were previously in the autoconf header.
3468
3469 2013-05-12  Anders Carlsson  <andersca@apple.com>
3470
3471         Simplify AutodrainedPool
3472         https://bugs.webkit.org/show_bug.cgi?id=115986
3473
3474         Reviewed by Andreas Kling.
3475
3476         Remove the ability to cycle an AutodrainedPool, as well as the iteration count.
3477         Creating and draining pools is fast enough now that we don't need to try to be clever about it.
3478
3479         * wtf/AutodrainedPool.h:
3480         (AutodrainedPool):
3481         (WTF::AutodrainedPool::AutodrainedPool):
3482         * wtf/AutodrainedPoolMac.mm:
3483         (WTF::AutodrainedPool::AutodrainedPool):
3484
3485 2013-05-12  Anders Carlsson  <andersca@apple.com>
3486
3487         Move RemoteMemoryReader into FastMalloc.cpp
3488         https://bugs.webkit.org/show_bug.cgi?id=115985
3489
3490         Reviewed by Andreas Kling.
3491
3492         RemoteMemoryReader is only used in FastMalloc.cpp, and even had one of its member functions
3493         implemented there, so move the entire class template there and remove MallocZoneSupport.h.
3494
3495         * GNUmakefile.list.am:
3496         * WTF.pro:
3497         * WTF.vcproj/WTF.vcproj:
3498         * WTF.vcxproj/WTF.vcxproj:
3499         * WTF.vcxproj/WTF.vcxproj.filters:
3500         * WTF.xcodeproj/project.pbxproj:
3501         * wtf/CMakeLists.txt:
3502         * wtf/FastMalloc.cpp:
3503         (WTF):
3504         (PageHeapAllocator):
3505         (WTF::TCMalloc_ThreadCache::CreateCacheIfNecessary):
3506         * wtf/MallocZoneSupport.h: Removed.
3507
3508 2013-05-10  Laszlo Gombos  <l.gombos@samsung.com>
3509
3510         Remove USE(OS_RANDOMNESS)
3511         https://bugs.webkit.org/show_bug.cgi?id=108095
3512
3513         Reviewed by Darin Adler.
3514
3515         Remove the USE(OS_RANDOMNESS) guard as it is turned on for all
3516         ports.
3517
3518         * wtf/CryptographicallyRandomNumber.cpp:
3519         (WTF::cryptographicallyRandomValues):
3520         * wtf/CryptographicallyRandomNumber.h:
3521         * wtf/OSRandomSource.cpp:
3522         (WTF::cryptographicallyRandomValuesFromOS):
3523         * wtf/OSRandomSource.h:
3524         * wtf/Platform.h:
3525         * wtf/RandomNumber.cpp:
3526         (WTF::randomNumber):
3527         * wtf/RandomNumber.h:
3528         * wtf/RandomNumberSeed.h:
3529         (WTF::initializeRandomNumberGenerator):
3530
3531 2013-05-10  Carlos Garcia Campos  <cgarcia@igalia.com>
3532
3533         [GTK] Remove unnecessary GLIB_CHECK_VERSION #ifdefs
3534         https://bugs.webkit.org/show_bug.cgi?id=115904
3535
3536         Reviewed by Martin Robinson.
3537
3538         * wtf/gobject/GRefPtr.cpp:
3539
3540 2013-05-09  Darin Adler  <darin@apple.com>
3541
3542         RenderQuote has giant function for language to quotes map
3543         https://bugs.webkit.org/show_bug.cgi?id=115807
3544
3545         Reviewed by Anders Carlsson.
3546
3547         * wtf/unicode/CharacterNames.h: Added a couple of character names.
3548
3549 2013-05-08  Michael Saboff  <msaboff@apple.com>
3550
3551         JSC: There should be a disassembler for ARM Thumb 2
3552         https://bugs.webkit.org/show_bug.cgi?id=115827
3553
3554         Reviewed by Filip Pizlo.
3555
3556         Added a new disassembler for ARMv7 Thumb2 instructions for use by the JSC debugging
3557         and profiling code.  Enabled the disassembler for IOS bulds.
3558
3559         * wtf/Platform.h:
3560
3561 2013-05-08  Mikhail Pozdnyakov  <mikhail.pozdnyakov@intel.com>
3562
3563         Simplify RetainPtrObjectHashTraits
3564         https://bugs.webkit.org/show_bug.cgi?id=115822
3565
3566         Reviewed by Benjamin Poulain.
3567
3568         RetainPtrObjectHashTraits is inherited from SimpleClassHashTraits
3569         instead of GenericHashTraits re-using more shared functionality.
3570
3571         * wtf/RetainPtr.h:
3572         (WTF::RetainPtrObjectHashTraits::emptyValue):
3573
3574 2013-05-08  Anders Carlsson  <andersca@apple.com>
3575
3576         Assert at compile time that we don't pass Objective-C object pointers to adoptCF
3577         https://bugs.webkit.org/show_bug.cgi?id=115823
3578
3579         Reviewed by Geoffrey Garen.
3580
3581         static_assert in adoptCF that the object passed in is not an Objective-C object.
3582         * wtf/RetainPtr.h:
3583
3584 2013-05-08  Anders Carlsson  <andersca@apple.com>
3585
3586         Remove RetainPtr::adoptNS and RetainPtr::adoptCF
3587         https://bugs.webkit.org/show_bug.cgi?id=115817
3588
3589         Reviewed by Jessie Berlin.
3590
3591         These functions are now unused so remove them. The preferred way to create a RetainPtr with an
3592         adopted reference is to use the adoptNS/adoptCF free functions.
3593         
3594         Rewrite the move assignment operators to just call CFRelease explicitly.
3595
3596         * wtf/RetainPtr.h:
3597
3598 2013-05-08  Anders Carlsson  <andersca@apple.com>
3599
3600         Remove ThreadingNone.cpp
3601
3602         Rubber-stamped by Beth Dakin.
3603
3604         ThreadingNone.cpp is empty and not used anywhere.
3605
3606         * wtf/ThreadingNone.cpp: Removed.
3607
3608 2013-05-08  Anders Carlsson  <andersca@apple.com>
3609
3610         Remove HashMap::deleteAllKeys
3611         https://bugs.webkit.org/show_bug.cgi?id=115806
3612
3613         Reviewed by Brent Fulgham.
3614
3615         This function was not used anywhere so let's get rid of it.
3616
3617         * wtf/HashMap.h:
3618
3619 2013-05-08  Eric Carlson  <eric.carlson@apple.com>
3620
3621         [Mac] Inband text tracks are not in track menu on Lion
3622         https://bugs.webkit.org/show_bug.cgi?id=115740
3623
3624         Reviewed by Dean Jackson.
3625
3626         * wtf/Platform.h: AVFOUNDATION_TEXT_TRACK_SUPPORT -> AVFOUNDATION_MEDIA_SELECTION_GROUP
3627
3628 2013-05-08  Mikhail Pozdnyakov  <mikhail.pozdnyakov@intel.com>
3629
3630         HashTraits<RefPtr<P> >::peek should consider empty value
3631         https://bugs.webkit.org/show_bug.cgi?id=115799
3632
3633         Reviewed by Darin Adler.
3634
3635         HashTraits<RefPtr<P> >::peek() should consider passing of empty value which is
3636         raw pointer equal to '0', and return it right away instead of converting it to RefPtr
3637         and invoking get().
3638
3639         * wtf/HashTraits.h:
3640
3641 2013-05-08  Mikhail Pozdnyakov  <mikhail.pozdnyakov@intel.com>
3642
3643         Avoid unnecessary arguments copying inside GenericHashTraits methods
3644         https://bugs.webkit.org/show_bug.cgi?id=115733
3645
3646         Reviewed by Darin Adler.
3647
3648         Before the change both WTF::GenericHashTraits::passOut and WTF::GenericHashTraits::passOut
3649         used to return the given argument always by value and that caused implicit extra
3650         copying of the argument. It was OK as long as argument type T was POD, as compiler
3651         could optimize it, but in case T was a class having non-trivial copy constructor the
3652         extra copying of the argument could not have been obviated.
3653
3654         The proposed solution is to provide overloaded functions that accept non-temporary
3655         values and return them by reference thus avoiding extra copying.
3656
3657         The proposed solution made an impact on the size of libjavascriptcore_efl.so (EFL
3658         release build): the size decreased from 6554992 bytes to 6554560 bytes.
3659
3660         * wtf/HashTraits.h:
3661         (WTF::GenericHashTraits::passOut): 
3662         (WTF::GenericHashTraits::peek):
3663
3664 2013-05-07  Anders Carlsson  <andersca@apple.com>
3665
3666         R