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