2010-09-14 Hyung Song <beergun@company100.net>
[WebKit-https.git] / JavaScriptCore / ChangeLog
1 2010-09-14  Hyung Song  <beergun@company100.net>
2
3         Reviewed by Kent Tamura.
4
5         [BREWMP] Add IMemGroup and IMemSpace to OwnPtr type.
6         https://bugs.webkit.org/show_bug.cgi?id=44764
7
8         * wtf/OwnPtrCommon.h:
9         * wtf/brew/OwnPtrBrew.cpp:
10         (WTF::deleteOwnedPtr):
11
12 2010-09-14  Darin Adler  <darin@apple.com>
13
14         Reviewed by Geoffrey Garen.
15
16         Sort with non-numeric custom sort function fails on array with length but no values
17         https://bugs.webkit.org/show_bug.cgi?id=45781
18
19         * runtime/JSArray.cpp:
20         (JSC::JSArray::sort): Replaced early exit for an array of length zero to instead
21         exit for any array without values, even if it has a non-0 length.
22
23 2010-09-14  Steve Falkenburg  <sfalken@apple.com>
24
25         Windows production build fix.
26         Roll out r65143.
27
28         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreGenerated.make:
29
30 2010-09-14  Kwang Yul Seo  <skyul@company100.net>
31
32         Reviewed by Darin Adler.
33
34         Share UnicodeMacrosFromICU.h
35         https://bugs.webkit.org/show_bug.cgi?id=45710
36
37         glib, qt4 and wince use the same macros from ICU.
38         Remove the code duplication and use the same header file.
39
40         * wtf/unicode/UnicodeMacrosFromICU.h: Copied from JavaScriptCore/wtf/unicode/glib/UnicodeMacrosFromICU.h.
41         * wtf/unicode/glib/UnicodeMacrosFromICU.h: Removed.
42         * wtf/unicode/qt4/UnicodeQt4.h:
43         * wtf/unicode/wince/UnicodeWince.h:
44
45 2010-09-13  Darin Adler  <darin@apple.com>
46
47         Reviewed by Adam Barth.
48
49         Preparation for eliminating deprecatedParseURL
50         https://bugs.webkit.org/show_bug.cgi?id=45695
51
52         * wtf/text/WTFString.h: Added isAllSpecialCharacters, moved here from
53         the HTML tree builder.
54
55 2010-09-13  Darin Fisher  <darin@chromium.org>
56
57         Reviewed by David Levin.
58
59         Add option to conditionally compile smooth scrolling support.
60         https://bugs.webkit.org/show_bug.cgi?id=45689
61
62         ENABLE(SMOOTH_SCROLLING) is disabled by default for all platforms.
63
64         * wtf/Platform.h:
65
66 2010-09-13  Adam Roben  <aroben@apple.com>
67
68         Copy JavaScriptCore's generated sources to the right directory
69
70         * JavaScriptCore.vcproj/JavaScriptCore.make: Fixed typo.
71
72 2010-09-13  Kwang Yul Seo  <skyul@company100.net>
73
74         Reviewed by Kent Tamura.
75
76         [BREWMP] Don't call _msize
77         https://bugs.webkit.org/show_bug.cgi?id=45556
78
79         Because Brew MP uses its own memory allocator, it is not correct to use
80         _msize in fastMallocSize. Add !PLATFORM(BREWMP) guard.
81
82         * wtf/FastMalloc.cpp:
83         (WTF::fastMallocSize):
84
85 2010-09-11  Simon Hausmann  <simon.hausmann@nokia.com>
86
87         Reviewed by Andreas Kling.
88
89         [Qt] V8 port: webcore project files changes
90         https://bugs.webkit.org/show_bug.cgi?id=45141
91
92         * JavaScriptCore.pro: Moved wtf specific files to wtf.pri,
93         so that they can also be used from WebCore.pro for v8 builds.
94         * wtf/wtf.pri: Added.
95
96 2010-09-10  Fridrich Strba  <fridrich.strba@bluewin.ch>
97
98         Reviewed by Andreas Kling.
99
100         Add a define missing when building with glib unicode backend
101         https://bugs.webkit.org/show_bug.cgi?id=45544
102
103         * wtf/unicode/glib/UnicodeMacrosFromICU.h:
104
105 2010-09-10  Stephanie Lewis  <slewis@apple.com>
106
107         Reviewed by Alexey Proskuryakov.
108         
109         Refactor JavaScriptCore memory statistics so that WebKit doesn't need to know 
110         about the JIT and other implementation details of JavaScriptCore.  Necessary 
111         to fix PPC build.
112         
113         https://bugs.webkit.org/show_bug.cgi?id=45528
114
115         * JavaScriptCore.exp:
116         * JavaScriptCore.xcodeproj/project.pbxproj:
117         * runtime/MemoryStatistics.cpp: Added.
118         (JSC::memoryStatistics):
119         * runtime/MemoryStatistics.h: Added.
120
121 2010-09-09  Michael Saboff  <msaboff@apple.com>
122
123         Reviewed by Gavin Barraclough.
124
125         Added a regular expression tracing facility.  This tracing is connected
126         to jsc.  Every compiled regular expression object is added to a list.
127         When the process exits, each regular expression dumps its pattern,
128         JIT address, number of times it was executed and the number of matches.
129         This tracing is controlled by the macro ENABLE_REGEXP_TRACING in
130         wtf/Platform.h.
131         https://bugs.webkit.org/show_bug.cgi?id=45401
132
133         * JavaScriptCore.exp:
134         * jsc.cpp:
135         (runWithScripts):
136         * runtime/JSGlobalData.cpp:
137         (JSC::JSGlobalData::JSGlobalData):
138         (JSC::JSGlobalData::~JSGlobalData):
139         (JSC::JSGlobalData::addRegExpToTrace):
140         (JSC::JSGlobalData::dumpRegExpTrace):
141         * runtime/JSGlobalData.h:
142         * runtime/RegExp.cpp:
143         (JSC::RegExp::RegExp):
144         (JSC::RegExp::create):
145         (JSC::RegExp::match):
146         * runtime/RegExp.h:
147         * wtf/Platform.h:
148         * yarr/RegexJIT.h:
149         (JSC::Yarr::RegexCodeBlock::getAddr):
150
151 2010-09-09  John Therrell  <jtherrell@apple.com>
152
153         32-bit build fix.
154
155         * jit/ExecutableAllocator.cpp:
156         (JSC::ExecutableAllocator::committedByteCount):
157
158 2010-09-09  John Therrell  <jtherrell@apple.com>
159
160         Reviewed by Alexey Proskuryakov.
161
162         Added statistics sampling and reporting for JavaScriptCore's RegisterFile and ExecutableAllocator classes
163         https://bugs.webkit.org/show_bug.cgi?id=45134
164
165         Added thread-safe committed byte counting and reporting functionality to RegisterFile and 
166         ExecutableAllocator.
167
168         * JavaScriptCore.exp:
169         Exported new symbols to allow for WebKit to get statistics from JavaScriptCore classes.
170         
171         * interpreter/RegisterFile.cpp:
172         (JSC::registerFileStatisticsMutex):
173         Added function which returns a static Mutex used for locking during read/write access to
174         static committed byte count variable.
175         (JSC::RegisterFile::~RegisterFile):
176         Added call to addToStatistics since memory is decommitted here.
177         (JSC::RegisterFile::releaseExcessCapacity):
178         Added call to addToStatistics since memory is decommitted here.
179         (JSC::RegisterFile::initializeThreading):
180         Added function which calls registerFileStatisticsMutex().
181         (JSC::RegisterFile::committedByteCount):
182         Added function which returns the current committed byte count for RegisterFile.
183         (JSC::RegisterFile::addToCommittedByteCount):
184         Added function which updates committed byte count.
185         
186         * interpreter/RegisterFile.h:
187         (JSC::RegisterFile::RegisterFile):
188         Added call to addToStatistics since memory is committed here.
189         (JSC::RegisterFile::grow):
190         Added call to addToStatistics since memory is committed here.
191         
192         * jit/ExecutableAllocator.h:
193         Added function prototype for public static function committedByteCount().
194         
195         * jit/ExecutableAllocatorFixedVMPool.cpp:
196         (JSC::FixedVMPoolAllocator::release):
197         Added call to addToStatistics since memory is decommitted here.
198         (JSC::FixedVMPoolAllocator::reuse):
199         Added call to addToStatistics since memory is committed here.
200         (JSC::FixedVMPoolAllocator::addToCommittedByteCount):
201         Added function which updates committed byte count.
202         (JSC::ExecutableAllocator::committedByteCount):
203         Added function which returns the current committed byte count for ExecutableAllocator.
204         
205         * runtime/InitializeThreading.cpp:
206         (JSC::initializeThreadingOnce):
207         Added call to RegisterFile::initializeThreading.
208
209 2010-09-09  Mark Rowe  <mrowe@apple.com>
210
211         Reviewed by Oliver Hunt.
212
213         <http://webkit.org/b/45502> JSObjectSetPrivateProperty does not handle NULL values as it claims
214
215         * API/JSObjectRef.cpp:
216         (JSObjectSetPrivateProperty): Don't call toJS if we have a NULL value as that will cause an assertion
217         failure. Instead map NULL directly to the null JSValue.
218         * API/tests/testapi.c:
219         (main): Add test coverage for the NULL value case.
220
221 2010-09-09  Csaba Osztrogonác  <ossy@webkit.org>
222
223         Reviewed by Gavin Barraclough.
224
225         [Qt] JSVALUE32_64 not works on Windows platform with MinGW compiler
226         https://bugs.webkit.org/show_bug.cgi?id=29268
227
228         * wtf/Platform.h: Enable JSVALUE32_64 for Qt/Windows/MinGW, because it works now.
229
230 2010-09-08  Zoltan Herczeg  <zherczeg@webkit.org>
231
232         Reviewed by Darin Adler.
233
234         Removing doneSemicolon label in the lexer
235         https://bugs.webkit.org/show_bug.cgi?id=45289
236
237         As a side effect of moving the multiline comment parsing
238         to a separate function, an opportunity raised to simplify
239         the single line comment parsing, and removing doneSemicolon
240         label. Slight performance increase on --parse-only
241         tests (from 32.8ms to 31.5ms)
242
243         * parser/Lexer.cpp:
244         (JSC::Lexer::lex):
245
246 2010-09-08  Xan Lopez  <xlopez@igalia.com>
247
248         Reviewed by Alexey Proskuryakov.
249
250         Remove accessor for private member variable in JSParser
251         https://bugs.webkit.org/show_bug.cgi?id=45378
252
253         m_token is private to JSParser, so it does not seem to be useful
254         to have an accessor for it. On top of that, the file was both
255         using the accessor and directly accessing the member variable,
256         only one style should be used.
257
258 2010-09-08  Csaba Osztrogonác  <ossy@webkit.org>
259
260         Reviewed by Oliver Hunt.
261
262         [Qt] REGRESSION(63348): jsc is broken
263         https://bugs.webkit.org/show_bug.cgi?id=42818
264
265         Need fastcall conventions on Qt/Win/MinGW.
266         Based on patches of Gavin Barraclough: r63947 and r63948.
267
268         * jit/JITStubs.cpp:
269         * jit/JITStubs.h:
270
271 2010-09-08  Robert Hogan  <robert@webkit.org>
272
273         Reviewed by Antonio Gomes.
274
275         Remove some unnecessary duplicate calls to string functions
276
277         https://bugs.webkit.org/show_bug.cgi?id=45314
278
279         * wtf/text/WTFString.cpp:
280         (WTF::String::format):
281
282 2010-09-08  Jocelyn Turcotte  <jocelyn.turcotte@nokia.com>
283
284         Reviewed by Andreas Kling.
285
286         Re-Disable JIT for MSVC 64bit to fix the build on this compiler.
287         https://bugs.webkit.org/show_bug.cgi?id=45382
288
289         It was enabled in the cleanup made in r64176, though it is still
290         not implemented.
291
292         * wtf/Platform.h:
293
294 2010-09-08  Martin Robinson  <mrobinson@igalia.com>
295
296         Reviewed by Xan Lopez.
297
298         [GTK] Need a WebSocket implementation
299         https://bugs.webkit.org/show_bug.cgi?id=45197
300
301         Add a GIO-based WebSocket implementation.
302
303         * wtf/gobject/GRefPtr.cpp: Added PlatformRefPtr support for GSource.
304         (WTF::refPlatformPtr):
305         (WTF::derefPlatformPtr):
306         * wtf/gobject/GRefPtr.h: Added new template specialization declarations.
307         * wtf/gobject/GTypedefs.h: Add some more GLib/GIO forward declarations.
308
309 2010-08-30  Maciej Stachowiak  <mjs@apple.com>
310
311         Reviewed by Darin Adler.
312
313         Handle MediaQueryExp memory management exclusively with smart pointers
314         https://bugs.webkit.org/show_bug.cgi?id=44874
315         
316         Implemented a non-copying sort function to make it possible to sort a Vector
317         of OwnPtrs (which cannot be copied). This is required for the above.
318
319         * wtf/NonCopyingSort.h: Added.
320         (WTF::nonCopyingSort): It's secretly heapsort.
321         (WTF::heapSort): heapsort implementation.
322         (WTF::siftDown): Helper function for heapsort.
323         (WTF::heapify): ditto
324
325         Adjust build systems.
326         
327         * GNUmakefile.am:
328         * JavaScriptCore.gypi:
329         * JavaScriptCore.vcproj/WTF/WTF.vcproj:
330         * JavaScriptCore.xcodeproj/project.pbxproj:
331
332 2010-09-08  Zoltan Herczeg  <zherczeg@webkit.org>
333
334         Reviewed by Darin Adler.
335
336         Refactoring multiline comments in the lexer
337         https://bugs.webkit.org/show_bug.cgi?id=45289
338
339         MultiLine comment parsing is moved to a separate function.
340
341         Slight performance increase on --parse-only tests (from 33.6ms to 32.8ms)
342         SunSpider reports no change (from 523.1ms to 521.2ms).
343
344         * parser/Lexer.cpp:
345         (JSC::Lexer::parseMultilineComment):
346         (JSC::Lexer::lex):
347         * parser/Lexer.h:
348
349 2010-09-07  James Robinson  <jamesr@chromium.org>
350
351         Compile fix attempt for windows.
352
353         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
354
355 2010-09-07  Mihai Parparita  <mihaip@chromium.org>
356
357         Reviewed by James Robinson.
358
359         Fix Windows build after r66936
360         https://bugs.webkit.org/show_bug.cgi?id=45348
361
362         Add symbol names that were missing from r66936.
363
364         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
365
366 2010-09-07  Mihai Parparita  <mihaip@chromium.org>
367
368         Reviewed by Oliver Hunt.
369
370         pushState and replaceState do not clone RegExp objects correctly
371         https://bugs.webkit.org/show_bug.cgi?id=44718
372         
373         Move internal representation of JSC::RegExp (which depends on wether
374         YARR and YARR_JIT is enabled) into RegExpRepresentation which can live
375         in the implementation only. This makes it feasible to use RegExp in
376         WebCore without bringing in all of YARR.
377
378         * JavaScriptCore.exp: Export RegExp and RegExpObject functions that are
379         needed inside WebCore's JSC bindings.
380         * runtime/RegExp.cpp:
381         (JSC::RegExpRepresentation::~RegExpRepresentation):
382         (JSC::RegExp::RegExp):
383         (JSC::RegExp::~RegExp):
384         (JSC::RegExp::compile):
385         (JSC::RegExp::match):
386         * runtime/RegExp.h:
387
388 2010-09-07  Anders Carlsson  <andersca@apple.com>
389
390         Reviewed by Darin Adler.
391
392         <rdar://problem/8381749> -Wcast-align warning emitted when building with clang
393
394         Remove the -Wcast-align-warning since it isn't really useful, and clang is more aggressive about warning than gcc.
395
396         * Configurations/Base.xcconfig:
397
398 2010-09-07  Zoltan Horvath  <zoltan@webkit.org>
399
400         Reviewed by Darin Adler.
401
402         REGRESSION(66741): Undefined pthread macros
403         https://bugs.webkit.org/show_bug.cgi?id=45246
404
405         PTHREAD_MUTEX_NORMAL and PTHREAD_MUTEX_DEFAULT (introduced in r60487) are not defined on Linux, 
406         but used in a statement. Add an additional check to test this.
407
408         * wtf/FastMalloc.cpp:
409         (WTF::TCMalloc_PageHeap::initializeScavenger):
410
411 2010-09-06  Oliver Hunt  <oliver@apple.com>
412
413         Windows build fix
414
415 2010-09-05  Oliver Hunt  <oliver@apple.com>
416
417         Reviewed by Sam Weinig.
418
419         SerializedScriptValue needs to use a flat storage mechanism
420         https://bugs.webkit.org/show_bug.cgi?id=45244
421
422         Export JSArray::put
423
424         * JavaScriptCore.exp:
425
426 2010-09-06  Chao-ying Fu  <fu@mips.com>
427
428         Reviewed by Oliver Hunt.
429
430         Support JSVALUE32_64 on MIPS
431         https://bugs.webkit.org/show_bug.cgi?id=43999
432
433         Add missing functions to support JSVALUE32_64 on MIPS.
434         Remove JSVALUE32 as the default for MIPS.
435
436         * assembler/MIPSAssembler.h:
437         (JSC::MIPSAssembler::divd):
438         (JSC::MIPSAssembler::mthc1):
439         (JSC::MIPSAssembler::cvtwd):
440         * assembler/MacroAssemblerMIPS.h:
441         (JSC::MacroAssemblerMIPS::neg32):
442         (JSC::MacroAssemblerMIPS::branchOr32):
443         (JSC::MacroAssemblerMIPS::set8):
444         (JSC::MacroAssemblerMIPS::loadDouble):
445         (JSC::MacroAssemblerMIPS::divDouble):
446         (JSC::MacroAssemblerMIPS::convertInt32ToDouble):
447         (JSC::MacroAssemblerMIPS::branchDouble):
448         (JSC::MacroAssemblerMIPS::branchConvertDoubleToInt32):
449         (JSC::MacroAssemblerMIPS::zeroDouble):
450         * jit/JIT.h:
451         * jit/JITOpcodes32_64.cpp:
452         (JSC::JIT::privateCompileCTINativeCall):
453         * jit/JITPropertyAccess32_64.cpp:
454         (JSC::JIT::privateCompilePutByIdTransition):
455         * jit/JITStubs.cpp:
456         (JSC::JITThunks::JITThunks):
457         * jit/JITStubs.h:
458         * wtf/Platform.h:
459
460 2010-09-06  Robert Hogan  <robert@webkit.org>
461
462         Unreviewed, compile fix.
463
464         Fix compile failure in r66843
465
466         Revert to original patch in bugzilla. Leave bug open for
467         discussion on potential removal of double utf8 conversion.
468
469         https://bugs.webkit.org/show_bug.cgi?id=45240
470
471         * wtf/text/WTFString.cpp:
472         (WTF::String::format):
473
474 2010-09-06  Robert Hogan  <robert@webkit.org>
475
476         Reviewed by Andreas Kling.
477
478         [Qt] utf8 encoding of console() messages
479
480         Unskip:
481         http/tests/security/xssAuditor/embed-tag-null-char.html
482         http/tests/security/xssAuditor/object-embed-tag-null-char.html
483
484         Both tests failed because Qt's implementation of String::format()
485         is casting a utf8 result to String, which assumes latin1 in
486         its constructor. So instead of casting a QString to a String, use
487         StringImpl::create() instead. Unfortunately, this involves a lot
488         of extra casts but the end result is correct.
489
490         https://bugs.webkit.org/show_bug.cgi?id=45240
491
492         * wtf/text/WTFString.cpp:
493         (WTF::String::format):
494
495 2010-09-03  Alexey Proskuryakov  <ap@apple.com>
496
497         Reviewed by Darin Adler.
498
499         https://bugs.webkit.org/show_bug.cgi?id=45135
500         <rdar://problem/7823714> TCMalloc_PageHeap doesn't hold a mutex while manipulating shared data
501
502         * wtf/FastMalloc.cpp:
503         (WTF::TCMalloc_PageHeap::initializeScavenger): Make sure to create a non-recursive mutex
504         regardless of platform default, so that we can assert that it's held (this is for platforms
505         that don't have libdispatch).
506         (WTF::TCMalloc_PageHeap::signalScavenger): Assert that the mutex is held, so we can look
507         at m_scavengeThreadActive. For platforms that have libdispatch, assert that pageheap_lock
508         is held.
509         (WTF::TCMalloc_PageHeap::periodicScavenge): Make sure that pageheap_lock is held before
510         manipulating m_scavengeThreadActive. Otherwise, there is an obvious race condition, and we
511         can make unbalanced calls to dispatch_resume().
512
513 2010-09-03  Lucas De Marchi  <lucas.demarchi@profusion.mobi>
514
515         Reviewed by Martin Robinson.
516
517         [EFL] Regression (66531) Build break with Glib Support
518         https://bugs.webkit.org/show_bug.cgi?id=45011
519
520         Move GtkTypedefs.h to GTypedefs.h and let it inside gobject directory
521         since when glib is enabled, EFL port needs it, too.
522
523         * CMakeListsEfl.txt: Include gobject directory to find new header
524         file.
525         * GNUmakefile.am: Ditto.
526         * wtf/CMakeListsEfl.txt: Ditto.
527         * wtf/Platform.h: Include header if port is EFL and glib support is
528         enabled.
529         * wtf/gtk/GtkTypedefs.h: Removed.
530         * wtf/gobject/GTypedefs.h: Added. Sections specific to GTK are now
531         guarded by PLATFORM(GTK).
532
533 2010-09-03  Csaba Osztrogonác  <ossy@webkit.org>
534
535         Reviewed by Simon Hausmann.
536
537         Fix warning in wtf/ByteArray.h
538         https://bugs.webkit.org/show_bug.cgi?id=44672
539
540         * wtf/ByteArray.h: Use maximal sized array for MSVC and unsized array for other compilers.
541
542 2010-09-02  Adam Barth  <abarth@webkit.org>
543
544         Reviewed by Eric Seidel.
545
546         Actually parse a URL from ParsedURL
547         https://bugs.webkit.org/show_bug.cgi?id=45080
548
549         This patch only handles standard URLs.  At some point we'll need to
550         distinguish between standard URLs and other kinds of URLs.
551
552         * wtf/url/api/ParsedURL.cpp:
553         (WTF::ParsedURL::ParsedURL):
554
555 2010-09-02  Adam Barth  <abarth@webkit.org>
556
557         Reviewed by Eric Seidel.
558
559         Add ParsedURL and URLString to WTFURL API
560         https://bugs.webkit.org/show_bug.cgi?id=45078
561
562         Currently there's no actual URL parsing going on, but this patch is a
563         start to sketching out the API.
564
565         * JavaScriptCore.xcodeproj/project.pbxproj:
566         * wtf/url/api/ParsedURL.cpp: Added.
567         (WTF::ParsedURL::ParsedURL):
568         (WTF::ParsedURL::scheme):
569         (WTF::ParsedURL::username):
570         (WTF::ParsedURL::password):
571         (WTF::ParsedURL::host):
572         (WTF::ParsedURL::port):
573         (WTF::ParsedURL::path):
574         (WTF::ParsedURL::query):
575         (WTF::ParsedURL::fragment):
576         (WTF::ParsedURL::segment):
577         * wtf/url/api/ParsedURL.h: Added.
578         (WTF::ParsedURL::spec):
579         * wtf/url/api/URLString.h: Added.
580         (WTF::URLString::URLString):
581         (WTF::URLString::string):
582
583 2010-09-02  Adam Barth  <abarth@webkit.org>
584
585         Reviewed by Eric Seidel.
586
587         Add WTFURL to the JavaScriptCore build on Mac
588         https://bugs.webkit.org/show_bug.cgi?id=45075
589
590         Building code is good.
591
592         * JavaScriptCore.xcodeproj/project.pbxproj:
593
594 2010-09-02  Alexey Proskuryakov  <ap@apple.com>
595
596         Reviewed by Oliver Hunt.
597
598         https://bugs.webkit.org/show_bug.cgi?id=43230
599         <rdar://problem/8254215> REGRESSION: Memory leak within JSParser::JSParser
600
601         One can't delete a ThreadSpecific object that has data in it. It's not even possible to
602         enumerate data objects in all threads, much less destroy them from a thread that's destroying
603         the ThreadSpecific.
604
605         * parser/JSParser.cpp:
606         (JSC::JSParser::JSParser):
607         * runtime/JSGlobalData.h: 
608         * wtf/WTFThreadData.cpp:
609         (WTF::WTFThreadData::WTFThreadData):
610         * wtf/WTFThreadData.h:
611         (WTF::WTFThreadData::approximatedStackStart):
612         Moved stack guard tracking from JSGlobalData to WTFThreadData.
613
614         * wtf/ThreadSpecific.h: Made destructor unimplemented. It's dangerous, and we probably won't
615         ever face a situation where we'd want to delete a ThreadSpecific object.
616
617 2010-09-01  Gavin Barraclough  <barraclough@apple.com>
618
619         Rubber stamped by Oliver Hunt.
620
621         Ecma-262 15.11.1.1 states that if the argument is undefined then an
622         Error object's message property should be set to the empty string.
623
624         * runtime/ErrorInstance.cpp:
625         (JSC::ErrorInstance::ErrorInstance):
626         (JSC::ErrorInstance::create):
627         * runtime/ErrorInstance.h:
628         * runtime/ErrorPrototype.cpp:
629         (JSC::ErrorPrototype::ErrorPrototype):
630
631 2010-08-31  Darin Adler  <darin@apple.com>
632
633         Reviewed by Anders Carlsson.
634
635         * wtf/FastMalloc.cpp:
636         (WTF::TCMalloc_PageHeap::scavenge): Replaced somewhat-quirky code that
637         mixed types with code that uses size_t.
638
639         * wtf/TCPageMap.h: Removed names of unused arguments to avoid warning.
640
641 2010-08-31  Martin Robinson  <mrobinson@igalia.com>
642
643         Reviewed by Gustavo Noronha Silva.
644
645         [GTK] Isolate all GTK+ typedefs into one file
646         https://bugs.webkit.org/show_bug.cgi?id=44900
647
648         * GNUmakefile.am: Add GtkTypedefs.h to the source lists.
649         * wtf/Platform.h: #include GtkTypedefs.h for the GTK+ build.
650         * wtf/ThreadingPrimitives.h: Remove GTK+ typedefs.
651         * wtf/gobject/GOwnPtr.h: Ditto.
652         * wtf/gobject/GRefPtr.h: Ditto.
653         * wtf/gtk/GtkTypedefs.h: Added.
654
655 2010-08-31  Martin Robinson  <mrobinson@igalia.com>
656
657         Reviewed by Gustavo Noronha Silva.
658
659         [GTK] Fix 'make dist' in preparation of the 1.3.3 release
660         https://bugs.webkit.org/show_bug.cgi?id=44978
661
662         * GNUmakefile.am: Adding missing headers to the sources list.
663
664 2010-08-31  Chao-ying Fu  <fu@mips.com>
665
666         Reviewed by Oliver Hunt.
667
668         Support emit_op_mod() for MIPS
669         https://bugs.webkit.org/show_bug.cgi?id=42855
670
671         This patch uses MIPS div instructions for op_mod to improve performance.
672
673         * assembler/MIPSAssembler.h:
674         (JSC::MIPSAssembler::div):
675         * jit/JITArithmetic.cpp:
676         (JSC::JIT::emit_op_mod):
677         (JSC::JIT::emitSlow_op_mod):
678
679 2010-08-31  Csaba Osztrogonác  <ossy@webkit.org>
680
681         Reviewed by Darin Adler.
682
683         Modify ASSERT_UNUSED and UNUSED_PARAM similar to Qt's Q_UNUSED.
684         https://bugs.webkit.org/show_bug.cgi?id=44870
685
686         * wtf/Assertions.h:
687         * wtf/UnusedParam.h:
688
689 2010-08-31  Benjamin Poulain  <benjamin.poulain@nokia.com>
690
691         Reviewed by Kenneth Rohde Christiansen.
692
693         JSC TimeoutChecker::didTimeOut overflows on ARM
694         https://bugs.webkit.org/show_bug.cgi?id=38538
695
696         Make getCPUTime() return values relative to the first call.
697         The previous implementation relied on simply on currentTime(), which
698         return a time since epoch and not a time since the thread started. This
699         made the return value of getCPUTime() overflow on 32 bits.
700
701         * runtime/TimeoutChecker.cpp:
702         (JSC::getCPUTime):
703
704 2010-08-30  Mihai Parparita  <mihaip@chromium.org>
705
706         Reviewed by Adam Barth.
707
708         HISTORY_ALWAYS_ASYNC should be removed (history should always be async)
709         https://bugs.webkit.org/show_bug.cgi?id=44315
710
711         Remove ENABLE_HISTORY_ALWAYS_ASYNC #define.
712
713         * wtf/Platform.h: 
714
715 2010-08-30  Chris Rogers  <crogers@google.com>
716
717         Reviewed by Kenneth Russell.
718
719         Fix namespace for wtf/Complex.h and wtf/Vector3.h
720         https://bugs.webkit.org/show_bug.cgi?id=44892
721
722         * wtf/Complex.h:
723         * wtf/Vector3.h:
724
725 2010-08-30  Andy Estes  <aestes@apple.com>
726
727         Reviewed by Eric Carlson.
728
729         Strings returned by asciiDebug() should be NULL-terminated.
730         https://bugs.webkit.org/show_bug.cgi?id=44866
731
732         * wtf/text/WTFString.cpp:
733         (asciiDebug):
734
735 2010-08-30  Zoltan Herczeg  <zherczeg@webkit.org>
736
737         Reviewed by Darin Adler.
738
739         Refactor number parsing in the lexer
740         https://bugs.webkit.org/show_bug.cgi?id=44104
741
742         Number parsing was full of gotos, and needed a complete
743         redesign to remove them (Only one remained). Furthermore
744         integer arithmetic is empolyed for fast cases (= small
745         integer numbers).
746
747         * parser/Lexer.cpp:
748         (JSC::Lexer::parseHex):
749         (JSC::Lexer::parseOctal):
750         (JSC::Lexer::parseDecimal):
751         (JSC::Lexer::parseNumberAfterDecimalPoint):
752         (JSC::Lexer::parseNumberAfterExponentIndicator):
753         (JSC::Lexer::lex):
754         * parser/Lexer.h:
755
756 2010-08-29  Darin Adler  <darin@apple.com>
757
758         Fix Qt build.
759
760         * wtf/unicode/glib/UnicodeMacrosFromICU.h: Added U_IS_BMP.
761         * wtf/unicode/qt4/UnicodeQt4.h: Ditto.
762         * wtf/unicode/wince/UnicodeWince.h: Ditto.
763
764 2010-08-29  Kwang Yul Seo  <skyul@company100.net>
765
766         Reviewed by Kent Tamura.
767
768         [BREWMP] Port vprintf_stderr_common
769         https://bugs.webkit.org/show_bug.cgi?id=33568
770
771         Use BREW's DBGPRINTF to output debug messages.
772
773         * wtf/Assertions.cpp:
774
775 2010-08-28  Gavin Barraclough  <barraclough@apple.com>
776
777         Reviewed by Oliver Hunt.
778
779         Bug 44830 - In Array's prototype functyions we're incorrectly handing large index values
780
781         We are in places casting doubles to unsigneds, and unsigneds to ints, without always check
782         that the result is within bounds. This is problematic in the case of double-to-unsigned
783         conversion because we should be saturating to array length.
784
785         Also, the error return value from Array.splice should be [], not undefined.
786
787         I don't see any security concerns here. These methods are spec'ed in such a way that they
788         can be applied to non Array objects, so in all cases the (potentially bogus) indices are
789         being passed to functions that will safely check accesses are within bounds.
790
791         * runtime/ArrayPrototype.cpp:
792         (JSC::argumentClampedIndexFromStartOrEnd):
793         (JSC::arrayProtoFuncJoin):
794         (JSC::arrayProtoFuncConcat):
795         (JSC::arrayProtoFuncReverse):
796         (JSC::arrayProtoFuncShift):
797         (JSC::arrayProtoFuncSlice):
798         (JSC::arrayProtoFuncSort):
799         (JSC::arrayProtoFuncSplice):
800         (JSC::arrayProtoFuncUnShift):
801         (JSC::arrayProtoFuncFilter):
802         (JSC::arrayProtoFuncMap):
803         (JSC::arrayProtoFuncEvery):
804         (JSC::arrayProtoFuncForEach):
805         (JSC::arrayProtoFuncSome):
806         (JSC::arrayProtoFuncReduce):
807         (JSC::arrayProtoFuncReduceRight):
808         (JSC::arrayProtoFuncIndexOf):
809         (JSC::arrayProtoFuncLastIndexOf):
810         * runtime/JSValue.h:
811         (JSC::JSValue::toUInt32):
812
813 2010-08-28  Pratik Solanki  <psolanki@apple.com>
814
815         Reviewed by Dan Bernstein.
816
817         Add an ENABLE define for purgeable memory support
818         https://bugs.webkit.org/show_bug.cgi?id=44777
819
820         * wtf/Platform.h:
821
822 2010-08-27  Kimmo Kinnunen  <kimmo.t.kinnunen@nokia.com>
823
824         Reviewed by Kenneth Rohde Christiansen.
825
826         [Qt] NPAPI Plugin metadata should be cached, and loading a plugin should not require loading every plugin
827         https://bugs.webkit.org/show_bug.cgi?id=43179
828
829         Add ENABLE_NETSCAPE_PLUGIN_METADATA_CACHE flag to enable persistent
830         NPAPI Plugin Cache. The flag is enabled by default.
831
832         * wtf/Platform.h: Add ENABLE_NETSCAPE_PLUGIN_METADATA_CACHE
833
834 2010-07-27  Jer Noble  <jer.noble@apple.com>
835
836         Reviewed by Eric Carlson.
837
838         Add JavaScript API to allow a page to go fullscreen.
839         rdar://problem/6867795
840         https://bugs.webkit.org/show_bug.cgi?id=43099
841
842         * wtf/Platform.h: Enable FULLSCREEN_API mode for the Mac (except iOS).
843
844 2010-08-27  Gavin Barraclough  <barraclough@apple.com>
845
846         Windows build fix pt 2.
847
848         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
849
850 2010-08-27  Gavin Barraclough  <barraclough@apple.com>
851
852         Windows build fix pt 1.
853
854         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
855
856 2010-08-27  Gavin Barraclough  <barraclough@apple.com>
857
858         Reviewed by Oliver Hunt.
859
860         Bug 44745 - Number.toFixed/toExponential/toPrecision are inaccurate.
861
862         These methods should be using a version of dtoa that can generate results accurate
863         to the requested precision, whereas our version of dtoa is only currently able to
864         support producing results sufficiently accurate to distinguish the value from any
865         other IEEE-754 double precision number.
866
867         This change has no impact on benchmarks we track.
868
869         On microbenchmarks for these functions, this is a slight regression where a high
870         precision is requested (dtoa now need to iterate further to generate a a greater
871         number of digits), but with smaller precision values (hopefully more common) this
872         improves performance, since it reduced the accurate of result dtoa is required,
873         to produce, and removes the need to pre-round values before calling dtoa. 
874
875         * JavaScriptCore.exp:
876             doubleToStringInJavaScriptFormat renamed to numberToString
877
878         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
879             doubleToStringInJavaScriptFormat renamed to numberToString
880
881         * runtime/UString.cpp:
882         (JSC::UString::number):
883             doubleToStringInJavaScriptFormat renamed to numberToString
884
885         * wtf/DecimalNumber.h:
886         (WTF::DecimalNumber::DecimalNumber):
887         (WTF::DecimalNumber::toStringDecimal):
888         (WTF::DecimalNumber::toStringExponential):
889             Remove all pre-rounding of values, instead call dtoa correctly.
890
891         * wtf/dtoa.cpp:
892         (WTF::dtoa):
893         * wtf/dtoa.h:
894             Reenable support for rounding to specific-figures/decimal-places in dtoa.
895             Modify to remove unbiased rounding, provide ECMA required away-from-zero.
896             Rewrite doubleToStringInJavaScriptFormat to use DecimalNumber, rename to
897             numberToString.
898
899 2010-08-27  Chao-ying Fu  <fu@mips.com>
900
901         Reviewed by Oliver Hunt.
902
903         Byte alignment issue on MIPS
904         https://bugs.webkit.org/show_bug.cgi?id=29415
905
906         MIPS accesses one byte at a time for now to avoid the help from the
907         kernel to fix unaligned accesses.
908
909         * wtf/text/AtomicString.cpp:
910         (WebCore::equal):
911         * wtf/text/StringHash.h:
912         (WebCore::StringHash::equal):
913
914 2010-08-27  Xan Lopez  <xlopez@igalia.com>
915
916         Reviewed by Tor Arne Vestbø.
917
918         Fix a couple of typos in comment.
919
920         * bytecode/CodeBlock.h:
921
922 2010-08-26  Gavin Barraclough  <barraclough@apple.com>
923
924         Windows build fix.
925
926         * wtf/dtoa.cpp:
927
928 2010-08-26  Gavin Barraclough  <baraclough@apple.com>
929
930         Reviewed by Sam Weinig.
931
932         Bug 44735 - Clean up dtoa.cpp
933         Remove unused & unmaintained code paths, reformat code to match
934         coding standard & use platform #defines from Platform.h directly.
935
936         * wtf/dtoa.cpp:
937         (WTF::storeInc):
938         (WTF::multadd):
939         (WTF::s2b):
940         (WTF::lo0bits):
941         (WTF::mult):
942         (WTF::pow5mult):
943         (WTF::lshift):
944         (WTF::diff):
945         (WTF::ulp):
946         (WTF::b2d):
947         (WTF::d2b):
948         (WTF::ratio):
949         (WTF::):
950         (WTF::strtod):
951         (WTF::quorem):
952         (WTF::dtoa):
953
954 2010-08-26  Gavin Barraclough  <barraclough@apple.com>
955
956         Rubber Stamped by Oliver Hunt.
957
958         Partially revert r65959. The toString changes regressed the v8 tests,
959         but keep the toFixed/toExponential/toPrecision changes.
960
961         * JavaScriptCore.exp:
962         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
963         * runtime/NumberPrototype.cpp:
964         * runtime/UString.cpp:
965         (JSC::UString::number):
966         * wtf/DecimalNumber.h:
967         * wtf/dtoa.cpp:
968         (WTF::append):
969         (WTF::doubleToStringInJavaScriptFormat):
970         * wtf/dtoa.h:
971         * wtf/text/WTFString.cpp:
972         * wtf/text/WTFString.h:
973
974 2010-08-26  James Robinson  <jamesr@chromium.org>
975
976         Reviewed by Darin Fisher.
977
978         [chromium] Remove the USE(GLES2_RENDERING) define and associated code
979         https://bugs.webkit.org/show_bug.cgi?id=43761
980
981         Remove WTF_USE_GLES2_RENDERING from the list of defines in chromium, it's unused.
982
983         * wtf/Platform.h:
984
985 2010-08-26  Gavin Barraclough  <barraclough@apple.com>
986
987         Rolling out r64608, this regressed performance.
988
989         * JavaScriptCore.xcodeproj/project.pbxproj:
990         * assembler/ARMAssembler.cpp:
991         (JSC::ARMAssembler::executableCopy):
992         * assembler/LinkBuffer.h:
993         (JSC::LinkBuffer::LinkBuffer):
994         (JSC::LinkBuffer::~LinkBuffer):
995         (JSC::LinkBuffer::performFinalization):
996         * assembler/MIPSAssembler.h:
997         (JSC::MIPSAssembler::executableCopy):
998         * assembler/X86Assembler.h:
999         (JSC::X86Assembler::executableCopy):
1000         * bytecode/StructureStubInfo.h:
1001         (JSC::StructureStubInfo::initGetByIdProto):
1002         (JSC::StructureStubInfo::initGetByIdChain):
1003         (JSC::StructureStubInfo::initGetByIdSelfList):
1004         (JSC::StructureStubInfo::initGetByIdProtoList):
1005         (JSC::StructureStubInfo::initPutByIdTransition):
1006         * jit/ExecutableAllocator.cpp:
1007         (JSC::ExecutablePool::systemAlloc):
1008         * jit/ExecutableAllocator.h:
1009         (JSC::ExecutablePool::create):
1010         (JSC::ExecutableAllocator::ExecutableAllocator):
1011         (JSC::ExecutableAllocator::poolForSize):
1012         (JSC::ExecutablePool::ExecutablePool):
1013         (JSC::ExecutablePool::poolAllocate):
1014         * jit/ExecutableAllocatorFixedVMPool.cpp:
1015         (JSC::FixedVMPoolAllocator::allocInternal):
1016         * jit/JIT.cpp:
1017         (JSC::JIT::privateCompile):
1018         * jit/JIT.h:
1019         (JSC::JIT::compileGetByIdProto):
1020         (JSC::JIT::compileGetByIdSelfList):
1021         (JSC::JIT::compileGetByIdProtoList):
1022         (JSC::JIT::compileGetByIdChainList):
1023         (JSC::JIT::compileGetByIdChain):
1024         (JSC::JIT::compilePutByIdTransition):
1025         (JSC::JIT::compilePatchGetArrayLength):
1026         * jit/JITOpcodes.cpp:
1027         (JSC::JIT::privateCompileCTIMachineTrampolines):
1028         * jit/JITOpcodes32_64.cpp:
1029         (JSC::JIT::privateCompileCTIMachineTrampolines):
1030         (JSC::JIT::privateCompileCTINativeCall):
1031         * jit/JITPropertyAccess.cpp:
1032         (JSC::JIT::stringGetByValStubGenerator):
1033         (JSC::JIT::privateCompilePutByIdTransition):
1034         (JSC::JIT::privateCompilePatchGetArrayLength):
1035         (JSC::JIT::privateCompileGetByIdProto):
1036         (JSC::JIT::privateCompileGetByIdSelfList):
1037         (JSC::JIT::privateCompileGetByIdProtoList):
1038         (JSC::JIT::privateCompileGetByIdChainList):
1039         (JSC::JIT::privateCompileGetByIdChain):
1040         * jit/JITPropertyAccess32_64.cpp:
1041         (JSC::JIT::stringGetByValStubGenerator):
1042         (JSC::JIT::privateCompilePutByIdTransition):
1043         (JSC::JIT::privateCompilePatchGetArrayLength):
1044         (JSC::JIT::privateCompileGetByIdProto):
1045         (JSC::JIT::privateCompileGetByIdSelfList):
1046         (JSC::JIT::privateCompileGetByIdProtoList):
1047         (JSC::JIT::privateCompileGetByIdChainList):
1048         (JSC::JIT::privateCompileGetByIdChain):
1049         * jit/JITStubs.cpp:
1050         (JSC::JITThunks::tryCachePutByID):
1051         (JSC::JITThunks::tryCacheGetByID):
1052         (JSC::DEFINE_STUB_FUNCTION):
1053         (JSC::getPolymorphicAccessStructureListSlot):
1054         * jit/JITStubs.h:
1055         * jit/SpecializedThunkJIT.h:
1056         (JSC::SpecializedThunkJIT::finalize):
1057         * runtime/ExceptionHelpers.cpp:
1058         * runtime/ExceptionHelpers.h:
1059         * runtime/Executable.cpp:
1060         (JSC::EvalExecutable::compileInternal):
1061         (JSC::ProgramExecutable::compileInternal):
1062         (JSC::FunctionExecutable::compileForCallInternal):
1063         (JSC::FunctionExecutable::compileForConstructInternal):
1064         (JSC::FunctionExecutable::reparseExceptionInfo):
1065         (JSC::EvalExecutable::reparseExceptionInfo):
1066         * yarr/RegexJIT.cpp:
1067         (JSC::Yarr::RegexGenerator::compile):
1068
1069 2010-08-26  Gavin Barraclough  <barraclough@apple.com>
1070
1071         Reviewed by Brady Eidson.
1072
1073         Bug 44655 - Add debug only convenience methods to obtain a Vector<char> from a String/StringImpl.
1074
1075         * wtf/text/WTFString.cpp:
1076         (asciiDebug):
1077             Return a Vector<char> containing the contents of a string as ASCII.
1078
1079 2010-08-26  Sam Weinig  <sam@webkit.org>
1080
1081         Reviewed by Darin Adler.
1082
1083         Add PassOwnArrayPtr
1084         https://bugs.webkit.org/show_bug.cgi?id=44627
1085
1086         * GNUmakefile.am:
1087         * JavaScriptCore.vcproj/WTF/WTF.vcproj:
1088         * JavaScriptCore.xcodeproj/project.pbxproj:
1089         Add the new files.
1090
1091         * wtf/Forward.h:
1092         Forward declare PassOwnArrayPtr.
1093         
1094         * wtf/OwnArrayPtr.h:
1095         Mimic the OwnPtr interface.
1096
1097         * wtf/OwnArrayPtrCommon.h: Added.
1098         (WTF::deleteOwnedArrayPtr):
1099         Move delete function here so it can be shared by OwnArrayPtr and
1100         PassOwnArrayPtr.
1101
1102         * wtf/PassOwnArrayPtr.h: Added.
1103         Mimic the PassOwnPtr interface.
1104
1105 2010-08-26  Oliver Hunt  <oliver@apple.com>
1106
1107         Reviewed by Gavin Barraclough.
1108
1109         [JSC] JavaScript parsing error when loading Equifax web page
1110         https://bugs.webkit.org/show_bug.cgi?id=42900
1111
1112         '-->' is ostensibly only meant to occur when there is only
1113         whitespace preceeding it on the line.  However firefox treats
1114         multiline comments as a space character, so they are allowed.
1115         One side effect of the firefox model is that any line terminators
1116         inside the multiline comment are ignored, so
1117
1118             foo/*
1119             */-->
1120
1121         is treated as
1122
1123             foo -->
1124
1125         and so '-->' will not be a comment in this case.  Happily this simply
1126         means that to fix this issue all we need to do is stop updating
1127         m_atLineStart when handling multiline comments.
1128
1129         * parser/Lexer.cpp:
1130         (JSC::Lexer::lex):
1131
1132 2010-08-25  Oliver Hunt  <oliver@apple.com>
1133
1134         Reviewed by Geoffrey Garen.
1135
1136         Improve overflow handling in StringImpl::Replace
1137         https://bugs.webkit.org/show_bug.cgi?id=42502
1138         <rdar://problem/8203794>
1139
1140         Harden StringImpl::replace against overflow -- I can't see how this
1141         could be abused, but it's better to be safe than sorry.
1142
1143         * wtf/text/StringImpl.cpp:
1144         (WTF::StringImpl::replace):
1145
1146 2010-08-26  Martin Robinson  <mrobinson@igalia.com>
1147
1148         Reviewed by Xan Lopez.
1149
1150         [GTK] The GNUmakefile.am files contain a myriad of confusing preprocessor and compiler flag definitions
1151         https://bugs.webkit.org/show_bug.cgi?id=44624
1152
1153         Clean up GNUmakefile.am.
1154
1155         * GNUmakefile.am: Alphabetize the include order in javascriptcore_cppflags. Move
1156         a couple include lines from the top-level GNUmakefile.am.
1157
1158 2010-08-25  Xan Lopez  <xlopez@igalia.com>
1159
1160         Reviewed by Kent Tamura.
1161
1162         Local variables 'k' and 'y' in s2b() in dtoa.cpp are computed but not used
1163         https://bugs.webkit.org/show_bug.cgi?id=29259
1164
1165         Remove unused code in dtoa.cpp, spotted by Wan-Teh Chang.
1166
1167         * wtf/dtoa.cpp:
1168         (WTF::s2b):
1169
1170 2010-08-25  Kwang Yul Seo  <skyul@company100.net>
1171
1172         Reviewed by Kevin Ollivier.
1173
1174         [BREWMP] Add build system
1175         https://bugs.webkit.org/show_bug.cgi?id=44645
1176
1177         Make waf script portable so that we can add more ports.
1178
1179         * wscript:
1180
1181 2010-08-25  Michael Saboff  <msaboff@apple.com>
1182
1183         Reviewed by Sam Weinig.
1184
1185         Remove the single entry regular expression cache introduced as part of
1186         the fix for https://bugs.webkit.org/show_bug.cgi?id=41238.
1187         The performance problem in Dromaeo that initiated that bug is no 
1188         longer present. Dromaeo has been modified so that the regular
1189         expression tests are somewhat random and don't benefit from a
1190         single entry cache.
1191
1192         * runtime/RegExp.cpp:
1193         (JSC::RegExp::RegExp):
1194         (JSC::RegExp::match):
1195         * runtime/RegExp.h:
1196
1197 2010-08-25  Martin Robinson  <mrobinson@igalia.com>
1198
1199         Reviewed by Gustavo Noronha Silva.
1200
1201         Cairo and EFL port shouldn't depend on glib.
1202         https://bugs.webkit.org/show_bug.cgi?id=44354
1203
1204         Replace GRefPtr with PlatformRefPtr. Keep GLib specific bits in
1205         GRefPtr.h.
1206
1207         * GNUmakefile.am: Add PlatformRefPtr.h to the source list.
1208         * wtf/PlatformRefPtr.h: Migrated from GRefPtr.h.
1209         (WTF::PlatformRefPtr::PlatformRefPtr): Ditto.
1210         (WTF::PlatformRefPtr::~PlatformRefPtr): Ditto.
1211         (WTF::PlatformRefPtr::clear): Ditto.
1212         (WTF::PlatformRefPtr::get): Ditto.
1213         (WTF::PlatformRefPtr::operator*): Ditto.
1214         (WTF::PlatformRefPtr::operator->): Ditto.
1215         (WTF::PlatformRefPtr::operator!): Ditto.
1216         (WTF::PlatformRefPtr::operator UnspecifiedBoolType): Ditto.
1217         (WTF::PlatformRefPtr::hashTableDeletedValue): Ditto.
1218         (WTF::::operator): Ditto.
1219         (WTF::::swap): Ditto.
1220         (WTF::swap): Ditto.
1221         (WTF::operator==): Ditto.
1222         (WTF::operator!=): Ditto.
1223         (WTF::static_pointer_cast): Ditto.
1224         (WTF::const_pointer_cast): Ditto.
1225         (WTF::getPtr): Ditto.
1226         (WTF::adoptPlatformRef): Ditto.
1227         * wtf/gobject/GRefPtr.cpp: Changes to reflect new names.
1228         (WTF::refPlatformPtr):
1229         (WTF::derefPlatformPtr):
1230         * wtf/gobject/GRefPtr.h: Ditto.
1231         (WTF::refPlatformPtr):
1232         (WTF::derefPlatformPtr):
1233
1234 2010-08-25  Xan Lopez  <xlopez@igalia.com>
1235
1236         Reviewed by Alexey Proskuryakov.
1237
1238         Remove dead code in JSGlobalObject
1239         https://bugs.webkit.org/show_bug.cgi?id=44615
1240
1241         The recursion data member in the JSGlobalObject and its getter
1242         plus inc/dec methods seems to be unused, remove them.
1243
1244         * runtime/JSGlobalObject.cpp:
1245         (JSC::JSGlobalObject::init):
1246         * runtime/JSGlobalObject.h:
1247
1248 2010-08-25  Michael Saboff  <msaboff@apple.com>
1249
1250         Reviewed by Geoffrey Garen.
1251
1252         Changed the initial and subsequent allocation of vector storage to
1253         Array()s. The changes are to limit sparse arrays to 100000 entries
1254         and fixed the sparse map to vector storage conversion to use the 
1255         minimum amount of memory needed to store the current number of entries.
1256         These changes address https://bugs.webkit.org/show_bug.cgi?id=43707
1257
1258         * runtime/JSArray.cpp:
1259         (JSC::JSArray::putSlowCase):
1260         (JSC::JSArray::getNewVectorLength):
1261
1262 2010-08-16  Gabor Loki  <loki@webkit.org>
1263
1264         Reviewed by Gavin Barraclough.
1265
1266         Avoid increasing required alignment of target type warning
1267         https://bugs.webkit.org/show_bug.cgi?id=43963
1268
1269         Fix platform independent alignment warnings.
1270
1271         * wtf/ListHashSet.h:
1272         (WTF::ListHashSetNodeAllocator::pool):
1273
1274 2010-08-19  Gabor Loki  <loki@webkit.org>
1275
1276         Reviewed by Gavin Barraclough.
1277
1278         Enable truncated floating point feature on ARM
1279         https://bugs.webkit.org/show_bug.cgi?id=44233
1280
1281         Enable truncated floating point feature with the help of VCVTR.S32.F64
1282         instruction. If VCVTR.S32.F64 can't fit the result into a 32-bit
1283         integer/register, it saturates at INT_MAX or INT_MIN. Testing this
1284         looks quicker than testing FPSCR for exception.
1285
1286         Inspired by Jacob Bramley's patch from JaegerMonkey
1287
1288         * assembler/ARMAssembler.h:
1289         (JSC::ARMAssembler::):
1290         (JSC::ARMAssembler::cmn_r):
1291         (JSC::ARMAssembler::vcvtr_s32_f64_r):
1292         * assembler/MacroAssemblerARM.h:
1293         (JSC::MacroAssemblerARM::supportsFloatingPointTruncate):
1294         (JSC::MacroAssemblerARM::branchTruncateDoubleToInt32):
1295
1296 2010-08-24  Gavin Barraclough  <barraclough@apple.com>
1297
1298         Windows build fix.
1299
1300         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
1301
1302 2010-08-24  Gavin Barraclough  <barraclough@apple.com>
1303
1304         Windows build fix.
1305
1306         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
1307         * wtf/DecimalNumber.h:
1308         (WTF::DecimalNumber::intPow10):
1309         * wtf/dtoa.cpp:
1310         * wtf/dtoa.h:
1311
1312 2010-08-23  Gavin Barraclough  <barraclough@apple.com>
1313
1314         Reviewed by Oliver Hunt.
1315
1316         https://bugs.webkit.org/show_bug.cgi?id=44487
1317
1318         Number.toExponential/toFixed/toPrecision all contain a spaghetti of duplicated
1319         code & unnecessary complexity. Add a new DecimalNumber class to encapsulate
1320         double to string conversion, share the implementations of rounding &
1321         decimal-fraction/exponential formatting.
1322
1323         * JavaScriptCore.exp:
1324             Update exports.
1325
1326         * runtime/NumberPrototype.cpp:
1327         (JSC::toThisNumber):
1328         (JSC::getIntegerArgumentInRange):
1329             Helper methods used in implementing toExponential/toFixed/toString.
1330         (JSC::numberProtoFuncToExponential):
1331         (JSC::numberProtoFuncToFixed):
1332         (JSC::numberProtoFuncToPrecision):
1333             Reimplemented using new DecimalNumber class.
1334             
1335         * runtime/UString.cpp:
1336         (JSC::UString::number):
1337             Updated to call numberToString.
1338
1339         * wtf/DecimalNumber.h: Added.
1340         (WTF::):
1341         (WTF::DecimalNumber::DecimalNumber):
1342         (WTF::DecimalNumber::toStringDecimal):
1343         (WTF::DecimalNumber::toStringExponential):
1344         (WTF::DecimalNumber::sign):
1345         (WTF::DecimalNumber::exponent):
1346         (WTF::DecimalNumber::significand):
1347         (WTF::DecimalNumber::precision):
1348         (WTF::DecimalNumber::init):
1349         (WTF::DecimalNumber::isZero):
1350         (WTF::DecimalNumber::roundToPrecision):
1351             New class to perform double to string conversion.
1352             Has three constructors, which allow conversion with no rounding,
1353             rounding to significant-figures, or rounding to decimal-places,
1354             and two methods for formatting strings, either using decimal
1355             fraction or exponential encoding. Internal implementation uses
1356             pre-rounding of the values before calling dtoa rather than
1357             relying on dtoa to correctly round, which does not produce
1358             fully accurate results. Hopefully we can address this in the
1359             near future.
1360
1361         * wtf/dtoa.cpp:
1362         (WTF::intPow10):
1363         * wtf/dtoa.h:
1364             intPow10 is used internally by DecimalNumber.
1365             
1366         * wtf/text/WTFString.cpp:
1367         (WTF::copyToString):
1368         (WTF::nanOrInfToString):
1369             Used internally in numberToString for NaN/Infinity handling.
1370         (WTF::numberToString):
1371             Added new method to convert doubles to strings.
1372
1373         * wtf/text/WTFString.h:
1374             Added declaration for numberToString. This is here because
1375             we should switch over to using this for all double to string
1376             conversion in WebCore (see section 2.4.4.3 of the HTML5 spec).
1377
1378 2010-08-24  Oliver Hunt  <oliver@apple.com>
1379
1380         Reviewed by Geoff Garen.
1381
1382         Don't seed the JS random number generator from time()
1383         https://bugs.webkit.org/show_bug.cgi?id=41868
1384         <rdar://problem/8171025>
1385
1386         Switch to using the secure random number generator to
1387         seed the fast random generator, and make the generator
1388         be per global object.
1389
1390         * runtime/JSGlobalData.cpp:
1391         (JSC::JSGlobalData::JSGlobalData):
1392         * runtime/JSGlobalData.h:
1393         * runtime/JSGlobalObject.h:
1394         (JSC::JSGlobalObject::JSGlobalObjectData::JSGlobalObjectData):
1395         (JSC::JSGlobalObject::weakRandomNumber):
1396         * runtime/MathObject.cpp:
1397         (JSC::mathProtoFuncRandom):
1398
1399 2010-08-24  Oliver Hunt  <oliver@apple.com>
1400
1401         Reviewed by Beth Dakin.
1402
1403         Make overflow guards in UString::utf8 explicit
1404         https://bugs.webkit.org/show_bug.cgi?id=44540
1405
1406         Add an explicit overflow check prior to allocating our buffer,
1407         rather than implicitly relying on the guard in convertUTF16ToUTF8.
1408
1409         * runtime/UString.cpp:
1410         (JSC::UString::utf8):
1411
1412 2010-08-24  Yael Aharon  <yael.aharon@nokia.com>
1413
1414         Reviewed by Simon Hausmann.
1415
1416         [Symbian] Fix commit/decommit of system memory using RChunk
1417
1418         Swap accidentially reversed start and m_base values for determining the
1419         offset within the RChunk.
1420
1421         * wtf/PageReservation.h:
1422         (WTF::PageReservation::systemCommit):
1423         (WTF::PageReservation::systemDecommit):
1424
1425 2010-08-23  Patrick Gansterer  <paroga@paroga.com>
1426
1427         Rubber-stamped by Gabor Loki.
1428
1429         [WINCE] Buildfix for GeneratedJITStubs after r64818
1430         https://bugs.webkit.org/show_bug.cgi?id=44469
1431
1432         Use " THUNK_RETURN_ADDRESS_OFFSET" instead of "#offset#".
1433
1434         * jit/JITStubs.cpp:
1435
1436 2010-08-23  Oliver Hunt  <oliver@apple.com>
1437
1438         Reviewed by Darin Adler.
1439
1440         [REGRESSION] Interpreter incorrectly excludes prototype chain when validating put_by_id_transition
1441         https://bugs.webkit.org/show_bug.cgi?id=44240
1442         <rdar://problem/8328995>
1443
1444         Fix an error I introduced when cleaning up the interpreter side of the logic
1445         to prevent setters being called in object initialisers.
1446
1447         * interpreter/Interpreter.cpp:
1448         (JSC::Interpreter::privateExecute):
1449
1450 2010-08-23  Michael Saboff  <msaboff@apple.com>
1451
1452         Reviewed by Oliver Hunt.
1453
1454         Fixed case where a single character search string in a string.replace()
1455         did not properly handle back reference replacement.  The fix is to 
1456         check for a '$' as part of the check to see if we can execute the
1457         single character replace optimization.
1458         https://bugs.webkit.org/show_bug.cgi?id=44067
1459
1460         * runtime/StringPrototype.cpp:
1461         (JSC::stringProtoFuncReplace):
1462
1463 2010-08-23  Oliver Hunt  <oliver@apple.com>
1464
1465         Reviewed by Gavin Barraclough.
1466
1467         JSON.stringify is much slower than Firefox on particular pathological input
1468         https://bugs.webkit.org/show_bug.cgi?id=44456
1469
1470         Make StringBuilder::reserveCapacity reserve additional space so we don't end up
1471         repeatedly copying the entire result string.
1472
1473         * runtime/StringBuilder.h:
1474         (JSC::StringBuilder::append):
1475         (JSC::StringBuilder::reserveCapacity):
1476
1477 2010-08-23  Jian Li  <jianli@chromium.org>
1478
1479         Reviewed by Darin Fisher.
1480
1481         Handle blob resource.
1482         https://bugs.webkit.org/show_bug.cgi?id=43941
1483
1484         * JavaScriptCore.exp: Add an export that is neede by BlobResourceHandle.
1485
1486 2010-08-19  Andreas Kling  <andreas.kling@nokia.com>
1487
1488         Reviewed by Geoffrey Garen.
1489
1490         JSC: Move the static_cast into to(U)Int32 fast case
1491         https://bugs.webkit.org/show_bug.cgi?id=44037
1492
1493         Do the static_cast<(u)int32_t> inline to avoid the function call overhead
1494         for easily converted values (within (u)int32_t range.)
1495
1496         * runtime/JSValue.cpp:
1497         (JSC::toInt32SlowCase):
1498         (JSC::toUInt32SlowCase):
1499         * runtime/JSValue.h:
1500         (JSC::JSValue::toInt32):
1501         (JSC::JSValue::toUInt32):
1502
1503 2010-08-18  Andreas Kling  <andreas.kling@nokia.com>
1504
1505         Reviewed by Geoffrey Garen.
1506
1507         REGRESSION(r58469): Math.pow() always returns double-backed JSValue which is extremely slow as array subscript
1508         https://bugs.webkit.org/show_bug.cgi?id=43742
1509
1510         Add codegen for pow() to return Int32 values when possible.
1511
1512         * jit/ThunkGenerators.cpp:
1513         (JSC::powThunkGenerator):
1514
1515 2010-08-18  Gabor Loki  <loki@webkit.org>
1516
1517         Reviewed by Gavin Barraclough.
1518
1519         The JITStackFrame is wrong using Thumb-2 JIT with JSVALUE32_64
1520         https://bugs.webkit.org/show_bug.cgi?id=43897
1521
1522         A 64 bits wide member in a structure is aligned to 8 bytes on ARM by
1523         default, but this is not taken into account in the offset defines of
1524         JITStackFrame.
1525
1526         * jit/JITStubs.cpp:
1527         * jit/JITStubs.h:
1528
1529 2010-08-18  Gavin Barraclough  <barraclough@apple.com>
1530
1531         Rubber stamped by Sam Weinig.
1532
1533         Rename UString::substr to substringSharingImpl, add to WTF::String.
1534         Now WTF::String can do everything that JSC::UString can do!
1535
1536         * JavaScriptCore.exp:
1537         * bytecode/CodeBlock.cpp:
1538         (JSC::escapeQuotes):
1539         * bytecompiler/NodesCodegen.cpp:
1540         (JSC::substitute):
1541         * parser/SourceProvider.h:
1542         (JSC::UStringSourceProvider::getRange):
1543         * runtime/FunctionPrototype.cpp:
1544         (JSC::insertSemicolonIfNeeded):
1545         * runtime/JSGlobalObjectFunctions.cpp:
1546         (JSC::parseInt):
1547         * runtime/JSONObject.cpp:
1548         (JSC::gap):
1549         (JSC::Stringifier::indent):
1550         (JSC::Stringifier::unindent):
1551         * runtime/JSString.cpp:
1552         (JSC::JSString::replaceCharacter):
1553         * runtime/NumberPrototype.cpp:
1554         (JSC::numberProtoFuncToFixed):
1555         (JSC::numberProtoFuncToPrecision):
1556         * runtime/StringPrototype.cpp:
1557         (JSC::stringProtoFuncReplace):
1558         (JSC::trimString):
1559         * runtime/UString.cpp:
1560         (JSC::UString::substringSharingImpl):
1561         * runtime/UString.h:
1562         * wtf/text/WTFString.cpp:
1563         (WTF::String::substringSharingImpl):
1564         * wtf/text/WTFString.h:
1565
1566 2010-08-18  Gavin Barraclough  <barraclough@apple.com>
1567
1568         Windows build fix.
1569
1570         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
1571         * JavaScriptCore.xcodeproj/project.pbxproj:
1572
1573 2010-08-18  Gavin Barraclough  <barraclough@apple.com>
1574
1575         Windows build fix.
1576
1577         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
1578         * JavaScriptCore.xcodeproj/project.pbxproj:
1579
1580 2010-08-17  Gavin Barraclough  <barraclough@apple.com>
1581
1582         Reviewed by Sam Weinig.
1583
1584         Bug 44146 - Remove toDouble/toUInt32 methods from UString.
1585
1586         These methods all implement JavaScript language specific behaviour, and as such
1587         are not suited to being on a generic string object.  They are also inefficient
1588         and incorrectly used, refactor & cleanup.  Uses of these methods really divide
1589         out into two cases.
1590
1591         ToNumber:
1592         Uses of toDouble from JSString and from parseFloat are implementing ecma's
1593         ToNumber conversion from strings (see ecma-262 9.3.1), so UString::toDouble
1594         should largely just be moved out to a global jsToNumber function.  ToNumber is
1595         capable of recognizing either decimal or hexadecimal numbers, but parseFloat
1596         should only recognize decimal values.  This is currently handled by testing for
1597         hexadecimal before calling toDouble, which should unnecessary - instead we can
1598         just split out the two parts to the grammar into separate functions. Also,
1599         strtod recognizes a set of literals (nan, inf, and infinity - all with any
1600         capitalization) - which are not defined by any of the specs we are implementing.
1601         To handle this we need to perform additional work in toDouble to convert the
1602         unsupported cases of infinities back to NaNs.  Instead we should simply remove
1603         support for this literals from strtod.  This should provide a more desirable
1604         behaviour for all clients of strtod.
1605
1606         Indexed properties:
1607         Uses of the toStrictUInt32 methods are were all converting property names to
1608         indices, and all uses of toUInt32 were incorrect; in all cases we should have
1609         been calling toUInt32.  This error results in some incorrect behaviour in the
1610         DOM (accessing property "0 " of a NodeList should fail; it currently does not).
1611         Move this method onto Identifier (our canonical property name), and make it
1612         always perform a strict conversion. Add a layout test to check NodeList does
1613         convert indexed property names correctly.
1614
1615         * JavaScriptCore.exp:
1616         * runtime/Arguments.cpp:
1617         (JSC::Arguments::getOwnPropertySlot):
1618         (JSC::Arguments::getOwnPropertyDescriptor):
1619         (JSC::Arguments::put):
1620         (JSC::Arguments::deleteProperty):
1621         * runtime/Identifier.cpp:
1622         (JSC::Identifier::toUInt32):
1623         * runtime/Identifier.h:
1624         (JSC::Identifier::toUInt32):
1625         * runtime/JSArray.cpp:
1626         (JSC::JSArray::getOwnPropertySlot):
1627         (JSC::JSArray::getOwnPropertyDescriptor):
1628         (JSC::JSArray::put):
1629         (JSC::JSArray::deleteProperty):
1630         * runtime/JSArray.h:
1631         (JSC::Identifier::toArrayIndex):
1632         * runtime/JSByteArray.cpp:
1633         (JSC::JSByteArray::getOwnPropertySlot):
1634         (JSC::JSByteArray::getOwnPropertyDescriptor):
1635         (JSC::JSByteArray::put):
1636         * runtime/JSGlobalObjectFunctions.cpp:
1637         (JSC::isInfinity):
1638         (JSC::jsHexIntegerLiteral):
1639         (JSC::jsStrDecimalLiteral):
1640         (JSC::jsToNumber):
1641         (JSC::parseFloat):
1642         * runtime/JSGlobalObjectFunctions.h:
1643         * runtime/JSString.cpp:
1644         (JSC::JSString::getPrimitiveNumber):
1645         (JSC::JSString::toNumber):
1646         (JSC::JSString::getStringPropertyDescriptor):
1647         * runtime/JSString.h:
1648         (JSC::JSString::getStringPropertySlot):
1649         * runtime/ObjectPrototype.cpp:
1650         (JSC::ObjectPrototype::put):
1651         * runtime/StringObject.cpp:
1652         (JSC::StringObject::deleteProperty):
1653         * runtime/UString.cpp:
1654         * runtime/UString.h:
1655         * wtf/dtoa.cpp:
1656         (WTF::strtod):
1657
1658 2010-08-17  Gavin Barraclough  <barraclough@apple.com>
1659
1660         Reviewed by Sam Weinig.
1661
1662         Bug 44099 - REGRESSION(r65468): Crashes in StringImpl::find
1663
1664         Bug 44080 introuduced a couple of cases in which array bounds could be overrun.
1665         One of these was fixed in r65493, this patch fixes the other and address the
1666         concerns voiced in comment #6 by restructuring the loops to remove the code
1667         dupliction without introducing an additional if check.
1668
1669         * wtf/text/StringImpl.cpp:
1670         (WTF::StringImpl::find):
1671         (WTF::StringImpl::findIgnoringCase):
1672         (WTF::StringImpl::reverseFind):
1673         (WTF::StringImpl::reverseFindIgnoringCase):
1674
1675 2010-08-17  No'am Rosenthal  <noam.rosenthal@nokia.com>
1676
1677         Reviewed by Ariya Hidayat.
1678
1679         [Qt] Move the accelerated compositing build flag to the right place
1680         https://bugs.webkit.org/show_bug.cgi?id=43882
1681
1682         * wtf/Platform.h:
1683
1684 2010-08-17  Yuta Kitamura  <yutak@chromium.org>
1685
1686         Reviewed by Shinichiro Hamaji.
1687
1688         Avoid uninitialized memory read in StringImpl::find().
1689
1690         REGRESSION(r65468): Crashes in StringImpl::find
1691         https://bugs.webkit.org/show_bug.cgi?id=44099
1692
1693         * wtf/text/StringImpl.cpp:
1694         (WTF::StringImpl::find):
1695
1696 2010-08-16  Gavin Barraclough  <barraclough@apple.com>
1697
1698         Rubber stamped by Sam Weinig
1699
1700         Add VectorTraits to String & DefaultHash traits to UString to unify behaviour.
1701
1702         * runtime/UString.h:
1703         (JSC::UStringHash::hash):
1704         (JSC::UStringHash::equal):
1705         (WTF::):
1706         * wtf/text/WTFString.h:
1707         (WTF::):
1708
1709 2010-08-16  Gavin Barraclough  <barraclough@apple.com>
1710
1711         Rubber stamped by Sam Weinig
1712
1713         Remove unnecessary includes from UString.h, add new includes as necessary.
1714
1715         * profiler/CallIdentifier.h:
1716         * profiler/ProfileNode.h:
1717         * runtime/DateConversion.cpp:
1718         * runtime/Identifier.h:
1719         (JSC::IdentifierRepHash::hash):
1720         * runtime/RegExpCache.h:
1721         * runtime/RegExpKey.h:
1722         * runtime/UString.cpp:
1723         (JSC::UString::substr):
1724         * runtime/UString.h:
1725         * wtf/text/WTFString.h:
1726
1727 2010-08-16  Gavin Barraclough  <barraclough@apple.com>
1728
1729         Reviewed by Sam Weinig
1730
1731         Bug 44080 - String find/reverseFind methods need tidying up
1732         These methods have a couple of problems with their interface, and implementation.
1733
1734         These methods take and int index, and return an int - however this is problematic
1735         since on 64-bit string indices may have a full 32-bit range.  This spills out into
1736         surrounding code, which unsafely casts string indices from unsigned to int. Code
1737         checking the result of these methods check for a mix of "== -1", "< 0", and
1738         "== notFound".  Clean this up by changing these methods to take an unsigned
1739         starting index, and return a size_t. with a failed match indicated by notFound.
1740         reverseFind also has a special meaning for the starting index argument, in that a
1741         negative index is interpreted as an offset back from the end of the string. Remove
1742         this functionality, in the (1!) case where it is used we should just calculate the
1743         offset by subtracting from the string's length.
1744
1745         The implementation has a few problems too.  The code is not in webkit style, in
1746         using assorted abbreviations in variable names, and implementations of similar
1747         find methods with differing argument types were unnecessarily inconsistent. When
1748         find is passed const char* data the string would be handled as latin1 (zero
1749         extended to UTF-16) for all characters but the first; this is sign extended.
1750         Case-insensitive find is broken for unicode strings; the hashing optimization is
1751         not unicode safe, and could result in false negatives.
1752
1753         Unify UString find methods to match String.
1754
1755         * JavaScriptCore.exp:
1756         * bytecode/CodeBlock.cpp:
1757         (JSC::escapeQuotes):
1758         * bytecompiler/NodesCodegen.cpp:
1759         (JSC::substitute):
1760         * runtime/JSString.cpp:
1761         (JSC::JSString::replaceCharacter):
1762         * runtime/RegExp.cpp:
1763         (JSC::RegExp::RegExp):
1764         * runtime/RegExpKey.h:
1765         (JSC::RegExpKey::getFlagsValue):
1766         * runtime/StringPrototype.cpp:
1767         (JSC::substituteBackreferencesSlow):
1768         (JSC::substituteBackreferences):
1769         (JSC::stringProtoFuncReplace):
1770         (JSC::stringProtoFuncIndexOf):
1771         (JSC::stringProtoFuncLastIndexOf):
1772         (JSC::stringProtoFuncSplit):
1773         * runtime/UString.cpp:
1774         * runtime/UString.h:
1775         (JSC::UString::find):
1776         (JSC::UString::reverseFind):
1777         * wtf/text/AtomicString.h:
1778         (WTF::AtomicString::find):
1779         * wtf/text/StringImpl.cpp:
1780         (WTF::StringImpl::find):
1781         (WTF::StringImpl::findCaseInsensitive):
1782         (WTF::StringImpl::reverseFind):
1783         (WTF::StringImpl::reverseFindCaseInsensitive):
1784         (WTF::StringImpl::endsWith):
1785         (WTF::StringImpl::replace):
1786         * wtf/text/StringImpl.h:
1787         (WTF::StringImpl::startsWith):
1788         * wtf/text/WTFString.cpp:
1789         (WTF::String::split):
1790         * wtf/text/WTFString.h:
1791         (WTF::String::find):
1792         (WTF::String::reverseFind):
1793         (WTF::String::findCaseInsensitive):
1794         (WTF::String::reverseFindCaseInsensitive):
1795         (WTF::String::contains):
1796         (WTF::find):
1797         (WTF::reverseFind):
1798
1799 2010-08-16  Kevin Ollivier  <kevino@theolliviers.com>
1800
1801         [wx] Build fix, do not build WebCore as a convenience library as this leads to
1802         errors in the Win build w/export symbols and causes problems with DOM bindings
1803         debugging in gdb. 
1804
1805         * wscript:
1806
1807 2010-08-16  Leandro Pereira  <leandro@profusion.mobi>
1808
1809         [EFL] Build fix after r65366.
1810
1811         * CMakeLists.txt: Use if (VAR) instead of if (${VAR}) to check if
1812         they're empty.
1813         * jsc/CMakeLists.txt: Ditto.
1814         * wtf/CMakeLists.txt: Ditto.
1815
1816 2010-08-15  Kevin Ollivier  <kevino@theolliviers.com>
1817
1818         [wx] Build fix, don't build intermediate source in DerivedSources dir.
1819
1820         * wscript:
1821
1822 2010-08-14  Patrick Gansterer  <paroga@paroga.com>
1823
1824         Reviewed by Kenneth Rohde Christiansen.
1825
1826         [CMake] Add preprocessor detection for generator scripts
1827         https://bugs.webkit.org/show_bug.cgi?id=43984
1828
1829         * CMakeLists.txt:
1830
1831 2010-08-14  Patrick Gansterer  <paroga@paroga.com>
1832
1833         Reviewed by Kenneth Rohde Christiansen.
1834
1835         [CMake] Set target properties only if available
1836         https://bugs.webkit.org/show_bug.cgi?id=43978
1837
1838         * CMakeLists.txt:
1839         * jsc/CMakeLists.txt:
1840         * wtf/CMakeLists.txt:
1841
1842 2010-08-13  Kevin Ollivier  <kevino@theolliviers.com>
1843
1844         [wx] Build fix, add CString to the list of forwards.
1845
1846         * wtf/Forward.h:
1847
1848 2010-08-13  Gavin Barraclough  <barraclough@apple.com>
1849
1850         Windows build fix
1851
1852         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
1853
1854 2010-08-13  Gavin Barraclough  <barraclough@apple.com>
1855
1856         Windows build fix
1857
1858         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
1859
1860 2010-08-13  Gavin Barraclough  <barraclough@apple.com>
1861
1862         Windows build fix
1863
1864         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
1865
1866 2010-08-13  Gavin Barraclough  <barraclough@apple.com>
1867
1868         Rubber stamped by Sam Weinig.
1869         Switch String::/UString::ascii() to return a CString.
1870
1871         * JavaScriptCore.exp:
1872         * JavaScriptCore.xcodeproj/project.pbxproj:
1873         * bytecode/CodeBlock.cpp:
1874         (JSC::CodeBlock::dump):
1875         * bytecode/SamplingTool.cpp:
1876         (JSC::SamplingTool::dump):
1877         * interpreter/CallFrame.cpp:
1878         (JSC::CallFrame::dumpCaller):
1879         * jsc.cpp:
1880         (runWithScripts):
1881         (runInteractive):
1882         * runtime/Identifier.h:
1883         (JSC::Identifier::ascii):
1884         * runtime/ScopeChain.cpp:
1885         (JSC::ScopeChainNode::print):
1886         * runtime/UString.cpp:
1887         (JSC::UString::ascii):
1888         (JSC::UString::latin1):
1889         * runtime/UString.h:
1890         * wtf/text/StringImpl.cpp:
1891         (WTF::StringImpl::asciiOLD):
1892         * wtf/text/StringImpl.h:
1893         * wtf/text/WTFString.cpp:
1894         (WTF::String::ascii):
1895         (WTF::String::latin1):
1896         * wtf/text/WTFString.h:
1897
1898 2010-08-13  Gabor Loki  <loki@webkit.org>
1899
1900         Reviewed by Gavin Barraclough.
1901
1902         Avoid increasing required alignment of target type warning on ARM
1903         https://bugs.webkit.org/show_bug.cgi?id=38045
1904
1905         The reinterpret_cast<Type1*>([pointer to Type2]) expressions - where
1906         sizeof(Type1) > sizeof(Type2) - cause the following warning on ARM:
1907         increases required alignment of target type warnings.
1908         Casting the type of [pointer to Type2] object to void* bypasses the
1909         warning.
1910
1911         * assembler/ARMAssembler.cpp:
1912         (JSC::ARMAssembler::executableCopy):
1913         * assembler/AssemblerBuffer.h:
1914         (JSC::AssemblerBuffer::putShortUnchecked):
1915         (JSC::AssemblerBuffer::putIntUnchecked):
1916         (JSC::AssemblerBuffer::putInt64Unchecked):
1917         * interpreter/RegisterFile.h:
1918         (JSC::RegisterFile::RegisterFile):
1919         (JSC::RegisterFile::grow):
1920         * jit/JITStubs.cpp:
1921         * pcre/pcre_compile.cpp:
1922         (jsRegExpCompile):
1923         * runtime/JSArray.cpp:
1924         (JSC::JSArray::putSlowCase):
1925         (JSC::JSArray::increaseVectorLength):
1926         (JSC::JSArray::increaseVectorPrefixLength):
1927         (JSC::JSArray::shiftCount):
1928         (JSC::JSArray::unshiftCount):
1929         * wtf/FastMalloc.cpp:
1930         (WTF::PageHeapAllocator::New):
1931         (WTF::TCMalloc_Central_FreeList::Populate):
1932         * wtf/MD5.cpp:
1933         (WTF::reverseBytes):
1934         (WTF::MD5::addBytes):
1935         (WTF::MD5::checksum):
1936         * wtf/StdLibExtras.h:
1937         (isPointerTypeAlignmentOkay):
1938         (reinterpret_cast_ptr):
1939         * wtf/Vector.h:
1940         (WTF::VectorBuffer::inlineBuffer):
1941         * wtf/qt/StringQt.cpp:
1942         (WTF::String::String):
1943
1944 2010-08-13  Gavin Barraclough  <barraclough@apple.com>
1945
1946         Reviewed by Sam Weinig
1947
1948         Unify UString::UTF8String() & String::utf8() methods,
1949         remove UString::cost() & make atArrayIndex a free function.
1950
1951         * JavaScriptCore.exp:
1952         * bytecode/CodeBlock.cpp:
1953         (JSC::constantName):
1954         (JSC::idName):
1955         (JSC::CodeBlock::registerName):
1956         (JSC::regexpName):
1957         (JSC::printGlobalResolveInfo):
1958         (JSC::printStructureStubInfo):
1959         (JSC::CodeBlock::printStructure):
1960         (JSC::CodeBlock::printStructures):
1961         * jsc.cpp:
1962         (functionPrint):
1963         (functionDebug):
1964         (runInteractive):
1965         (fillBufferWithContentsOfFile):
1966         * pcre/pcre_exec.cpp:
1967         (Histogram::~Histogram):
1968         * profiler/CallIdentifier.h:
1969         (JSC::CallIdentifier::c_str):
1970         * profiler/Profile.cpp:
1971         (JSC::Profile::debugPrintDataSampleStyle):
1972         * profiler/ProfileGenerator.cpp:
1973         (JSC::ProfileGenerator::willExecute):
1974         (JSC::ProfileGenerator::didExecute):
1975         * profiler/ProfileNode.cpp:
1976         (JSC::ProfileNode::debugPrintData):
1977         (JSC::ProfileNode::debugPrintDataSampleStyle):
1978         * runtime/Arguments.cpp:
1979         (JSC::Arguments::getOwnPropertySlot):
1980         (JSC::Arguments::getOwnPropertyDescriptor):
1981         (JSC::Arguments::put):
1982         (JSC::Arguments::deleteProperty):
1983         * runtime/DateConversion.cpp:
1984         (JSC::parseDate):
1985         * runtime/Identifier.h:
1986         (JSC::Identifier::toStrictUInt32):
1987         * runtime/JSArray.cpp:
1988         (JSC::JSArray::getOwnPropertySlot):
1989         (JSC::JSArray::getOwnPropertyDescriptor):
1990         (JSC::JSArray::put):
1991         (JSC::JSArray::deleteProperty):
1992         * runtime/JSArray.h:
1993         (JSC::toArrayIndex):
1994         * runtime/JSGlobalObjectFunctions.cpp:
1995         (JSC::encode):
1996         (JSC::parseInt):
1997         (JSC::globalFuncJSCPrint):
1998         * runtime/JSString.h:
1999         (JSC::RopeBuilder::JSString):
2000         * runtime/UString.cpp:
2001         (JSC::UString::toDouble):
2002         (JSC::putUTF8Triple):
2003         (JSC::UString::utf8):
2004         * runtime/UString.h:
2005         (JSC::UString::~UString):
2006         (JSC::UString::isNull):
2007         (JSC::UString::isEmpty):
2008         (JSC::UString::impl):
2009         * wtf/text/WTFString.cpp:
2010         (WTF::String::utf8):
2011         * wtf/text/WTFString.h:
2012         (WTF::String::~String):
2013         (WTF::String::swap):
2014         (WTF::String::isNull):
2015         (WTF::String::isEmpty):
2016         (WTF::String::impl):
2017         (WTF::String::length):
2018         (WTF::String::String):
2019         (WTF::String::isHashTableDeletedValue):
2020
2021 2010-08-12  Zoltan Herczeg  <zherczeg@webkit.org>
2022
2023         Reviewed by Gavin Barraclough.
2024
2025         Refactoring the fpu code generator for the ARM port
2026         https://bugs.webkit.org/show_bug.cgi?id=43842
2027
2028         Support up to 32 double precision registers, and the
2029         recent VFP instruction formats. This patch is mainly
2030         a style change which keeps the current functionality.
2031
2032         * assembler/ARMAssembler.h:
2033         (JSC::ARMRegisters::):
2034         (JSC::ARMAssembler::):
2035         (JSC::ARMAssembler::emitInst):
2036         (JSC::ARMAssembler::emitDoublePrecisionInst):
2037         (JSC::ARMAssembler::emitSinglePrecisionInst):
2038         (JSC::ARMAssembler::vadd_f64_r):
2039         (JSC::ARMAssembler::vdiv_f64_r):
2040         (JSC::ARMAssembler::vsub_f64_r):
2041         (JSC::ARMAssembler::vmul_f64_r):
2042         (JSC::ARMAssembler::vcmp_f64_r):
2043         (JSC::ARMAssembler::vsqrt_f64_r):
2044         (JSC::ARMAssembler::vmov_vfp_r):
2045         (JSC::ARMAssembler::vmov_arm_r):
2046         (JSC::ARMAssembler::vcvt_f64_s32_r):
2047         (JSC::ARMAssembler::vcvt_s32_f64_r):
2048         (JSC::ARMAssembler::vmrs_apsr):
2049         * assembler/MacroAssemblerARM.h:
2050         (JSC::MacroAssemblerARM::addDouble):
2051         (JSC::MacroAssemblerARM::divDouble):
2052         (JSC::MacroAssemblerARM::subDouble):
2053         (JSC::MacroAssemblerARM::mulDouble):
2054         (JSC::MacroAssemblerARM::sqrtDouble):
2055         (JSC::MacroAssemblerARM::convertInt32ToDouble):
2056         (JSC::MacroAssemblerARM::branchDouble):
2057         (JSC::MacroAssemblerARM::branchConvertDoubleToInt32):
2058
2059 2010-08-12  Sheriff Bot  <webkit.review.bot@gmail.com>
2060
2061         Unreviewed, rolling out r65295.
2062         http://trac.webkit.org/changeset/65295
2063         https://bugs.webkit.org/show_bug.cgi?id=43950
2064
2065         It broke 4 sputnik tests (Requested by Ossy on #webkit).
2066
2067         * JavaScriptCore.exp:
2068         * bytecode/CodeBlock.cpp:
2069         (JSC::constantName):
2070         (JSC::idName):
2071         (JSC::CodeBlock::registerName):
2072         (JSC::regexpName):
2073         (JSC::printGlobalResolveInfo):
2074         (JSC::printStructureStubInfo):
2075         (JSC::CodeBlock::printStructure):
2076         (JSC::CodeBlock::printStructures):
2077         * jsc.cpp:
2078         (functionPrint):
2079         (functionDebug):
2080         (runInteractive):
2081         (fillBufferWithContentsOfFile):
2082         * pcre/pcre_exec.cpp:
2083         (Histogram::~Histogram):
2084         * profiler/CallIdentifier.h:
2085         (JSC::CallIdentifier::c_str):
2086         * profiler/Profile.cpp:
2087         (JSC::Profile::debugPrintDataSampleStyle):
2088         * profiler/ProfileGenerator.cpp:
2089         (JSC::ProfileGenerator::willExecute):
2090         (JSC::ProfileGenerator::didExecute):
2091         * profiler/ProfileNode.cpp:
2092         (JSC::ProfileNode::debugPrintData):
2093         (JSC::ProfileNode::debugPrintDataSampleStyle):
2094         * runtime/Arguments.cpp:
2095         (JSC::Arguments::getOwnPropertySlot):
2096         (JSC::Arguments::getOwnPropertyDescriptor):
2097         (JSC::Arguments::put):
2098         (JSC::Arguments::deleteProperty):
2099         * runtime/DateConversion.cpp:
2100         (JSC::parseDate):
2101         * runtime/Identifier.h:
2102         (JSC::Identifier::Identifier):
2103         (JSC::Identifier::toArrayIndex):
2104         * runtime/JSArray.cpp:
2105         (JSC::JSArray::getOwnPropertySlot):
2106         (JSC::JSArray::getOwnPropertyDescriptor):
2107         (JSC::JSArray::put):
2108         (JSC::JSArray::deleteProperty):
2109         * runtime/JSArray.h:
2110         * runtime/JSGlobalObjectFunctions.cpp:
2111         (JSC::encode):
2112         (JSC::parseInt):
2113         (JSC::globalFuncJSCPrint):
2114         * runtime/JSString.h:
2115         (JSC::RopeBuilder::JSString):
2116         * runtime/UString.cpp:
2117         (JSC::UString::toDouble):
2118         (JSC::UString::UTF8String):
2119         * runtime/UString.h:
2120         (JSC::UString::isNull):
2121         (JSC::UString::isEmpty):
2122         (JSC::UString::impl):
2123         (JSC::UString::cost):
2124         (JSC::UString::~UString):
2125         (JSC::UString::toArrayIndex):
2126         * wtf/text/WTFString.cpp:
2127         (WTF::String::utf8):
2128         * wtf/text/WTFString.h:
2129         (WTF::String::String):
2130         (WTF::String::isHashTableDeletedValue):
2131         (WTF::String::length):
2132         (WTF::String::operator[]):
2133         (WTF::String::isNull):
2134         (WTF::String::isEmpty):
2135         (WTF::String::impl):
2136
2137 2010-08-12  Gavin Barraclough  <barraclough@apple.com>
2138
2139         Windows build fix.
2140
2141         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
2142
2143 2010-08-12  Gavin Barraclough  <barraclough@apple.com>
2144
2145         Reviewed by Sam Weinig
2146
2147         Unify UString::UTF8String() & String::utf8() methods,
2148         remove UString::cost() & make atArrayIndex a free function.
2149
2150         * JavaScriptCore.exp:
2151         * bytecode/CodeBlock.cpp:
2152         (JSC::constantName):
2153         (JSC::idName):
2154         (JSC::CodeBlock::registerName):
2155         (JSC::regexpName):
2156         (JSC::printGlobalResolveInfo):
2157         (JSC::printStructureStubInfo):
2158         (JSC::CodeBlock::printStructure):
2159         (JSC::CodeBlock::printStructures):
2160         * jsc.cpp:
2161         (functionPrint):
2162         (functionDebug):
2163         (runInteractive):
2164         (fillBufferWithContentsOfFile):
2165         * pcre/pcre_exec.cpp:
2166         (Histogram::~Histogram):
2167         * profiler/CallIdentifier.h:
2168         (JSC::CallIdentifier::c_str):
2169         * profiler/Profile.cpp:
2170         (JSC::Profile::debugPrintDataSampleStyle):
2171         * profiler/ProfileGenerator.cpp:
2172         (JSC::ProfileGenerator::willExecute):
2173         (JSC::ProfileGenerator::didExecute):
2174         * profiler/ProfileNode.cpp:
2175         (JSC::ProfileNode::debugPrintData):
2176         (JSC::ProfileNode::debugPrintDataSampleStyle):
2177         * runtime/Arguments.cpp:
2178         (JSC::Arguments::getOwnPropertySlot):
2179         (JSC::Arguments::getOwnPropertyDescriptor):
2180         (JSC::Arguments::put):
2181         (JSC::Arguments::deleteProperty):
2182         * runtime/DateConversion.cpp:
2183         (JSC::parseDate):
2184         * runtime/Identifier.h:
2185         (JSC::Identifier::toStrictUInt32):
2186         * runtime/JSArray.cpp:
2187         (JSC::JSArray::getOwnPropertySlot):
2188         (JSC::JSArray::getOwnPropertyDescriptor):
2189         (JSC::JSArray::put):
2190         (JSC::JSArray::deleteProperty):
2191         * runtime/JSArray.h:
2192         (JSC::toArrayIndex):
2193         * runtime/JSGlobalObjectFunctions.cpp:
2194         (JSC::encode):
2195         (JSC::parseInt):
2196         (JSC::globalFuncJSCPrint):
2197         * runtime/JSString.h:
2198         (JSC::RopeBuilder::JSString):
2199         * runtime/UString.cpp:
2200         (JSC::UString::toDouble):
2201         (JSC::putUTF8Triple):
2202         (JSC::UString::utf8):
2203         * runtime/UString.h:
2204         (JSC::UString::~UString):
2205         (JSC::UString::isNull):
2206         (JSC::UString::isEmpty):
2207         (JSC::UString::impl):
2208         * wtf/text/WTFString.cpp:
2209         (WTF::String::utf8):
2210         * wtf/text/WTFString.h:
2211         (WTF::String::~String):
2212         (WTF::String::swap):
2213         (WTF::String::isNull):
2214         (WTF::String::isEmpty):
2215         (WTF::String::impl):
2216         (WTF::String::length):
2217         (WTF::String::String):
2218         (WTF::String::isHashTableDeletedValue):
2219
2220 2010-08-12  Gavin Barraclough  <barraclough@apple.com>
2221
2222         Eeerk! - revert accidentally committed changes in UString!
2223
2224         * JavaScriptCore.exp:
2225         * runtime/UString.cpp:
2226         (JSC::UString::UString):
2227         * runtime/UString.h:
2228
2229 2010-08-12  Gavin Barraclough  <barraclough@apple.com>
2230
2231         Reviewed by Sam Weinig
2232
2233         Change UString constructors to match those in WTF::String.
2234         This changes behaviour of UString((char*)0) to create null
2235         strings, akin to UString() rather than UString::empty().
2236         (This matches String).  Remove unused constructors from
2237         UString, and add null-terminated UTF-16 constructor, to
2238         match String.  Move String's constructor into the .cpp to
2239         match UString.
2240
2241         * JavaScriptCore.exp:
2242         * debugger/DebuggerCallFrame.cpp:
2243         (JSC::DebuggerCallFrame::calculatedFunctionName):
2244         * runtime/RegExpKey.h:
2245         (JSC::RegExpKey::RegExpKey):
2246         * runtime/SmallStrings.cpp:
2247         (JSC::SmallStrings::createSingleCharacterString):
2248         * runtime/UString.cpp:
2249         (JSC::UString::UString):
2250         * runtime/UString.h:
2251         (JSC::UString::UString):
2252         (JSC::UString::swap):
2253         (JSC::UString::adopt):
2254         (JSC::UString::operator[]):
2255         * wtf/text/WTFString.h:
2256         (WTF::String::String):
2257         (WTF::String::adopt):
2258         (WTF::String::operator[]):
2259
2260 2010-08-12  David Levin  <levin@chromium.org>
2261
2262         Reviewed by NOBODY (build fix).
2263
2264         * runtime/UString.h: Removed unneccessary #include.
2265
2266 2010-08-12  Gavin Barraclough  <barraclough@apple.com>
2267
2268         Reviewed by Sam Weinig
2269
2270         Revert changes to ALWAYS_INLINEness of a couple of functions in UString.
2271         This appears to have degraded performance.
2272
2273         * runtime/UString.cpp:
2274         (JSC::UString::ascii):
2275         * runtime/UString.h:
2276         (JSC::UString::length):
2277         (JSC::UString::isEmpty):
2278         (JSC::UString::~UString):
2279
2280 2010-08-12  Csaba Osztrogonác  <ossy@webkit.org>
2281
2282         Reviewed by Antonio Gomes.
2283
2284         [Qt] Fix warnings: unknown conversion type character 'l' in format
2285         https://bugs.webkit.org/show_bug.cgi?id=43359
2286
2287         Qt port doesn't call any printf in String::format(...), consequently
2288         using __attribute__((format(printf,m,n))) is incorrect and causes
2289         false positive warnings on Windows if you build with MinGW.
2290
2291         Qt port calls QString::vsprintf(...) , which is platform
2292         independent, and handles %lli, %llu and %llx on all platforms.
2293         (http://trac.webkit.org/changeset/35712)
2294
2295         * wtf/text/WTFString.h:
2296
2297 2010-08-12  Gabor Loki  <loki@webkit.org>
2298
2299         Reviewed by Geoffrey Garen.
2300
2301         Fix the array subscript is above array bounds warning in ByteArray on ARM.
2302         https://bugs.webkit.org/show_bug.cgi?id=43358
2303
2304         The warning is very similar to this one: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37861
2305
2306         * wtf/ByteArray.cpp:
2307         (WTF::ByteArray::create):
2308
2309 2010-08-12  Gustavo Noronha Silva  <gustavo.noronha@collabora.co.uk>
2310
2311         Reviewed by Martin Robinson.
2312
2313         [GTK] Use GSettings to save/restore Web Inspector settings
2314         https://bugs.webkit.org/show_bug.cgi?id=43512
2315
2316         * wtf/gobject/GRefPtr.cpp: Added support for GVariant, used by our
2317         GSettings support.
2318         (WTF::refGPtr):
2319         (WTF::derefGPtr):
2320         * wtf/gobject/GRefPtr.h:
2321
2322 2010-08-12  Gabor Loki  <loki@webkit.org>
2323
2324         Reviewed by Simon Hausmann.
2325
2326         The scratch register should be saved in YARR with ARM JIT
2327         https://bugs.webkit.org/show_bug.cgi?id=43910
2328
2329         Reported by Jocelyn Turcotte.
2330
2331         * yarr/RegexJIT.cpp:
2332         (JSC::Yarr::RegexGenerator::generateEnter):
2333         (JSC::Yarr::RegexGenerator::generateReturn):
2334
2335 2010-08-11  Gavin Barraclough  <barraclough@apple.com>
2336
2337         Windows build fix.
2338
2339         * JavaScriptCore.xcodeproj/project.pbxproj:
2340         * wtf/Forward.h:
2341
2342 2010-08-11  Leo Yang  <leo.yang@torchmobile.com.cn>
2343
2344         Reviewed by Geoffrey Garen.
2345
2346         Date("") should be an invalid date. For IE, Firefox and Chrome, Date("") is invalid date,
2347         which means isNaN(new Date("")) should return true.
2348         https://bugs.webkit.org/show_bug.cgi?id=43793
2349         Tests: fast/js/date-constructor.html
2350
2351         * runtime/JSGlobalData.cpp:
2352         (JSC::JSGlobalData::resetDateCache):
2353
2354 2010-08-11  Gavin Barraclough  <barraclough@apple.com>
2355
2356         Windows & !JIT build fix.
2357
2358         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
2359         * JavaScriptCore.xcodeproj/project.pbxproj:
2360         * runtime/RegExp.cpp:
2361         (JSC::RegExp::match):
2362
2363 2010-08-11  Gavin Barraclough  <barraclough@apple.com>
2364
2365         Rubber stamp by sam weinig
2366
2367         Touch a file to stop the bot rolling a bit change out!
2368
2369         * runtime/UString.cpp:
2370         (JSC::UString::ascii):
2371
2372 2010-08-11  Kevin Ollivier  <kevino@theolliviers.com>
2373
2374         [wx] Build fix for wx and WebDOM bindings, add CString classes to the list of forwards.
2375
2376         * wtf/Forward.h:
2377
2378 2010-08-11  Gavin Barraclough  <barraclough@apple.com>
2379
2380         Rubber stamps by Darin Adler & Sam Weinig.
2381
2382         Bug 43867 - Some UString cleanup
2383
2384         Change JSC::UString data(), size(), and from(), to characters(), length(), and number() to match WTF::String.
2385         Move string concatenation methods to a new header to simplify down UString.h.  Remove is8Bit().
2386
2387         * API/JSClassRef.cpp:
2388         (OpaqueJSClass::~OpaqueJSClass):
2389         (OpaqueJSClass::className):
2390         * API/OpaqueJSString.cpp:
2391         (OpaqueJSString::create):
2392         * JavaScriptCore.exp:
2393         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
2394         * JavaScriptCore.xcodeproj/project.pbxproj:
2395         * bytecode/CodeBlock.cpp:
2396         (JSC::constantName):
2397         (JSC::idName):
2398         (JSC::CodeBlock::registerName):
2399         (JSC::regexpName):
2400         * bytecode/EvalCodeCache.h:
2401         (JSC::EvalCodeCache::get):
2402         * bytecompiler/NodesCodegen.cpp:
2403         (JSC::ResolveNode::emitBytecode):
2404         (JSC::FunctionCallResolveNode::emitBytecode):
2405         (JSC::ReadModifyResolveNode::emitBytecode):
2406         (JSC::processClauseList):
2407         * parser/ASTBuilder.h:
2408         (JSC::ASTBuilder::createRegex):
2409         * parser/ParserArena.h:
2410         (JSC::IdentifierArena::makeNumericIdentifier):
2411         * parser/SourceProvider.h:
2412         (JSC::UStringSourceProvider::data):
2413         (JSC::UStringSourceProvider::length):
2414         * profiler/Profiler.cpp:
2415         * runtime/Arguments.cpp:
2416         (JSC::Arguments::getOwnPropertySlot):
2417         (JSC::Arguments::getOwnPropertyNames):
2418         (JSC::Arguments::put):
2419         (JSC::Arguments::deleteProperty):
2420         * runtime/ArrayPrototype.cpp:
2421         (JSC::arrayProtoFuncToString):
2422         * runtime/DatePrototype.cpp:
2423         (JSC::formatLocaleDate):
2424         * runtime/ExceptionHelpers.cpp:
2425         * runtime/FunctionConstructor.cpp:
2426         * runtime/FunctionPrototype.cpp:
2427         (JSC::insertSemicolonIfNeeded):
2428         * runtime/Identifier.h:
2429         (JSC::Identifier::characters):
2430         (JSC::Identifier::length):
2431         * runtime/JSGlobalObjectFunctions.cpp:
2432         (JSC::decode):
2433         (JSC::parseInt):
2434         (JSC::parseFloat):
2435         (JSC::globalFuncEscape):
2436         (JSC::globalFuncUnescape):
2437         * runtime/JSNumberCell.cpp:
2438         (JSC::JSNumberCell::toString):
2439         * runtime/JSONObject.cpp:
2440         (JSC::gap):
2441         (JSC::Stringifier::appendQuotedString):
2442         (JSC::Stringifier::appendStringifiedValue):
2443         (JSC::Stringifier::indent):
2444         (JSC::Stringifier::unindent):
2445         (JSC::Walker::walk):
2446         * runtime/JSString.cpp:
2447         (JSC::JSString::replaceCharacter):
2448         (JSC::JSString::getIndexSlowCase):
2449         * runtime/JSString.h:
2450         (JSC::RopeBuilder::JSString):
2451         (JSC::RopeBuilder::appendValueInConstructAndIncrementLength):
2452         (JSC::RopeBuilder::fiberCount):
2453         (JSC::jsSingleCharacterSubstring):
2454         (JSC::jsNontrivialString):
2455         (JSC::JSString::getIndex):
2456         (JSC::jsString):
2457         (JSC::jsStringWithFinalizer):
2458         (JSC::jsSubstring):
2459         (JSC::jsOwnedString):
2460         * runtime/JSStringBuilder.h:
2461         (JSC::JSStringBuilder::append):
2462         * runtime/LiteralParser.h:
2463         (JSC::LiteralParser::Lexer::Lexer):
2464         * runtime/NumberPrototype.cpp:
2465         (JSC::numberProtoFuncToString):
2466         (JSC::numberProtoFuncToFixed):
2467         (JSC::numberProtoFuncToExponential):
2468         (JSC::numberProtoFuncToPrecision):
2469         * runtime/NumericStrings.h:
2470         (JSC::NumericStrings::add):
2471         (JSC::NumericStrings::lookupSmallString):
2472         * runtime/Operations.h:
2473         (JSC::jsString):
2474         * runtime/RegExp.cpp:
2475         (JSC::RegExp::match):
2476         * runtime/RegExpCache.cpp:
2477         (JSC::RegExpCache::lookupOrCreate):
2478         (JSC::RegExpCache::create):
2479         * runtime/RegExpConstructor.cpp:
2480         (JSC::RegExpConstructor::getRightContext):
2481         * runtime/RegExpObject.cpp:
2482         (JSC::RegExpObject::match):
2483         * runtime/RegExpPrototype.cpp:
2484         (JSC::regExpProtoFuncToString):
2485         * runtime/StringBuilder.h:
2486         (JSC::StringBuilder::append):
2487         * runtime/StringConcatenate.h: Copied from JavaScriptCore/runtime/UString.h.
2488         (JSC::):
2489         (JSC::sumWithOverflow):
2490         (JSC::tryMakeString):
2491         (JSC::makeString):
2492         * runtime/StringObject.cpp:
2493         (JSC::StringObject::getOwnPropertyNames):
2494         * runtime/StringPrototype.cpp:
2495         (JSC::substituteBackreferencesSlow):
2496         (JSC::localeCompare):
2497         (JSC::jsSpliceSubstringsWithSeparators):
2498         (JSC::stringProtoFuncReplace):
2499         (JSC::stringProtoFuncCharAt):
2500         (JSC::stringProtoFuncCharCodeAt):
2501         (JSC::stringProtoFuncIndexOf):
2502         (JSC::stringProtoFuncLastIndexOf):
2503         (JSC::stringProtoFuncSlice):
2504         (JSC::stringProtoFuncSplit):
2505         (JSC::stringProtoFuncSubstr):
2506         (JSC::stringProtoFuncSubstring):
2507         (JSC::stringProtoFuncToLowerCase):
2508         (JSC::stringProtoFuncToUpperCase):
2509         (JSC::stringProtoFuncFontsize):
2510         (JSC::stringProtoFuncLink):
2511         (JSC::trimString):
2512         * runtime/UString.cpp:
2513         (JSC::UString::number):
2514         (JSC::UString::ascii):
2515         (JSC::UString::operator[]):
2516         (JSC::UString::toDouble):
2517         (JSC::UString::find):
2518         (JSC::UString::rfind):
2519         (JSC::UString::substr):
2520         (JSC::operator==):
2521         (JSC::operator<):
2522         (JSC::operator>):
2523         (JSC::UString::UTF8String):
2524         * runtime/UString.h:
2525         (JSC::UString::UString):
2526         (JSC::UString::adopt):
2527         (JSC::UString::length):
2528         (JSC::UString::characters):
2529         (JSC::UString::isNull):
2530         (JSC::UString::isEmpty):
2531         (JSC::UString::impl):
2532         (JSC::UString::cost):
2533         (JSC::operator==):
2534         (JSC::operator!=):
2535         (JSC::codePointCompare):
2536         (JSC::UString::toArrayIndex):
2537         (JSC::IdentifierRepHash::hash):
2538         (WTF::):
2539         * yarr/RegexJIT.cpp:
2540         (JSC::Yarr::jitCompileRegex):
2541         * yarr/RegexParser.h:
2542         (JSC::Yarr::Parser::Parser):
2543
2544 2010-08-11  Gabor Loki  <loki@webkit.org>
2545
2546         Qt build fix (ARMv7).
2547
2548         Fix invalid conversion from int to Condition.
2549         Add ARMv7Assembler.cpp to JavaScriptCore.pro.
2550
2551         * JavaScriptCore.pro:
2552         * assembler/ARMv7Assembler.h:
2553         (JSC::ARMv7Assembler::):
2554         (JSC::ARMv7Assembler::JmpSrc::JmpSrc):
2555
2556 2010-08-11  Nathan Lawrence  <nlawrence@apple.com>
2557
2558         Reviewed by Geoffrey Garen.
2559
2560         At collection time, we frequently want to mark a cell, while checking
2561         whether it was originally checked.  Previously, this was a get
2562         operation follwed by a set operation.  Fusing the two saves
2563         computation and gives a 0.5% sunspider speedup.
2564
2565         * runtime/Collector.h:
2566         (JSC::CollectorBitmap::getset):
2567         (JSC::Heap::checkMarkCell):
2568         * runtime/JSArray.h:
2569         (JSC::MarkStack::drain):
2570         * runtime/JSCell.h:
2571         (JSC::MarkStack::append):
2572
2573 2010-08-11  Steve Falkenburg  <sfalken@apple.com>
2574
2575         Reviewed by Adam Roben.
2576
2577         Improve vsprops copying for Windows build
2578         https://bugs.webkit.org/show_bug.cgi?id=41982
2579
2580         When we detect a new SDK, always copy a new set of vsprops files.
2581         Previously, if someone updated their SDK after updating their sources,
2582         they could end up with out-of-date vsprops files.
2583
2584         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreGenerated.make:
2585
2586 2010-08-10  Darin Adler  <darin@apple.com>
2587
2588         Reviewed by Sam Weinig.
2589
2590         Add leakRef and clear to all RefPtr variants
2591         https://bugs.webkit.org/show_bug.cgi?id=42389
2592
2593         * API/JSRetainPtr.h: Changed all uses of "template <...>" to instead do
2594         "template<...>". We should probably put this in the style guide and do it
2595         consitently. Fixed other minor style issues. Defined many of the inlined
2596         functions outside the class definition, to avoid style checker warnings
2597         about multiple statements on a single line and for slightly better clarity
2598         of the class definition itself. Renamed releaseRef to leakRef. Added a
2599         releaseRef that calls leakRef so we don't have to rename all callers oat
2600         once. Added a clear function.
2601
2602         * wtf/PassRefPtr.h: Changed all uses of releaseRef to leakRef.
2603
2604         * wtf/RefPtr.h: Changed all uses of "template <...>" to instead do
2605         "template<...>". Tidied up declarations and comments a bit.
2606          Changed all uses of releaseRef to leakRef.
2607
2608         * wtf/RetainPtr.h: Changed all uses of "template <...>" to instead do
2609         "template<...>". Defined many of the inlined functions outside the class
2610         definition, to avoid style checker warnings about multiple statements on
2611         a single line and for slightly better clarity of the class definition itself.
2612         Renamed releaseRef to leakRef. Added a releaseRef that calls leakRef so we
2613         don't have to rename all callers at once. Added a clear function.
2614
2615 2010-08-10  Dumitru Daniliuc  <dumi@chromium.org>
2616
2617         Unreviewed, reverting an unintentional change to a file submitted in r65108.
2618
2619         * bytecode/CodeBlock.h:
2620         (JSC::binaryChop):
2621
2622 2010-08-10  Gavin Barraclough  <barraclough@apple.com>
2623
2624         Rubber stamped by Sam Weinig
2625
2626         Bug 43817 - Remove UString::Rep
2627         UString::Rep has for a long time been replaced by UStringImpl (Rep
2628         remaining as a typedef).  UStringImpl has since been removed too
2629         (unified with StringImpl). Remove Rep, rename rep() to impl() and
2630         m_rep to m_impl.  Also add impl() method to Identifier, and rename
2631         its UString member from _ustring to m_string.
2632
2633         * API/JSCallbackObject.h:
2634         (JSC::JSCallbackObjectData::JSPrivatePropertyMap::getPrivateProperty):
2635         (JSC::JSCallbackObjectData::JSPrivatePropertyMap::setPrivateProperty):
2636         (JSC::JSCallbackObjectData::JSPrivatePropertyMap::deletePrivateProperty):
2637         * API/JSCallbackObjectFunctions.h:
2638         (JSC::::getOwnPropertySlot):
2639         (JSC::::put):
2640         (JSC::::deleteProperty):
2641         (JSC::::getOwnPropertyNames):
2642         (JSC::::staticValueGetter):
2643         (JSC::::staticFunctionGetter):
2644         * API/JSClassRef.cpp:
2645         (tryCreateStringFromUTF8):
2646         (OpaqueJSClass::OpaqueJSClass):
2647         (OpaqueJSClass::~OpaqueJSClass):
2648         (OpaqueJSClassContextData::OpaqueJSClassContextData):
2649         * API/JSClassRef.h:
2650         * API/OpaqueJSString.cpp:
2651         (OpaqueJSString::ustring):
2652         * bytecode/EvalCodeCache.h:
2653         (JSC::EvalCodeCache::get):
2654         * bytecode/JumpTable.h:
2655         (JSC::StringJumpTable::offsetForValue):
2656         (JSC::StringJumpTable::ctiForValue):
2657         * bytecompiler/BytecodeGenerator.cpp:
2658         (JSC::BytecodeGenerator::addVar):
2659         (JSC::BytecodeGenerator::addGlobalVar):
2660         (JSC::BytecodeGenerator::BytecodeGenerator):
2661         (JSC::BytecodeGenerator::addParameter):
2662         (JSC::BytecodeGenerator::registerFor):
2663         (JSC::BytecodeGenerator::willResolveToArguments):
2664         (JSC::BytecodeGenerator::uncheckedRegisterForArguments):
2665         (JSC::BytecodeGenerator::constRegisterFor):
2666         (JSC::BytecodeGenerator::isLocal):
2667         (JSC::BytecodeGenerator::isLocalConstant):
2668         (JSC::BytecodeGenerator::addConstant):
2669         (JSC::BytecodeGenerator::emitLoad):
2670         (JSC::BytecodeGenerator::findScopedProperty):
2671         (JSC::keyForCharacterSwitch):
2672         (JSC::prepareJumpTableForStringSwitch):
2673         * bytecompiler/BytecodeGenerator.h:
2674         * bytecompiler/NodesCodegen.cpp:
2675         (JSC::processClauseList):
2676         * interpreter/Interpreter.cpp:
2677         (JSC::Interpreter::privateExecute):
2678         * jit/JITStubs.cpp:
2679         (JSC::DEFINE_STUB_FUNCTION):
2680         * parser/JSParser.cpp:
2681         (JSC::JSParser::parseStrictObjectLiteral):
2682         * pcre/pcre_exec.cpp:
2683         (Histogram::add):
2684         * profiler/CallIdentifier.h:
2685         (JSC::CallIdentifier::Hash::hash):
2686         * profiler/Profile.cpp:
2687         * profiler/ProfileNode.cpp:
2688         (JSC::ProfileNode::debugPrintDataSampleStyle):
2689         * profiler/ProfileNode.h:
2690         * runtime/ArrayPrototype.cpp:
2691         (JSC::arrayProtoFuncToString):
2692         * runtime/Identifier.cpp:
2693         (JSC::Identifier::equal):
2694         (JSC::IdentifierCStringTranslator::hash):
2695         (JSC::IdentifierCStringTranslator::equal):
2696         (JSC::IdentifierCStringTranslator::translate):
2697         (JSC::Identifier::add):
2698         (JSC::IdentifierUCharBufferTranslator::hash):
2699         (JSC::IdentifierUCharBufferTranslator::equal):
2700         (JSC::IdentifierUCharBufferTranslator::translate):
2701         (JSC::Identifier::addSlowCase):
2702         * runtime/Identifier.h:
2703         (JSC::Identifier::Identifier):
2704         (JSC::Identifier::ustring):
2705         (JSC::Identifier::impl):
2706         (JSC::Identifier::data):
2707         (JSC::Identifier::size):
2708         (JSC::Identifier::ascii):
2709         (JSC::Identifier::isNull):
2710         (JSC::Identifier::isEmpty):
2711         (JSC::Identifier::toUInt32):
2712         (JSC::Identifier::toStrictUInt32):
2713         (JSC::Identifier::toArrayIndex):
2714         (JSC::Identifier::toDouble):
2715         (JSC::Identifier::equal):
2716         (JSC::Identifier::add):
2717         * runtime/InitializeThreading.cpp:
2718         (JSC::initializeThreadingOnce):
2719         * runtime/InternalFunction.cpp:
2720         (JSC::InternalFunction::displayName):
2721         * runtime/JSFunction.cpp:
2722         (JSC::JSFunction::displayName):
2723         * runtime/JSGlobalObject.h:
2724         (JSC::JSGlobalObject::addStaticGlobals):
2725         * runtime/JSStaticScopeObject.h:
2726         (JSC::JSStaticScopeObject::JSStaticScopeObject):
2727         * runtime/JSString.h:
2728         (JSC::):
2729         (JSC::RopeBuilder::appendStringInConstruct):
2730         (JSC::RopeBuilder::appendValueInConstructAndIncrementLength):
2731         (JSC::jsSingleCharacterSubstring):
2732         (JSC::jsSubstring):
2733         * runtime/JSVariableObject.cpp:
2734         (JSC::JSVariableObject::deleteProperty):
2735         (JSC::JSVariableObject::symbolTableGet):
2736         * runtime/JSVariableObject.h:
2737         (JSC::JSVariableObject::symbolTableGet):
2738         (JSC::JSVariableObject::symbolTablePut):
2739         (JSC::JSVariableObject::symbolTablePutWithAttributes):
2740         * runtime/Lookup.cpp:
2741         (JSC::HashTable::createTable):
2742         (JSC::HashTable::deleteTable):
2743         * runtime/Lookup.h:
2744         (JSC::HashEntry::initialize):
2745         (JSC::HashEntry::setKey):
2746         (JSC::HashEntry::key):
2747         (JSC::HashTable::entry):
2748         * runtime/PropertyMapHashTable.h:
2749         (JSC::PropertyMapEntry::PropertyMapEntry):
2750         * runtime/PropertyNameArray.cpp:
2751         (JSC::PropertyNameArray::add):
2752         * runtime/PropertyNameArray.h:
2753         (JSC::PropertyNameArray::add):
2754         (JSC::PropertyNameArray::addKnownUnique):
2755         * runtime/RegExp.cpp:
2756         (JSC::RegExp::match):
2757         * runtime/RegExpCache.cpp:
2758         (JSC::RegExpCache::create):
2759         * runtime/RegExpKey.h:
2760         (JSC::RegExpKey::RegExpKey):
2761         * runtime/SmallStrings.cpp:
2762         (JSC::SmallStringsStorage::rep):
2763         (JSC::SmallStrings::singleCharacterStringRep):
2764         * runtime/SmallStrings.h:
2765         * runtime/StringPrototype.cpp:
2766         (JSC::jsSpliceSubstringsWithSeparators):
2767         (JSC::stringProtoFuncMatch):
2768         (JSC::stringProtoFuncSearch):
2769         * runtime/Structure.cpp:
2770         (JSC::Structure::~Structure):
2771         (JSC::Structure::despecifyDictionaryFunction):
2772         (JSC::Structure::addPropertyTransitionToExistingStructure):
2773         (JSC::Structure::addPropertyTransition):
2774         (JSC::Structure::copyPropertyTable):
2775         (JSC::Structure::get):
2776         (JSC::Structure::despecifyFunction):
2777         (JSC::Structure::put):
2778         (JSC::Structure::hasTransition):
2779         (JSC::Structure::remove):
2780         (JSC::Structure::checkConsistency):
2781         * runtime/Structure.h:
2782         (JSC::Structure::get):
2783         (JSC::Structure::hasTransition):
2784         * runtime/StructureTransitionTable.h:
2785         * runtime/SymbolTable.h:
2786         * runtime/UString.cpp:
2787         (JSC::UString::UString):
2788         (JSC::UString::toStrictUInt32):
2789         (JSC::UString::substr):
2790         * runtime/UString.h:
2791         (JSC::UString::UString):
2792         (JSC::UString::adopt):
2793         (JSC::UString::data):
2794         (JSC::UString::size):
2795         (JSC::UString::isNull):
2796         (JSC::UString::isEmpty):
2797         (JSC::UString::impl):
2798         (JSC::UString::cost):
2799         (JSC::operator==):
2800         (JSC::codePointCompare):
2801         (JSC::IdentifierRepHash::hash):
2802         (WTF::):
2803
2804 2010-08-10  Gavin Barraclough  <barraclough@apple.com>
2805
2806         Bug 43816 - Remove UStringImpl
2807         The class was actually removed a long time ago, replaced by StringImpl.
2808         UStringImpl is just a typedef onto StringImpl.  Remove this.
2809
2810         * API/JSClassRef.cpp:
2811         (OpaqueJSClass::OpaqueJSClass):
2812         * JavaScriptCore.xcodeproj/project.pbxproj:
2813         * runtime/JSString.cpp:
2814         (JSC::JSString::resolveRope):
2815         (JSC::JSString::replaceCharacter):
2816         * runtime/JSString.h:
2817         (JSC::RopeBuilder::RopeIterator::operator*):
2818         (JSC::RopeBuilder::JSString):
2819         (JSC::RopeBuilder::appendStringInConstruct):
2820         (JSC::RopeBuilder::appendValueInConstructAndIncrementLength):
2821         (JSC::jsSingleCharacterSubstring):
2822         (JSC::jsSubstring):
2823         * runtime/JSStringBuilder.h:
2824         (JSC::jsMakeNontrivialString):
2825         * runtime/RopeImpl.cpp:
2826         (JSC::RopeImpl::derefFibersNonRecursive):
2827         * runtime/RopeImpl.h:
2828         (JSC::RopeImpl::deref):
2829         * runtime/SmallStrings.cpp:
2830         (JSC::SmallStringsStorage::SmallStringsStorage):
2831         * runtime/StringConstructor.cpp:
2832         (JSC::stringFromCharCodeSlowCase):
2833         * runtime/StringPrototype.cpp:
2834         (JSC::jsSpliceSubstringsWithSeparators):
2835         (JSC::stringProtoFuncFontsize):
2836         (JSC::stringProtoFuncLink):
2837         * runtime/UString.cpp:
2838         (JSC::initializeUString):
2839         * runtime/UString.h:
2840         (JSC::UString::adopt):
2841         (JSC::tryMakeString):
2842         (JSC::makeString):
2843         * runtime/UStringImpl.h: Removed.
2844
2845 2010-08-10  Patrick Gansterer  <paroga@paroga.com>
2846
2847         Reviewed by Eric Seidel.
2848
2849         Make FastMalloc more portable.
2850         https://bugs.webkit.org/show_bug.cgi?id=41790
2851
2852         * wtf/FastMalloc.cpp:
2853         (WTF::TCMalloc_Central_FreeList::Populate):
2854         (WTF::TCMalloc_ThreadCache::CreateCacheIfNecessary):
2855
2856 2010-08-10  Patrick Gansterer  <paroga@paroga.com>
2857
2858         Reviewed by David Levin.
2859
2860         [WINCE] Buildfix for CE 6.0
2861         https://bugs.webkit.org/show_bug.cgi?id=43027
2862
2863         CE 6.0 doesn't define localtime in the system include files.
2864
2865         * wtf/Platform.h: Include ce_time.h on all OS(WINCE).
2866
2867 2010-08-10  Gavin Barraclough  <barraclough@apple.com>
2868
2869         Rubber stamped by Sam Weinig.
2870
2871         Bug 43786 - Move AtomicStringHash from WebCore to WTF
2872         Also remove deprecated string headers from WebCore/platform/text.
2873
2874         * GNUmakefile.am:
2875         * JavaScriptCore.gypi:
2876         * JavaScriptCore.vcproj/WTF/WTF.vcproj:
2877         * JavaScriptCore.xcodeproj/project.pbxproj:
2878         * wtf/text/AtomicString.h:
2879         * wtf/text/AtomicStringHash.h: Copied from WebCore/platform/text/AtomicStringHash.h.
2880
2881 2010-08-09  Oliver Hunt  <oliver@apple.com>
2882
2883         Fix Qt/ARM again, this time including the other changed file.
2884
2885         * jit/JIT.h:
2886
2887 2010-08-09  Oliver Hunt  <oliver@apple.com>
2888
2889         Fix Qt/ARM
2890
2891         C++ overload resolution I stab at thee
2892
2893         * jit/JITInlineMethods.h:
2894         (JSC::JIT::beginUninterruptedSequence):
2895         (JSC::JIT::endUninterruptedSequence):
2896
2897 2010-08-09  Oliver Hunt  <oliver@apple.com>
2898
2899         Reviewed by Gavin Barraclough.
2900
2901         Allow an assembler/macroassembler to compact branches to more concise forms when linking
2902         https://bugs.webkit.org/show_bug.cgi?id=43745
2903
2904         This patch makes it possible for an assembler to convert jumps into a different
2905         (presumably more efficient) form at link time.  Currently implemented in the
2906         ARMv7 JIT as that already had logic to delay linking of jumps until the end of
2907         compilation already.  The ARMv7 JIT chooses between either a 4 byte short jump
2908         or a full 32-bit offset (and rewrites ITTT instructions as appropriate), so does
2909         not yet produce the most compact form possible.  The general design of the linker
2910         should make it relatively simple to introduce new branch types with little effort,
2911         as the linker has no knowledge of the exact form of any of the branches.
2912
2913         * JavaScriptCore.xcodeproj/project.pbxproj:
2914         * assembler/ARMv7Assembler.cpp: Added.
2915         (JSC::):
2916           Record jump sizes
2917
2918         * assembler/ARMv7Assembler.h:
2919         (JSC::ARMv7Assembler::LinkRecord::LinkRecord):
2920         (JSC::ARMv7Assembler::LinkRecord::from):
2921         (JSC::ARMv7Assembler::LinkRecord::setFrom):
2922         (JSC::ARMv7Assembler::LinkRecord::to):
2923         (JSC::ARMv7Assembler::LinkRecord::type):
2924         (JSC::ARMv7Assembler::LinkRecord::linkType):
2925         (JSC::ARMv7Assembler::LinkRecord::setLinkType):
2926           Encapsulate LinkRecord fields so we can compress the values somewhat
2927
2928         (JSC::ARMv7Assembler::JmpSrc::JmpSrc):
2929           Need to record the jump type now
2930
2931         (JSC::ARMv7Assembler::b):
2932         (JSC::ARMv7Assembler::blx):
2933         (JSC::ARMv7Assembler::bx):
2934           Need to pass the jump types
2935
2936         (JSC::ARMv7Assembler::executableOffsetFor):
2937         (JSC::ARMv7Assembler::jumpSizeDelta):
2938         (JSC::ARMv7Assembler::linkRecordSourceComparator):
2939         (JSC::ARMv7Assembler::computeJumpType):
2940         (JSC::ARMv7Assembler::convertJumpTo):
2941         (JSC::ARMv7Assembler::recordLinkOffsets):
2942         (JSC::ARMv7Assembler::jumpsToLink):
2943         (JSC::ARMv7Assembler::link):
2944         (JSC::ARMv7Assembler::unlinkedCode):
2945           Helper functions for the linker
2946
2947         (JSC::ARMv7Assembler::linkJump):
2948         (JSC::ARMv7Assembler::canBeShortJump):
2949         (JSC::ARMv7Assembler::linkLongJump):
2950         (JSC::ARMv7Assembler::linkShortJump):
2951         (JSC::ARMv7Assembler::linkJumpAbsolute):
2952            Moving code around for the various jump linking functions
2953
2954         * assembler/AbstractMacroAssembler.h:
2955         (JSC::AbstractMacroAssembler::beginUninterruptedSequence):
2956         (JSC::AbstractMacroAssembler::endUninterruptedSequence):
2957           We have to track uninterrupted sequences in any assembler that compacts
2958           branches as that's not something we're allowed to do in such sequences.
2959           AbstractMacroAssembler has a nop version of these functions as it makes the
2960           code elsewhere nicer.
2961
2962         * assembler/LinkBuffer.h:
2963         (JSC::LinkBuffer::LinkBuffer):
2964         (JSC::LinkBuffer::link):
2965         (JSC::LinkBuffer::patch):
2966         (JSC::LinkBuffer::locationOf):
2967         (JSC::LinkBuffer::locationOfNearCall):
2968         (JSC::LinkBuffer::returnAddressOffset):
2969         (JSC::LinkBuffer::trampolineAt):
2970           Updated these functions to adjust for any changed offsets in the linked code
2971
2972         (JSC::LinkBuffer::applyOffset):
2973           A helper function to deal with the now potentially moved labels
2974
2975         (JSC::LinkBuffer::linkCode):
2976           The new and mighty linker function
2977
2978         * assembler/MacroAssemblerARMv7.h:
2979         (JSC::MacroAssemblerARMv7::MacroAssemblerARMv7):
2980         (JSC::MacroAssemblerARMv7::beginUninterruptedSequence):
2981         (JSC::MacroAssemblerARMv7::endUninterruptedSequence):
2982         (JSC::MacroAssemblerARMv7::jumpsToLink):
2983         (JSC::MacroAssemblerARMv7::unlinkedCode):
2984         (JSC::MacroAssemblerARMv7::computeJumpType):
2985         (JSC::MacroAssemblerARMv7::convertJumpTo):
2986         (JSC::MacroAssemblerARMv7::recordLinkOffsets):
2987         (JSC::MacroAssemblerARMv7::jumpSizeDelta):
2988         (JSC::MacroAssemblerARMv7::link):
2989         (JSC::MacroAssemblerARMv7::jump):
2990         (JSC::MacroAssemblerARMv7::branchMul32):
2991         (JSC::MacroAssemblerARMv7::breakpoint):
2992         (JSC::MacroAssemblerARMv7::nearCall):
2993         (JSC::MacroAssemblerARMv7::call):
2994         (JSC::MacroAssemblerARMv7::ret):
2995         (JSC::MacroAssemblerARMv7::tailRecursiveCall):
2996         (JSC::MacroAssemblerARMv7::executableOffsetFor):
2997         (JSC::MacroAssemblerARMv7::inUninterruptedSequence):
2998         (JSC::MacroAssemblerARMv7::makeJump):
2999         (JSC::MacroAssemblerARMv7::makeBranch):
3000            All branches need to pass on their type now
3001
3002         * jit/ExecutableAllocator.h:
3003         (JSC::ExecutablePool::returnLastBytes):
3004            We can't know ahead of time how much space will be necessary to
3005            hold the linked code if we're compacting branches, this new
3006            function allows us to return the unused bytes at the end of linking
3007
3008         * jit/JIT.cpp:
3009         (JSC::JIT::JIT):
3010         (JSC::JIT::privateCompile):
3011         * jit/JIT.h:
3012         (JSC::JIT::compile):
3013            The JIT class now needs to take a linker offset so that recompilation
3014            can generate the same jumps when using branch compaction.
3015         * jit/JITArithmetic32_64.cpp:
3016         (JSC::JIT::emitSlow_op_mod):
3017         * jit/JITOpcodes.cpp:
3018         (JSC::JIT::privateCompileCTIMachineTrampolines):
3019         * jit/JITOpcodes32_64.cpp:
3020         (JSC::JIT::privateCompileCTIMachineTrampolines):
3021         (JSC::JIT::privateCompileCTINativeCall):
3022           Update for new trampolineAt changes
3023
3024         * wtf/FastMalloc.cpp:
3025         (WTF::TCMallocStats::):
3026         * wtf/Platform.h:
3027
3028 2010-08-09  Gavin Barraclough  <barraclough@apple.com>
3029
3030         Qt build fix III.
3031
3032         * wtf/text/WTFString.h:
3033
3034 2010-08-09  Gavin Barraclough  <barraclough@apple.com>
3035
3036         Qt build fix.
3037
3038         * wtf/qt/StringQt.cpp:
3039
3040 2010-08-06  Gavin Barraclough  <barraclough@apple.com>
3041
3042         Rubber stamped by Sam Weinig
3043
3044         Bug 43594 - Add string forwards to Forward.h
3045         This allows us to remove forward declarations for these classes from
3046         WebCore/WebKit (a step in moving these class from WebCore:: to WTF::).
3047
3048         * JavaScriptCore.xcodeproj/project.pbxproj:
3049         * wtf/Forward.h:
3050
3051 2010-08-07  Sheriff Bot  <webkit.review.bot@gmail.com>
3052
3053         Unreviewed, rolling out r64938.
3054         http://trac.webkit.org/changeset/64938
3055         https://bugs.webkit.org/show_bug.cgi?id=43685
3056
3057         Did not compile on several ports (Requested by abarth on
3058         #webkit).
3059
3060         * Android.mk:
3061         * CMakeLists.txt:
3062         * GNUmakefile.am:
3063         * JavaScriptCore.gypi:
3064         * JavaScriptCore.pro:
3065         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
3066         * JavaScriptCore.xcodeproj/project.pbxproj:
3067         * assembler/AbstractMacroAssembler.h:
3068         * assembler/MacroAssembler.h:
3069         * assembler/MacroAssemblerX86.h:
3070         (JSC::MacroAssemblerX86::load32):
3071         (JSC::MacroAssemblerX86::store32):
3072         * assembler/X86Assembler.h:
3073         (JSC::X86Assembler::movl_rm):
3074         (JSC::X86Assembler::movl_mr):
3075         * bytecode/CodeBlock.cpp:
3076         (JSC::CodeBlock::markAggregate):
3077         * bytecode/Instruction.h:
3078         (JSC::PolymorphicAccessStructureList::PolymorphicStubInfo::):
3079         (JSC::PolymorphicAccessStructureList::PolymorphicStubInfo::set):
3080         (JSC::PolymorphicAccessStructureList::PolymorphicAccessStructureList):
3081         * bytecode/StructureStubInfo.cpp:
3082         (JSC::StructureStubInfo::deref):
3083         * bytecode/StructureStubInfo.h:
3084         (JSC::StructureStubInfo::initGetByIdProto):
3085         (JSC::StructureStubInfo::initGetByIdChain):
3086         (JSC::StructureStubInfo::):
3087         * jit/JIT.h:
3088         * jit/JITMarkObjects.cpp: Removed.
3089         * jit/JITPropertyAccess.cpp:
3090         (JSC::JIT::compileGetDirectOffset):
3091         (JSC::JIT::testPrototype):
3092         (JSC::JIT::privateCompilePutByIdTransition):
3093         (JSC::JIT::privateCompileGetByIdProto):
3094         (JSC::JIT::privateCompileGetByIdProtoList):
3095         (JSC::JIT::privateCompileGetByIdChainList):
3096         (JSC::JIT::privateCompileGetByIdChain):
3097         * jit/JITPropertyAccess32_64.cpp:
3098         (JSC::JIT::compileGetDirectOffset):
3099         (JSC::JIT::testPrototype):
3100         (JSC::JIT::privateCompilePutByIdTransition):
3101         (JSC::JIT::privateCompileGetByIdProto):
3102         (JSC::JIT::privateCompileGetByIdProtoList):
3103         (JSC::JIT::privateCompileGetByIdChainList):
3104         (JSC::JIT::privateCompileGetByIdChain):
3105         * jit/JITStubs.cpp:
3106         (JSC::setupPolymorphicProtoList):
3107         * wtf/Platform.h:
3108
3109 2010-08-07  Nathan Lawrence  <nlawrence@apple.com>
3110
3111         Reviewed by Geoffrey Garen.
3112
3113         The JIT code contains a number of direct references to GC'd objects.
3114         When we have movable objects, these references will need to be
3115         updated.
3116
3117         * Android.mk:
3118         * CMakeLists.txt:
3119         * GNUmakefile.am:
3120         * JavaScriptCore.gypi:
3121         * JavaScriptCore.pro:
3122         * JavaScriptCore.xcodeproj/project.pbxproj:
3123         * assembler/AbstractMacroAssembler.h:
3124         (JSC::AbstractMacroAssembler::int32AtLocation):
3125         (JSC::AbstractMacroAssembler::pointerAtLocation):
3126         (JSC::AbstractMacroAssembler::jumpTarget):
3127         * assembler/MacroAssembler.h:
3128         (JSC::MacroAssembler::loadPtrWithPatch):
3129             Normally, loadPtr will optimize when the register is eax.  Since
3130             the slightly smaller instruction changes the offsets, it messes up
3131             our ability to repatch the code.  We added this new instruction
3132             that garuntees a constant size.
3133         * assembler/MacroAssemblerX86.h:
3134         (JSC::MacroAssemblerX86::load32WithPatch):
3135             Changed load32 in the same way described above.
3136         (JSC::MacroAssemblerX86::load32):
3137             Moved the logic to optimize laod32 from movl_mr to load32
3138         (JSC::MacroAssemblerX86::store32):
3139             Moved the logic to optimize store32 from movl_rm to store32
3140         * assembler/X86Assembler.h:
3141         (JSC::X86Assembler::movl_rm):
3142         (JSC::X86Assembler::movl_mr):
3143         (JSC::X86Assembler::int32AtLocation):
3144         (JSC::X86Assembler::pointerAtLocation):
3145         (JSC::X86Assembler::jumpTarget):
3146         * bytecode/CodeBlock.cpp:
3147         (JSC::CodeBlock::markAggregate):
3148         * bytecode/Instruction.h:
3149             As described in StructureStubInfo.h, we needed to add additional
3150             fields to both StructureStubInfo and
3151             PolymorphicAccessStructureList so that we can determine the
3152             structure of the JITed code at patch time.
3153         (JSC::PolymorphicAccessStructureList::PolymorphicStubInfo::set):
3154         (JSC::PolymorphicAccessStructureList::PolymorphicAccessStructureList):
3155         * bytecode/StructureStubInfo.cpp:
3156         (JSC::StructureStubInfo::markAggregate):
3157             Added this function to mark the JITed code that correosponds to
3158             this structure stub info.
3159         * bytecode/StructureStubInfo.h:
3160         (JSC::StructureStubInfo::initGetByIdProto):
3161         (JSC::StructureStubInfo::initGetByIdChain):
3162         (JSC::StructureStubInfo::):
3163         * jit/JIT.h:
3164         * jit/JITMarkObjects.cpp: Added.
3165         (JSC::JIT::patchPrototypeStructureAddress):
3166         (JSC::JIT::patchGetDirectOffset):
3167         (JSC::JIT::markGetByIdProto):
3168         (JSC::JIT::markGetByIdChain):
3169         (JSC::JIT::markGetByIdProtoList):
3170         (JSC::JIT::markPutByIdTransition):
3171         (JSC::JIT::markGlobalObjectReference):
3172         * jit/JITPropertyAccess.cpp:
3173             Added asserts for the patch offsets.
3174         (JSC::JIT::compileGetDirectOffset):
3175         (JSC::JIT::testPrototype):
3176         (JSC::JIT::privateCompilePutByIdTransition):
3177         (JSC::JIT::privateCompileGetByIdProto):
3178         (JSC::JIT::privateCompileGetByIdProtoList):
3179         (JSC::JIT::privateCompileGetByIdChainList):
3180         (JSC::JIT::privateCompileGetByIdChain):
3181         * jit/JITPropertyAccess32_64.cpp:
3182         (JSC::JIT::compileGetDirectOffset):
3183         (JSC::JIT::testPrototype):
3184         (JSC::JIT::privateCompilePutByIdTransition):
3185         (JSC::JIT::privateCompileGetByIdProto):
3186         (JSC::JIT::privateCompileGetByIdProtoList):
3187         (JSC::JIT::privateCompileGetByIdChainList):
3188         (JSC::JIT::privateCompileGetByIdChain):
3189         * jit/JITStubs.cpp:
3190         (JSC::setupPolymorphicProtoList):
3191         * wtf/Platform.h:
3192             Added ENABLE_MOVABLE_GC_OBJECTS flag
3193
3194 2010-08-07  Michael Saboff  <msaboff@apple.com>
3195
3196         Reviewed by Geoffrey Garen.
3197
3198         Revert JSArray to point to the beginning of the contained ArrayStorage
3199         struct.  This is described in
3200         https://bugs.webkit.org/show_bug.cgi?id=43526.
3201
3202         * jit/JITPropertyAccess.cpp:
3203         (JSC::JIT::emit_op_get_by_val):
3204         (JSC::JIT::emit_op_put_by_val):
3205         (JSC::JIT::privateCompilePatchGetArrayLength):
3206         * jit/JITPropertyAccess32_64.cpp:
3207         (JSC::JIT::emit_op_get_by_val):
3208         (JSC::JIT::emit_op_put_by_val):
3209         (JSC::JIT::privateCompilePatchGetArrayLength):
3210         * runtime/JSArray.cpp:
3211         (JSC::JSArray::JSArray):
3212         (JSC::JSArray::~JSArray):
3213         (JSC::JSArray::getOwnPropertySlot):
3214         (JSC::JSArray::getOwnPropertyDescriptor):
3215         (JSC::JSArray::put):
3216         (JSC::JSArray::putSlowCase):
3217         (JSC::JSArray::deleteProperty):
3218         (JSC::JSArray::getOwnPropertyNames):
3219         (JSC::JSArray::getNewVectorLength):
3220         (JSC::JSArray::increaseVectorLength):
3221         (JSC::JSArray::increaseVectorPrefixLength):
3222         (JSC::JSArray::setLength):
3223         (JSC::JSArray::pop):
3224         (JSC::JSArray::push):
3225         (JSC::JSArray::shiftCount):
3226         (JSC::JSArray::unshiftCount):
3227         (JSC::JSArray::sortNumeric):
3228         (JSC::JSArray::sort):
3229         (JSC::JSArray::fillArgList):
3230         (JSC::JSArray::copyToRegisters):
3231         (JSC::JSArray::compactForSorting):
3232         (JSC::JSArray::subclassData):
3233         (JSC::JSArray::setSubclassData):
3234         (JSC::JSArray::checkConsistency):
3235         * runtime/JSArray.h:
3236         (JSC::JSArray::length):
3237         (JSC::JSArray::canGetIndex):
3238         (JSC::JSArray::getIndex):
3239         (JSC::JSArray::setIndex):
3240         (JSC::JSArray::uncheckedSetIndex):
3241         (JSC::JSArray::markChildrenDirect):
3242
3243 2010-08-07  Kwang Yul Seo  <skyul@company100.net>
3244
3245         Reviewed by Eric Seidel.
3246
3247         Add ENABLE(YARR) guard around JSGlobalData::m_regexAllocator
3248         https://bugs.webkit.org/show_bug.cgi?id=43399
3249
3250         m_regexAllocator is used only by RegExp::compile which is guarded with ENABLE(YARR).
3251
3252         * runtime/JSGlobalData.h:
3253
3254 2010-08-07  Patrick Roland Gansterer  <paroga@paroga.com>
3255
3256         Reviewed by Eric Seidel.
3257
3258         [Qt] Enable JIT on WinCE
3259         https://bugs.webkit.org/show_bug.cgi?id=43303
3260
3261         Add ExtraCompiler for generating GeneratedJITStubs_MSVC.asm.
3262
3263         * DerivedSources.pro:
3264
3265 2010-08-07  Dan Bernstein  <mitz@apple.com>
3266
3267         Reviewed by Anders Carlsson.
3268
3269         Created a separate SimpleFontData constructor exclusively for SVG fonts and moved the CTFontRef
3270         from SimpleFontData to FontPlatformData.
3271         https://bugs.webkit.org/show_bug.cgi?id=43674
3272
3273         * wtf/Platform.h: Moved definitions of WTF_USE_CORE_TEXT and WTF_USE_ATSUI here from WebCore/config.h.
3274
3275 2010-08-07  Zoltan Herczeg  <zherczeg@webkit.org>
3276
3277         Reviewed by Eric Seidel.
3278
3279         Bitmap.h has no default constructor
3280         https://bugs.webkit.org/show_bug.cgi?id=43619
3281
3282         Without a constructor, the initial bits of the Bitmap class
3283         are undefinied. If only a few, or zero bits are 0, the memory
3284         area provided by AlignedMemoryAllocator can be easly exhausted.
3285
3286         Csaba Osztrogonác helped to find this bug.
3287
3288         * wtf/Bitmap.h:
3289         (WTF::::Bitmap):
3290
3291 2010-08-06  Rafael Antognolli  <antognolli@profusion.mobi>
3292
3293         [EFL] Build fix.
3294
3295         * CMakeLists.txt: add runtime/CGHandle.cpp.
3296
3297 2010-08-06  Jessie Berlin  <jberlin@apple.com>
3298
3299         Roll out http://trac.webkit.org/changeset/64801, which broke the Safari Windows Build.
3300         Unreviewed.
3301
3302         * JavaScriptCore.xcodeproj/project.pbxproj:
3303         * wtf/Forward.h:
3304
3305 2010-08-06  Jessie Berlin  <jberlin@apple.com>
3306
3307         Windows Build Fix (continued). Unreviewed.
3308
3309         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
3310
3311 2010-08-06  Jessie Berlin  <jberlin@apple.com>
3312
3313         Windows Build Fix. Unreviewed.
3314
3315         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
3316         Add GCHandle.h and GCHandle.cpp.
3317
3318 2010-08-06  Nathan Lawrence  <nlawrence@apple.com>
3319
3320         Reviewed by Geoffrey Garen.
3321
3322         https://bugs.webkit.org/show_bug.cgi?id=43207
3323
3324         WeakGCPtr's should instead of directly pointing to the GC'd object
3325         should be directed to an array of pointers that can be updated for
3326         movable objects.
3327
3328         * Android.mk:
3329         * GNUmakefile.am:
3330         * JavaScriptCore.exp:
3331         * JavaScriptCore.gypi:
3332         * JavaScriptCore.pro:
3333         * JavaScriptCore.xcodeproj/project.pbxproj:
3334         * runtime/Collector.cpp:
3335         (JSC::Heap::destroy):
3336         (JSC::Heap::allocateBlock):
3337         (JSC::Heap::freeBlock):
3338         (JSC::Heap::updateWeakGCHandles):
3339         (JSC::WeakGCHandlePool::update):
3340         (JSC::Heap::addWeakGCHandle):
3341         (JSC::Heap::markRoots):
3342         * runtime/Collector.h:
3343         (JSC::Heap::weakGCHandlePool):
3344         * runtime/GCHandle.cpp: Added.
3345         (JSC::WeakGCHandle::pool):
3346         (JSC::WeakGCHandlePool::WeakGCHandlePool):
3347         (JSC::WeakGCHandlePool::allocate):
3348         (JSC::WeakGCHandlePool::free):
3349         (JSC::WeakGCHandlePool::operator new):
3350         * runtime/GCHandle.h: Added.
3351         (JSC::WeakGCHandle::isValidPtr):
3352         (JSC::WeakGCHandle::isPtr):
3353         (JSC::WeakGCHandle::isNext):
3354         (JSC::WeakGCHandle::invalidate):
3355         (JSC::WeakGCHandle::get):
3356         (JSC::WeakGCHandle::set):
3357         (JSC::WeakGCHandle::getNextInFreeList):
3358         (JSC::WeakGCHandle::setNextInFreeList):
3359         (JSC::WeakGCHandlePool::isFull):
3360         * runtime/WeakGCPtr.h:
3361         (JSC::WeakGCPtr::WeakGCPtr):
3362         (JSC::WeakGCPtr::~WeakGCPtr):
3363         (JSC::WeakGCPtr::get):
3364         (JSC::WeakGCPtr::clear):
3365         (JSC::WeakGCPtr::assign):
3366         (JSC::get):
3367
3368 2010-08-06  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>
3369
3370         Reviewed by Antonio Gomes.
3371
3372         [Qt] Fix warnings about difference in symbol visiblity on Mac OS X
3373
3374         * jsc.pro:
3375
3376 2010-08-06  Zoltan Herczeg  <zherczeg@webkit.org>
3377
3378         Reviewed by Darin Adler.
3379
3380         Refactor identifier parsing in lexer
3381         https://bugs.webkit.org/show_bug.cgi?id=41845
3382
3383         The code is refactored to avoid gotos. The new code
3384         has the same performance as the old one.
3385
3386         SunSpider --parse-only: no change (from 34.0ms to 33.6ms)
3387         SunSpider: no change (from 523.2ms to 523.5ms)
3388
3389         * parser/Lexer.cpp:
3390         (JSC::Lexer::parseIdent):
3391         (JSC::Lexer::lex):
3392         * parser/Lexer.h:
3393
3394 2010-08-06  Gabor Loki  <loki@webkit.org>
3395
3396         Reviewed by Gavin Barraclough.
3397
3398         The ARM JIT does not support JSValue32_64 with RVCT
3399         https://bugs.webkit.org/show_bug.cgi?id=43411
3400
3401         JSValue32_64 is enabled for RVCT by default.
3402
3403         * create_jit_stubs:
3404         * jit/JITStubs.cpp:
3405         (JSC::ctiTrampoline):
3406         (JSC::ctiVMThrowTrampoline):
3407         (JSC::ctiOpThrowNotCaught):
3408         * wtf/Platform.h:
3409
3410 2010-08-05  Chao-ying Fu  <fu@mips.com>
3411
3412         Reviewed by Darin Adler.
3413
3414         Define WTF_USE_ARENA_ALLOC_ALIGNMENT_INTEGER for MIPS
3415         https://bugs.webkit.org/show_bug.cgi?id=43514
3416
3417         MIPS needs to define WTF_USE_ARENA_ALLOC_ALIGNMENT_INTEGER, so that
3418         RenderArena::allocate() can return 8-byte aligned memory to avoid
3419         exceptions on sdc1/ldc1.
3420
3421         * wtf/Platform.h:
3422
3423 2010-08-05  Gavin Barraclough  <barraclough@apple.com>
3424
3425         Rubber stamped by Sam Weinig
3426
3427         Bug 43594 - Add string forwards to Forward.h
3428         This allows us to remove forward declarations for these classes from
3429         WebCore/WebKit (a step in moving these class from WebCore:: to WTF::).
3430
3431         * JavaScriptCore.xcodeproj/project.pbxproj:
3432         * wtf/Forward.h:
3433
3434 2010-08-05  Geoffrey Garen  <ggaren@apple.com>
3435
3436         Reviewed by Mark Rowe.
3437
3438         Fixed leak seen on buildbot.
3439
3440         * runtime/GCActivityCallbackCF.cpp:
3441         (JSC::DefaultGCActivityCallback::DefaultGCActivityCallback):
3442         (JSC::DefaultGCActivityCallback::~DefaultGCActivityCallback):
3443         (JSC::DefaultGCActivityCallback::operator()): Make out timer a RetainPtr,
3444         since anything less would be uncivilized.
3445
3446 2010-08-05  Andy Estes  <aestes@apple.com>
3447
3448         Reviewed by David Kilzer.
3449
3450         Rename iOS-related OS and PLATFORM macros.
3451         https://bugs.webkit.org/show_bug.cgi?id=43493
3452         
3453         Rename WTF_OS_IPHONE_OS to WTF_OS_IOS, WTF_PLATFORM_IPHONE to
3454         WTF_PLATFORM_IOS, and WTF_PLATFORM_IPHONE_SIMULATOR to
3455         WTF_PLATFORM_IOS_SIMULATOR.
3456
3457         * jit/ExecutableAllocator.h:
3458         * jit/JITStubs.cpp:
3459         * profiler/ProfilerServer.mm:
3460         (-[ProfilerServer init]):
3461         * wtf/FastMalloc.cpp:
3462         (WTF::TCMallocStats::):
3463         * wtf/Platform.h:
3464         * wtf/unicode/icu/CollatorICU.cpp:
3465         (WTF::Collator::userDefault):
3466
3467 2010-08-05  Nathan Lawrence  <nlawrence@apple.com>
3468
3469         Reviewed by Darin Adler.
3470
3471         https://bugs.webkit.org/show_bug.cgi?id=43464
3472
3473         Currently, the global object is being embedded in the JavaScriptCore
3474         bytecode, however since the global object is the same for all opcodes
3475         in a code block, we can have the global object just be a member of the
3476         associated code block.
3477
3478         Additionally, I added an assert inside of emitOpcode that verifies
3479         that the last generated opcode was of the correct length.
3480
3481         * bytecode/CodeBlock.cpp:
3482         (JSC::CodeBlock::CodeBlock):
3483         (JSC::CodeBlock::derefStructures):
3484         (JSC::CodeBlock::markAggregate):
3485         * bytecode/CodeBlock.h:
3486         (JSC::CodeBlock::globalObject):
3487         (JSC::GlobalCodeBlock::GlobalCodeBlock):
3488         (JSC::ProgramCodeBlock::ProgramCodeBlock):
3489         (JSC::EvalCodeBlock::EvalCodeBlock):
3490         (JSC::FunctionCodeBlock::FunctionCodeBlock):
3491         * bytecode/Opcode.h:
3492         (JSC::opcodeLength):
3493         * bytecompiler/BytecodeGenerator.cpp:
3494         (JSC::BytecodeGenerator::BytecodeGenerator):
3495         (JSC::BytecodeGenerator::emitOpcode):
3496             Added an assert to check that the last generated opcode is the
3497             correct length.
3498         (JSC::BytecodeGenerator::rewindBinaryOp):
3499             Changed the last opcode to op_end since the length will no longer
3500             be correct.
3501         (JSC::BytecodeGenerator::rewindUnaryOp):
3502             Changed the last opcode to op_end since the length will no longer
3503             be correct.
3504         (JSC::BytecodeGenerator::emitResolve):
3505         (JSC::BytecodeGenerator::emitGetScopedVar):
3506         (JSC::BytecodeGenerator::emitPutScopedVar):
3507         (JSC::BytecodeGenerator::emitResolveWithBase):
3508         * bytecompiler/BytecodeGenerator.h:
3509         * interpreter/Interpreter.cpp:
3510         (JSC::Interpreter::resolveGlobal):
3511         (JSC::Interpreter::resolveGlobalDynamic):
3512         (JSC::Interpreter::privateExecute):
3513         * jit/JITOpcodes.cpp:
3514         (JSC::JIT::emit_op_get_global_var):
3515         (JSC::JIT::emit_op_put_global_var):
3516         (JSC::JIT::emit_op_resolve_global):
3517         (JSC::JIT::emitSlow_op_resolve_global):
3518         (JSC::JIT::emit_op_resolve_global_dynamic):
3519         (JSC::JIT::emitSlow_op_resolve_global_dynamic):
3520         * jit/JITOpcodes32_64.cpp:
3521         (JSC::JIT::emit_op_get_global_var):
3522         (JSC::JIT::emit_op_put_global_var):
3523         (JSC::JIT::emit_op_resolve_global):
3524         (JSC::JIT::emitSlow_op_resolve_global):
3525         * jit/JITStubs.cpp:
3526         (JSC::cti_op_resolve_global):
3527         * runtime/Executable.cpp:
3528         (JSC::FunctionExecutable::compileForCallInternal):
3529         (JSC::FunctionExecutable::compileForConstructInternal):
3530         (JSC::FunctionExecutable::reparseExceptionInfo):
3531
3532 2010-08-05  Gavin Barraclough  <barraclough@apple.com>
3533
3534         Reviewed by Sam Weinig.
3535
3536         Bug 43185 - Switch RegisterFile over to use PageAllocation
3537
3538         Remove platform-specific memory allocation code.
3539
3540         * interpreter/RegisterFile.cpp:
3541         (JSC::RegisterFile::~RegisterFile):
3542         (JSC::RegisterFile::releaseExcessCapacity):
3543         * interpreter/RegisterFile.h:
3544         (JSC::RegisterFile::RegisterFile):
3545         (JSC::RegisterFile::grow):
3546         (JSC::RegisterFile::checkAllocatedOkay):
3547         * wtf/PageAllocation.cpp:
3548         (WTF::PageAllocation::lastError):
3549         * wtf/PageAllocation.h:
3550         (WTF::PageAllocation::allocate):
3551         (WTF::PageAllocation::allocateAt):
3552         (WTF::PageAllocation::allocateAligned):
3553         (WTF::PageAllocation::pageSize):
3554         (WTF::PageAllocation::isPageAligned):
3555         (WTF::PageAllocation::isPowerOfTwo):
3556         * wtf/PageReservation.h:
3557         (WTF::PageReservation::commit):
3558         (WTF::PageReservation::decommit):
3559         (WTF::PageReservation::reserve):
3560         (WTF::PageReservation::reserveAt):
3561
3562 2010-08-05  Michael Saboff  <msaboff@apple.com>
3563
3564         Reviewed by Darin Adler.
3565
3566         Fixed https://bugs.webkit.org/show_bug.cgi?id=43401 where array 
3567         content aren't properly initialized as part of unshift.  
3568
3569         * runtime/JSArray.cpp:
3570         (JSC::JSArray::unshiftCount):
3571
3572 2010-08-05  Jian Li  <jianli@chromium.org>
3573
3574         Reviewed by David Levin.
3575
3576         Unify blob related feature defines to ENABLE(BLOB).
3577         https://bugs.webkit.org/show_bug.cgi?id=43081
3578
3579         * Configurations/FeatureDefines.xcconfig:
3580
3581 2010-08-05  Gustavo Noronha Silva  <gustavo.noronha@collabora.co.uk>
3582
3583         Rubber-stamped by Xan Lopez.
3584
3585         Remove GHashTable left-overs. GHashTable is ref-counted, and is
3586         correctly supported by GRefPtr.
3587
3588         * wtf/gobject/GOwnPtr.h: