Update xcodeproj svn:ignore to include xcuserdata.
[WebKit.git] / Source / JavaScriptCore / ChangeLog
1 2011-01-17  Dan Bernstein  <mitz@apple.com>
2
3         Rubber-stamped by Mark Rowe.
4
5         Update xcodeproj svn:ignore to include xcuserdata.
6
7         * JavaScriptCore.xcodeproj: Modified property svn:ignore.
8
9 2011-01-16  Adam Barth  <abarth@webkit.org>
10
11         Rubber-stamped by Eric Seidel.
12
13         Move WebKit into Source
14         https://bugs.webkit.org/show_bug.cgi?id=52530
15
16         * JavaScriptCore.gyp/JavaScriptCore.gyp:
17
18 2011-01-16  Oliver Hunt  <oliver@apple.com>
19
20         Reviewed by Sam Weinig.
21
22         [jsfunfuzz] Parser doesn't correctly validate for-loop syntax
23         https://bugs.webkit.org/show_bug.cgi?id=52516
24
25         Ensure that we always check for a semicolon after encountering
26         multiple declarations in the initialiser portion of a for-loop.
27
28         * parser/JSParser.cpp:
29         (JSC::JSParser::parseForStatement):
30
31 2011-01-16  Oliver Hunt  <oliver@apple.com>
32
33         Reviewed by Geoffrey Garen.
34
35         Strict mode restrictions on arguments and eval usage aren't complete
36         https://bugs.webkit.org/show_bug.cgi?id=52528
37
38         Fix a few bugs in strict mode where we incorrect allow mutation of
39         arguments and eval in the parser.
40
41         Alas the "optimisation" used by the syntax checker for validating
42         binary and unary expressions was too aggressive: we do actually need
43         a stack for operations and operands although it needn't be as complete
44         as that used for the full AST builder.
45
46         Also disallow assignment to arguments in all cases as allowing arguments
47         to be assignable is always an error in strict mode, regardless of context.
48
49         * parser/ASTBuilder.h:
50         (JSC::ASTBuilder::BinaryExprContext::BinaryExprContext):
51         (JSC::ASTBuilder::UnaryExprContext::UnaryExprContext):
52         * parser/JSParser.cpp:
53         (JSC::JSParser::parseAssignmentExpression):
54         (JSC::JSParser::parseBinaryExpression):
55         (JSC::JSParser::parseUnaryExpression):
56         * parser/SyntaxChecker.h:
57         (JSC::SyntaxChecker::BinaryExprContext::BinaryExprContext):
58         (JSC::SyntaxChecker::BinaryExprContext::~BinaryExprContext):
59         (JSC::SyntaxChecker::UnaryExprContext::UnaryExprContext):
60         (JSC::SyntaxChecker::UnaryExprContext::~UnaryExprContext):
61         (JSC::SyntaxChecker::appendBinaryExpressionInfo):
62         (JSC::SyntaxChecker::operatorStackPop):
63
64 2011-01-15  Geoffrey Garen  <ggaren@apple.com>
65
66         Reviewed by Oliver Hunt.
67
68         Rolled back in r75886.
69         https://bugs.webkit.org/show_bug.cgi?id=52527
70         
71         r75886 broke the GTK Linux bot because Linux was -- quite surprisingly --
72         set up to use the constants for embedded devices.
73
74         * jit/ExecutableAllocatorFixedVMPool.cpp:
75         (JSC::maybeModifyVMPoolSize): Separated Linux constants from embedded
76         constants.
77
78 2011-01-15  Sheriff Bot  <webkit.review.bot@gmail.com>
79
80         Unreviewed, rolling out r75886.
81         http://trac.webkit.org/changeset/75886
82         https://bugs.webkit.org/show_bug.cgi?id=52526
83
84         "Broke GTK+ 64bit" (Requested by xan_ on #webkit).
85
86         * jit/ExecutableAllocatorFixedVMPool.cpp:
87
88 2011-01-15  Geoffrey Garen  <ggaren@apple.com>
89
90         Reviewed by Sam Weinig.
91
92         <rdar://problem/8870429> Shrink the executable pool on embedded devices
93
94         * jit/ExecutableAllocatorFixedVMPool.cpp: Dropped the pool size from 32MB
95         to 16MB.
96
97 2011-01-15  Oliver Hunt  <oliver@apple.com>
98
99         Reviewed by Maciej Stachowiak.
100
101         Incorrect behavior changing attributes of an accessor
102         https://bugs.webkit.org/show_bug.cgi?id=52515
103
104         defineProperty doesn't correctly handle changing attributes of an accessor
105         property.  This is because we don't pass the full descriptor to the 
106         putDescriptor helper function, which means we have insufficient information
107         to do the right thing. Once that's passed the correct behavior is relatively
108         simple to implement.
109
110         * runtime/JSObject.cpp:
111         (JSC::putDescriptor):
112         (JSC::JSObject::defineOwnProperty):
113
114 2011-01-14  Oliver Hunt  <oliver@apple.com>
115
116         Reviewed by Maciej Stachowiak.
117
118         [jsfunfuzz] Incorrect handling of consecutive duplicate labels
119         https://bugs.webkit.org/show_bug.cgi?id=52505
120
121         Compare StringImpl*'s instead of Identifier*'s when looking for duplicate
122         labels.
123
124         * parser/JSParser.cpp:
125         (JSC::JSParser::parseExpressionOrLabelStatement):
126
127 2011-01-14  Simon Fraser  <simon.fraser@apple.com>
128
129         No review.
130         
131         Initialize m_operationInProgress after r75855.
132
133         * runtime/Heap.cpp:
134         (JSC::Heap::Heap):
135
136 2011-01-14  Geoffrey Garen  <ggaren@apple.com>
137
138         Reverted accidentally committed code from my last checkin.
139
140         * runtime/Heap.cpp:
141         (JSC::Heap::markRoots):
142
143 2011-01-14  Geoffrey Garen  <ggaren@apple.com>
144
145         Reviewed by Sam Weinig.
146         
147         Try to fix the GTK bot.
148
149         * runtime/Heap.cpp:
150         (JSC::Heap::Heap):
151         (JSC::Heap::markRoots): Kids, remember to initialize your data members.
152         Knowing is half the battle.
153
154 2011-01-14  Oliver Hunt  <oliver@apple.com>
155
156         Reviewed by Stephanie Lewis.
157
158         [jsfunfuzz] We should be clearing the lexers temporary character buffers when switching to strict mode
159         https://bugs.webkit.org/show_bug.cgi?id=52501
160
161         Clear the temporary character buffers used for reading escaped characters and
162         numbers.
163
164         * parser/Lexer.h:
165         (JSC::Lexer::setOffset):
166
167 2011-01-14  Geoffrey Garen  <ggaren@apple.com>
168
169         Try to fix non-Dtrace builds: #include Tracing.h instead of TracingDtrace.h.
170
171         * runtime/Heap.cpp:
172
173 2011-01-13  Geoffrey Garen  <ggaren@apple.com>
174
175         Reviewed by Oliver Hunt.
176
177         Split out a MarkedSpace strategy object from Heap.
178         https://bugs.webkit.org/show_bug.cgi?id=52421
179         
180         SunSpider reports no change.
181
182         * Android.mk:
183         * CMakeLists.txt:
184         * GNUmakefile.am:
185         * JavaScriptCore.gypi:
186         * JavaScriptCore.pro:
187         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
188         * JavaScriptCore.xcodeproj/project.pbxproj: Updated our 7 build systems. Which is cool.
189
190         * runtime/Heap.cpp:
191         (JSC::Heap::Heap):
192         (JSC::Heap::destroy):
193         (JSC::Heap::recordExtraCost):
194         (JSC::Heap::allocate):
195         (JSC::Heap::markConservatively):
196         (JSC::Heap::markRoots):
197         (JSC::Heap::objectCount):
198         (JSC::Heap::statistics):
199         (JSC::Heap::size):
200         (JSC::Heap::isBusy):
201         (JSC::Heap::collectAllGarbage):
202         (JSC::Heap::primaryHeapBegin):
203         (JSC::Heap::primaryHeapEnd):
204         * runtime/Heap.h:
205         (JSC::Heap::globalData):
206         (JSC::Heap::markedSpace):
207         (JSC::Heap::isCellMarked):
208         (JSC::Heap::checkMarkCell):
209         (JSC::Heap::markCell): Moved all code pertaining to managing chunks of
210         collector memory out of this class. Heap now just delegates to MarkedSpace.
211
212         * runtime/JSCell.h:
213         (JSC::JSCell::Heap::heap): Updated for MarkedSpace delegation.
214
215         * runtime/JSValue.h: Moved the ValueStringPair typedef to help with #includes.
216
217         * runtime/MarkedSpace.cpp: Copied from runtime/Heap.cpp.
218         (JSC::MarkedSpace::MarkedSpace):
219         (JSC::MarkedSpace::destroy):
220         (JSC::MarkedSpace::allocateBlock):
221         (JSC::MarkedSpace::freeBlock):
222         (JSC::MarkedSpace::allocate):
223         (JSC::MarkedSpace::resizeBlocks):
224         (JSC::MarkedSpace::growBlocks):
225         (JSC::MarkedSpace::shrinkBlocks):
226         (JSC::MarkedSpace::markConservatively):
227         (JSC::MarkedSpace::clearMarkBits):
228         (JSC::MarkedSpace::markedCells):
229         (JSC::MarkedSpace::sweep):
230         (JSC::MarkedSpace::objectCount):
231         (JSC::MarkedSpace::addToStatistics):
232         (JSC::MarkedSpace::statistics):
233         (JSC::MarkedSpace::size):
234         (JSC::MarkedSpace::reset):
235         (JSC::MarkedSpace::primaryHeapBegin):
236         (JSC::MarkedSpace::primaryHeapEnd):
237         * runtime/MarkedSpace.h: Copied from runtime/Heap.h.
238         (JSC::MarkedSpace::globalData):
239         (JSC::MarkedSpace::didShrink):
240         (JSC::MarkedSpace::cellBlock):
241         (JSC::MarkedSpace::cellOffset):
242         (JSC::MarkedSpace::isCellMarked):
243         (JSC::MarkedSpace::checkMarkCell):
244         (JSC::MarkedSpace::markCell): Moved all code pertaining to managing chunks of
245         collector memory into this class.
246
247         * runtime/MemoryStatistics.cpp:
248         (JSC::heapStatistics):
249         * runtime/MemoryStatistics.h: Updated for MarkedSpace delegation.
250
251 2011-01-14  Oliver Hunt  <oliver@apple.com>
252
253         Reviewed by Gavin Barraclough.
254
255         [jsfunfuzz] parser doesn't enforce continue restrictions correctly.
256         https://bugs.webkit.org/show_bug.cgi?id=52493
257
258         This patch reworks handling of break, continue and label statements
259         to correctly handle all the valid and invalid cases.  Previously certain
260         errors would be missed by the parser in strict mode, but the bytecode 
261         generator needed to handle those cases for non-strict code so nothing
262         failed, it simply became non-standard behaviour.
263
264         Now that we treat break and continue errors as early faults in non-strict
265         mode as well that safety net has been removed so the parser bugs result in
266         crashes at codegen time.
267
268         * parser/JSParser.cpp:
269         (JSC::JSParser::ScopeLabelInfo::ScopeLabelInfo):
270         (JSC::JSParser::next):
271         (JSC::JSParser::nextTokenIsColon):
272         (JSC::JSParser::continueIsValid):
273             Continue is only valid in loops so we can't use breakIsValid()
274         (JSC::JSParser::pushLabel):
275             We now track whether the label is for a loop (and is therefore a
276             valid target for continue.
277         (JSC::JSParser::popLabel):
278         (JSC::JSParser::getLabel):
279             Replace hasLabel with getLabel so that we can validate the target
280             when parsing continue statements.
281         (JSC::JSParser::Scope::continueIsValid):
282         (JSC::JSParser::Scope::pushLabel):
283         (JSC::JSParser::Scope::getLabel):
284         (JSC::JSParser::JSParser):
285         (JSC::JSParser::parseBreakStatement):
286         (JSC::JSParser::parseContinueStatement):
287         (JSC::LabelInfo::LabelInfo):
288         (JSC::JSParser::parseExpressionOrLabelStatement):
289             Consecutive labels now get handled iteratively so that we can determine
290             whether they're valid targets for continue.
291         * parser/Lexer.cpp:
292         (JSC::Lexer::nextTokenIsColon):
293         * parser/Lexer.h:
294         (JSC::Lexer::setOffset):
295
296 2011-01-14  Patrick Gansterer  <paroga@webkit.org>
297
298         Reviewed by Adam Roben.
299
300         Use the Windows thread pool instead of an extra thread for FastMalloc scavenging
301         https://bugs.webkit.org/show_bug.cgi?id=45186
302
303         * wtf/FastMalloc.cpp:
304         (WTF::TCMalloc_PageHeap::scheduleScavenger): Added missing this pointer to CreateTimerQueueTimer().
305
306 2011-01-14  Patrick Gansterer  <paroga@webkit.org>
307
308         Reviewed by Adam Roben.
309
310         Use the Windows thread pool instead of an extra thread for FastMalloc scavenging
311         https://bugs.webkit.org/show_bug.cgi?id=45186
312
313         r75819 accidentally changed the initial state of the scavenge timer.
314
315         * wtf/FastMalloc.cpp:
316         (WTF::TCMalloc_PageHeap::initializeScavenger): Changed initial state of m_scavengingSuspended to true.
317
318 2011-01-14  Patrick Gansterer  <paroga@webkit.org>
319
320         Unreviewed Windows Release build fix.
321
322         * wtf/FastMalloc.cpp:
323         (WTF::TCMalloc_PageHeap::scavengerTimerFired):
324
325 2011-01-14  Patrick Gansterer  <paroga@webkit.org>
326
327         Unreviewed Windows Release build fix.
328
329         * wtf/FastMalloc.cpp:
330         (WTF::TCMalloc_PageHeap::scavengerTimerFired):
331
332 2011-01-14  Patrick Gansterer  <paroga@webkit.org>
333
334         Reviewed by Adam Roben.
335
336         Use the Windows thread pool instead of an extra thread for FastMalloc scavenging
337         https://bugs.webkit.org/show_bug.cgi?id=45186
338
339         Use CreateTimerQueueTimer() to start periodicScavenge() and stop it with DeleteTimerQueueTimer().
340
341         * wtf/FastMalloc.cpp:
342         (WTF::TCMalloc_PageHeap::initializeScavenger):
343         (WTF::TCMalloc_PageHeap::isScavengerSuspended):
344         (WTF::TCMalloc_PageHeap::scheduleScavenger):
345         (WTF::TCMalloc_PageHeap::rescheduleScavenger):
346         (WTF::TCMalloc_PageHeap::suspendScavenger):
347         (WTF::scavengerTimerFired):
348         (WTF::TCMalloc_PageHeap::periodicScavenge):
349         (WTF::TCMalloc_PageHeap::signalScavenger):
350
351 2011-01-14  Laszlo Gombos  <laszlo.1.gombos@nokia.com>
352
353         Reviewed by Kenneth Rohde Christiansen.
354
355         Align import/export directives
356         https://bugs.webkit.org/show_bug.cgi?id=52208
357
358         * API/JSBase.h: Align import/export directives with
359         WebKit2/Shared/API/c/WKBase.h
360
361 2011-01-14  Michael Saboff  <msaboff@apple.com>
362
363         Reviewed by Oliver Hunt.
364
365         Incorrect backtracking for nested alternatives
366         https://bugs.webkit.org/show_bug.cgi?id=52387
367
368         In the process of propigating a datalabel it wasn't getting connected
369         to a destination when the destination was an indirect jump.  Added
370         code to recognize a direct backtrack destination that was an indirect
371         jump and added mechanism to associate DataLabelPtrs with indirect
372         jump entries.
373         Removed dead method
374         BacktrackDestination::linkDataLabelToHereIfExists()
375
376         * yarr/YarrJIT.cpp:
377         (JSC::Yarr::YarrGenerator::IndirectJumpEntry::IndirectJumpEntry):
378         (JSC::Yarr::YarrGenerator::IndirectJumpEntry::addDataLabel):
379         (JSC::Yarr::YarrGenerator::GenerationState::addIndirectJumpEntry):
380         (JSC::Yarr::YarrGenerator::GenerationState::emitIndirectJumpTable):
381         Changes to link indirect jumps with DataLabelPtr's.
382         (JSC::Yarr::YarrGenerator::BacktrackDestination::clearSubDataLabelPtr):
383         (JSC::Yarr::YarrGenerator::TermGenerationState::linkDataLabelToBacktrackIfExists): 
384         Updated to handle immediate linking of indirect jumps to
385         DataLabelPtr.
386         (JSC::Yarr::YarrGenerator::generateParenthesesDisjunction): Changed to
387         reflect updated linkDataLabelToBacktrackIfExists().
388
389 2011-01-14  Pavel Podivilov  <podivilov@chromium.org>
390
391         Reviewed by Yury Semikhatsky.
392
393         Web Inspector: provide script column offset to frontend.
394         https://bugs.webkit.org/show_bug.cgi?id=52377
395
396         * parser/SourceCode.h:
397         (JSC::SourceCode::SourceCode):
398         (JSC::SourceCode::firstColumn):
399
400 2011-01-13  Darin Adler  <darin@apple.com>
401
402         Reviewed by Geoff Garen.
403
404         <rdar://problem/5469576> Use __PTK_FRAMEWORK_JAVASCRIPTCORE_KEY0 if available.
405
406         * DerivedSources.make: Create a header file, HeaderDetection.h, that tells
407         us whether pthread_machdep.h is available.
408         * wtf/FastMalloc.cpp: If __PTK_FRAMEWORK_JAVASCRIPTCORE_KEY0 is available, then
409         don't do the pthread_getspecific_function_pointer trick.
410         (WTF::setThreadHeap): Ditto, but set thread-specific data.
411         (WTF::TCMalloc_ThreadCache::GetThreadHeap): Ditto, but get rather than set.
412
413 2011-01-13  Xan Lopez  <xlopez@igalia.com>
414
415         Reviewed by Gavin Barraclough.
416
417         JIT requires VM overcommit (particularly on x86-64), Linux does not by default support this without swap?
418         https://bugs.webkit.org/show_bug.cgi?id=42756
419
420         The FixedVMPool Allocator does not work well on systems where
421         allocating very large amounts of memory upfront is not reasonable,
422         like Linux without overcommit enabled. As a workaround, on Linux,
423         default to the values used in embedded environments (in the MB
424         range), and only jump to the GB range if we detect at runtime that
425         overcommit is enabled. Should fix crashes on Linux/x86_64 with
426         less than 3 or 4GB of RAM.
427
428         * jit/ExecutableAllocatorFixedVMPool.cpp:
429         (JSC::FixedVMPoolAllocator::free): use new variables for VM pool
430         size and coalesce limit.
431         (JSC::ExecutableAllocator::isValid): swap the variables from
432         embedded to generic values at runtime, on linux, if overcommit is
433         enabled.
434         (JSC::ExecutableAllocator::underMemoryPressure): use new variables
435         for VM pool size and coalesce limit.
436
437 2011-01-12  Xan Lopez  <xlopez@igalia.com>
438
439         Reviewed by Martin Robinson.
440
441         Add new Yarr.h header to the list file.
442
443         * GNUmakefile.am: ditto.
444
445 2011-01-12  Martin Robinson  <mrobinson@igalia.com>
446
447         Missing Source/JavaScriptCore/assembler/MacroAssemblerARMv7.h in WebKitGtk tarball
448         https://bugs.webkit.org/show_bug.cgi?id=52299
449
450         * GNUmakefile.am: Fix the GTK+ build on ARMv7 by including missing source
451         files in the source list.
452
453 2011-01-12  Peter Varga  <pvarga@webkit.org>
454
455         Reviewed by Gavin Barraclough.
456
457         Add Yarr.h to YARR
458         https://bugs.webkit.org/show_bug.cgi?id=51021
459
460         Move other common constants and functions from YARR's different files
461         to Yarr.h.
462         Use Yarr.h header instead of including other YARR headers where it
463         is possible.
464
465         * JavaScriptCore.gypi:
466         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
467         * JavaScriptCore.xcodeproj/project.pbxproj:
468         * runtime/RegExp.cpp:
469         * yarr/Yarr.h: Added.
470         * yarr/YarrInterpreter.cpp:
471         * yarr/YarrInterpreter.h:
472         * yarr/YarrJIT.cpp:
473         (JSC::Yarr::jitCompile):
474         (JSC::Yarr::execute):
475         * yarr/YarrJIT.h:
476         * yarr/YarrParser.h:
477         * yarr/YarrPattern.cpp:
478         (JSC::Yarr::YarrPattern::compile):
479         (JSC::Yarr::YarrPattern::YarrPattern):
480         * yarr/YarrPattern.h:
481
482 2011-01-12  Sheriff Bot  <webkit.review.bot@gmail.com>
483
484         Unreviewed, rolling out r75595.
485         http://trac.webkit.org/changeset/75595
486         https://bugs.webkit.org/show_bug.cgi?id=52286
487
488         It broke fast/regex/pcre-test-1.html (Requested by Ossy on
489         #webkit).
490
491         * JavaScriptCore.gypi:
492         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
493         * JavaScriptCore.xcodeproj/project.pbxproj:
494         * runtime/RegExp.cpp:
495         * yarr/Yarr.h: Removed.
496         * yarr/YarrInterpreter.cpp:
497         * yarr/YarrInterpreter.h:
498         * yarr/YarrJIT.cpp:
499         (JSC::Yarr::jitCompile):
500         * yarr/YarrJIT.h:
501         (JSC::Yarr::execute):
502         * yarr/YarrParser.h:
503         * yarr/YarrPattern.cpp:
504         (JSC::Yarr::compile):
505         (JSC::Yarr::YarrPattern::YarrPattern):
506         * yarr/YarrPattern.h:
507
508 2011-01-12  Peter Varga  <pvarga@webkit.org>
509
510         Reviewed by Gavin Barraclough.
511
512         Add Yarr.h to YARR
513         https://bugs.webkit.org/show_bug.cgi?id=51021
514
515         Move other common constants and functions from YARR's different files
516         to Yarr.h.
517         Use Yarr.h header instead of including other YARR headers where it
518         is possible.
519
520         * JavaScriptCore.gypi:
521         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
522         * JavaScriptCore.xcodeproj/project.pbxproj:
523         * runtime/RegExp.cpp:
524         * yarr/Yarr.h: Added.
525         * yarr/YarrInterpreter.cpp:
526         * yarr/YarrInterpreter.h:
527         * yarr/YarrJIT.cpp:
528         (JSC::Yarr::jitCompile):
529         (JSC::Yarr::execute):
530         * yarr/YarrJIT.h:
531         * yarr/YarrParser.h:
532         * yarr/YarrPattern.cpp:
533         (JSC::Yarr::YarrPattern::compile):
534         (JSC::Yarr::YarrPattern::YarrPattern):
535         * yarr/YarrPattern.h:
536
537 2011-01-11  Michael Saboff  <msaboff@apple.com>
538
539         Reviewed by Geoffrey Garen.
540
541         Missing call to popTempSortVector() for exception case in JSArray::sort.
542         https://bugs.webkit.org/show_bug.cgi?id=50718
543
544         Fix to patch of 50718 that added pushTempSortVector() and 
545         popTempSortVector() to JSArray::sort() to mark elements during sort.
546         Need to add popTempSortVector() for the return case if toString()
547         had an exception.
548
549         * runtime/JSArray.cpp:
550         (JSC::JSArray::sort): Added popTempSortVector()
551
552 2011-01-11  Xan Lopez  <xlopez@igalia.com>
553
554         Reviewed by Darin Adler.
555
556         Microoptimization in ~JSString
557         https://bugs.webkit.org/show_bug.cgi?id=52222
558
559         The case where m_fibers is 0 seems to be the most common one
560         (almost 1/2 of the time, followed at some distance by m_fibers = 1
561         in 1/4 of the cases in a typical SunSpider execution). We can save
562         one comparison in this common case by doing a bit of refactoring
563         in the JSString destructor; overall a 0.3% progression, but only
564         the string tests show improvement.
565
566         * runtime/JSString.h:
567         (JSC::RopeBuilder::~JSString):
568
569 2011-01-10  Michael Saboff  <msaboff@apple.com>
570
571         Reviewed by Geoffrey Garen.
572
573         ASSERTION Failure in JSC::binaryChop
574         https://bugs.webkit.org/show_bug.cgi?id=25614
575
576         Changed JITStubs::cti_register_file_check() to use the current stack's
577         return PC to find the bytecode for handling the exception in the prior
578         frame.  Also added the appropriate arrity check routine call to the
579         JIT to bytecode vector (m_callReturnIndexVector) in the CodeBlock.
580
581         * jit/JIT.cpp:
582         (JSC::JIT::privateCompile): Changed the arrity check call location
583         so that it gets added to the m_calls list so that it's included in
584         CodeBlock::m_callReturnIndexVector.
585         * jit/JITStubs.cpp:
586         (JSC::DEFINE_STUB_FUNCTION): Use the current call frame's return PC.
587
588 2011-01-10  Daniel Bates  <dbates@rim.com>
589
590         Reviewed by Martin Robinson.
591
592         Remove extraneous COMPILER(GCC) condition when checking GCC_VERSION_AT_LEAST()
593         https://bugs.webkit.org/show_bug.cgi?id=52178
594
595         It is sufficient to test GCC_VERSION_AT_LEAST() instead of both COMPILER(GCC) and
596         GCC_VERSION_AT_LEAST(). Notice GCC_VERSION_AT_LEAST() is defined to be 0 when we
597         are not compiling with GCC.
598
599         Fixes style issues at the callsites (i.e. replace comma with comma-space in
600         macro function argument list). Also, makes a spelling correction in a comment.
601
602         * jit/ExecutableAllocator.h:
603         (JSC::ExecutableAllocator::cacheFlush):
604         * wtf/Platform.h:
605
606 2011-01-10  Geoffrey Garen  <ggaren@apple.com>
607
608         Build fix: removed some uses of nextNumber that I missed last time.
609
610         * runtime/Heap.cpp:
611         (JSC::Heap::reset):
612         (JSC::Heap::collectAllGarbage):
613
614 2011-01-10  Daniel Bates  <dbates@rim.com>
615
616         Reviewed by Darin Adler.
617
618         Use __builtin_expect when compiling using RVCT in GNU mode
619         https://bugs.webkit.org/show_bug.cgi?id=51866
620
621         We should only use __builtin_expect if we are compiling with GCC or RVCT 3 or higher in GNU mode
622         as pointed out by Siddharth Mathur per <http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0202h/Cjabddedbde.html>.
623
624         * wtf/AlwaysInline.h:
625         * wtf/Platform.h: Removed define WTF_COMPILER_RVCT4_OR_GREATER. Instead added macro
626         function RVCT_VERSION_AT_LEAST so that we can test for an arbitrary minimum RVCT
627         version.
628
629 2011-01-10  Geoffrey Garen  <ggaren@apple.com>
630
631         Reviewed by Oliver Hunt.
632
633         Moved Collector.* => Heap.*, since the file contains a class named "Heap".
634
635         * API/JSCallbackObject.cpp:
636         * Android.mk:
637         * CMakeLists.txt:
638         * GNUmakefile.am:
639         * JavaScriptCore.gypi:
640         * JavaScriptCore.pro:
641         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
642         * JavaScriptCore.xcodeproj/project.pbxproj:
643         * interpreter/Interpreter.cpp:
644         * interpreter/RegisterFile.h:
645         * jit/JITStubs.cpp:
646         * runtime/Collector.cpp: Removed.
647         * runtime/Collector.h: Removed.
648         * runtime/CollectorHeapIterator.h:
649         * runtime/GCActivityCallbackCF.cpp:
650         * runtime/Heap.cpp: Copied from JavaScriptCore/runtime/Collector.cpp.
651         * runtime/Heap.h: Copied from JavaScriptCore/runtime/Collector.h.
652         * runtime/InitializeThreading.cpp:
653         * runtime/JSCell.h:
654         * runtime/JSGlobalData.cpp:
655         * runtime/JSGlobalData.h:
656         * runtime/JSLock.cpp:
657         * runtime/JSNumberCell.h:
658         * runtime/MachineStackMarker.cpp:
659         * runtime/MemoryStatistics.h:
660         * runtime/Protect.h:
661         * runtime/UString.cpp:
662         * runtime/WeakGCMap.h:
663         * runtime/WeakGCPtr.h:
664
665 2011-01-10  Xan Lopez  <xlopez@igalia.com>
666
667         Reviewed by Gavin Barraclough.
668
669         Remove unused isString() case in JSString::toPrimitiveString()
670         https://bugs.webkit.org/show_bug.cgi?id=52167
671
672         We never call toPrimitiveString() with strings, so remove the
673         check and add an ASSERT ensuring this never happens. 0.7% overall
674         progression in sunspider, since one of the call sites is very hot.
675
676         * runtime/JSString.h:
677         (JSC::JSValue::toPrimitiveString):
678
679 2011-01-10  Peter Varga  <pvarga@inf.u-szeged.hu>
680
681         Reviewed by Gavin Barraclough.
682
683         Rename the existing YARR files and classes
684         https://bugs.webkit.org/show_bug.cgi?id=51872
685
686         Replace the "Regex" prefix with "Yarr" in the name of YARR files and classes.
687
688         * Android.mk:
689         * CMakeLists.txt:
690         * GNUmakefile.am:
691         * JavaScriptCore.gypi:
692         * JavaScriptCore.pro:
693         * JavaScriptCore.xcodeproj/project.pbxproj:
694         * runtime/RegExp.cpp:
695         (JSC::RegExp::compile):
696         (JSC::RegExp::match):
697         (JSC::RegExp::printTraceData):
698         * yarr/YarrInterpreter.cpp: Renamed from Source/JavaScriptCore/yarr/RegexInterpreter.cpp.
699         (JSC::Yarr::Interpreter::appendParenthesesDisjunctionContext):
700         (JSC::Yarr::Interpreter::popParenthesesDisjunctionContext):
701         (JSC::Yarr::Interpreter::DisjunctionContext::DisjunctionContext):
702         (JSC::Yarr::Interpreter::DisjunctionContext::operator new):
703         (JSC::Yarr::Interpreter::allocDisjunctionContext):
704         (JSC::Yarr::Interpreter::freeDisjunctionContext):
705         (JSC::Yarr::Interpreter::ParenthesesDisjunctionContext::ParenthesesDisjunctionContext):
706         (JSC::Yarr::Interpreter::ParenthesesDisjunctionContext::operator new):
707         (JSC::Yarr::Interpreter::ParenthesesDisjunctionContext::restoreOutput):
708         (JSC::Yarr::Interpreter::ParenthesesDisjunctionContext::getDisjunctionContext):
709         (JSC::Yarr::Interpreter::allocParenthesesDisjunctionContext):
710         (JSC::Yarr::Interpreter::freeParenthesesDisjunctionContext):
711         (JSC::Yarr::Interpreter::InputStream::InputStream):
712         (JSC::Yarr::Interpreter::InputStream::next):
713         (JSC::Yarr::Interpreter::InputStream::rewind):
714         (JSC::Yarr::Interpreter::InputStream::read):
715         (JSC::Yarr::Interpreter::InputStream::readPair):
716         (JSC::Yarr::Interpreter::InputStream::readChecked):
717         (JSC::Yarr::Interpreter::InputStream::reread):
718         (JSC::Yarr::Interpreter::InputStream::prev):
719         (JSC::Yarr::Interpreter::InputStream::getPos):
720         (JSC::Yarr::Interpreter::InputStream::setPos):
721         (JSC::Yarr::Interpreter::InputStream::atStart):
722         (JSC::Yarr::Interpreter::InputStream::atEnd):
723         (JSC::Yarr::Interpreter::InputStream::checkInput):
724         (JSC::Yarr::Interpreter::InputStream::uncheckInput):
725         (JSC::Yarr::Interpreter::InputStream::isNotAvailableInput):
726         (JSC::Yarr::Interpreter::testCharacterClass):
727         (JSC::Yarr::Interpreter::checkCharacter):
728         (JSC::Yarr::Interpreter::checkCasedCharacter):
729         (JSC::Yarr::Interpreter::checkCharacterClass):
730         (JSC::Yarr::Interpreter::tryConsumeBackReference):
731         (JSC::Yarr::Interpreter::matchAssertionBOL):
732         (JSC::Yarr::Interpreter::matchAssertionEOL):
733         (JSC::Yarr::Interpreter::matchAssertionWordBoundary):
734         (JSC::Yarr::Interpreter::backtrackPatternCharacter):
735         (JSC::Yarr::Interpreter::backtrackPatternCasedCharacter):
736         (JSC::Yarr::Interpreter::matchCharacterClass):
737         (JSC::Yarr::Interpreter::backtrackCharacterClass):
738         (JSC::Yarr::Interpreter::matchBackReference):
739         (JSC::Yarr::Interpreter::backtrackBackReference):
740         (JSC::Yarr::Interpreter::recordParenthesesMatch):
741         (JSC::Yarr::Interpreter::resetMatches):
742         (JSC::Yarr::Interpreter::parenthesesDoBacktrack):
743         (JSC::Yarr::Interpreter::matchParenthesesOnceBegin):
744         (JSC::Yarr::Interpreter::matchParenthesesOnceEnd):
745         (JSC::Yarr::Interpreter::backtrackParenthesesOnceBegin):
746         (JSC::Yarr::Interpreter::backtrackParenthesesOnceEnd):
747         (JSC::Yarr::Interpreter::matchParenthesesTerminalBegin):
748         (JSC::Yarr::Interpreter::matchParenthesesTerminalEnd):
749         (JSC::Yarr::Interpreter::backtrackParenthesesTerminalBegin):
750         (JSC::Yarr::Interpreter::backtrackParenthesesTerminalEnd):
751         (JSC::Yarr::Interpreter::matchParentheticalAssertionBegin):
752         (JSC::Yarr::Interpreter::matchParentheticalAssertionEnd):
753         (JSC::Yarr::Interpreter::backtrackParentheticalAssertionBegin):
754         (JSC::Yarr::Interpreter::backtrackParentheticalAssertionEnd):
755         (JSC::Yarr::Interpreter::matchParentheses):
756         (JSC::Yarr::Interpreter::backtrackParentheses):
757         (JSC::Yarr::Interpreter::lookupForBeginChars):
758         (JSC::Yarr::Interpreter::matchDisjunction):
759         (JSC::Yarr::Interpreter::matchNonZeroDisjunction):
760         (JSC::Yarr::Interpreter::interpret):
761         (JSC::Yarr::Interpreter::Interpreter):
762         (JSC::Yarr::ByteCompiler::ParenthesesStackEntry::ParenthesesStackEntry):
763         (JSC::Yarr::ByteCompiler::ByteCompiler):
764         (JSC::Yarr::ByteCompiler::compile):
765         (JSC::Yarr::ByteCompiler::checkInput):
766         (JSC::Yarr::ByteCompiler::assertionBOL):
767         (JSC::Yarr::ByteCompiler::assertionEOL):
768         (JSC::Yarr::ByteCompiler::assertionWordBoundary):
769         (JSC::Yarr::ByteCompiler::atomPatternCharacter):
770         (JSC::Yarr::ByteCompiler::atomCharacterClass):
771         (JSC::Yarr::ByteCompiler::atomBackReference):
772         (JSC::Yarr::ByteCompiler::atomParenthesesOnceBegin):
773         (JSC::Yarr::ByteCompiler::atomParenthesesTerminalBegin):
774         (JSC::Yarr::ByteCompiler::atomParenthesesSubpatternBegin):
775         (JSC::Yarr::ByteCompiler::atomParentheticalAssertionBegin):
776         (JSC::Yarr::ByteCompiler::atomParentheticalAssertionEnd):
777         (JSC::Yarr::ByteCompiler::popParenthesesStack):
778         (JSC::Yarr::ByteCompiler::dumpDisjunction):
779         (JSC::Yarr::ByteCompiler::closeAlternative):
780         (JSC::Yarr::ByteCompiler::closeBodyAlternative):
781         (JSC::Yarr::ByteCompiler::atomParenthesesSubpatternEnd):
782         (JSC::Yarr::ByteCompiler::atomParenthesesOnceEnd):
783         (JSC::Yarr::ByteCompiler::atomParenthesesTerminalEnd):
784         (JSC::Yarr::ByteCompiler::regexBegin):
785         (JSC::Yarr::ByteCompiler::regexEnd):
786         (JSC::Yarr::ByteCompiler::alternativeBodyDisjunction):
787         (JSC::Yarr::ByteCompiler::alternativeDisjunction):
788         (JSC::Yarr::ByteCompiler::emitDisjunction):
789         (JSC::Yarr::byteCompile):
790         (JSC::Yarr::interpret):
791         * yarr/YarrInterpreter.h: Renamed from Source/JavaScriptCore/yarr/RegexInterpreter.h.
792         (JSC::Yarr::ByteTerm::ByteTerm):
793         (JSC::Yarr::ByteTerm::BOL):
794         (JSC::Yarr::ByteTerm::CheckInput):
795         (JSC::Yarr::ByteTerm::EOL):
796         (JSC::Yarr::ByteTerm::WordBoundary):
797         (JSC::Yarr::ByteTerm::BackReference):
798         (JSC::Yarr::ByteTerm::BodyAlternativeBegin):
799         (JSC::Yarr::ByteTerm::BodyAlternativeDisjunction):
800         (JSC::Yarr::ByteTerm::BodyAlternativeEnd):
801         (JSC::Yarr::ByteTerm::AlternativeBegin):
802         (JSC::Yarr::ByteTerm::AlternativeDisjunction):
803         (JSC::Yarr::ByteTerm::AlternativeEnd):
804         (JSC::Yarr::ByteTerm::SubpatternBegin):
805         (JSC::Yarr::ByteTerm::SubpatternEnd):
806         (JSC::Yarr::ByteTerm::invert):
807         (JSC::Yarr::ByteTerm::capture):
808         (JSC::Yarr::ByteDisjunction::ByteDisjunction):
809         (JSC::Yarr::BytecodePattern::BytecodePattern):
810         (JSC::Yarr::BytecodePattern::~BytecodePattern):
811         * yarr/YarrJIT.cpp: Renamed from Source/JavaScriptCore/yarr/RegexJIT.cpp.
812         (JSC::Yarr::YarrGenerator::optimizeAlternative):
813         (JSC::Yarr::YarrGenerator::matchCharacterClassRange):
814         (JSC::Yarr::YarrGenerator::matchCharacterClass):
815         (JSC::Yarr::YarrGenerator::jumpIfNoAvailableInput):
816         (JSC::Yarr::YarrGenerator::jumpIfAvailableInput):
817         (JSC::Yarr::YarrGenerator::checkInput):
818         (JSC::Yarr::YarrGenerator::atEndOfInput):
819         (JSC::Yarr::YarrGenerator::notAtEndOfInput):
820         (JSC::Yarr::YarrGenerator::jumpIfCharEquals):
821         (JSC::Yarr::YarrGenerator::jumpIfCharNotEquals):
822         (JSC::Yarr::YarrGenerator::readCharacter):
823         (JSC::Yarr::YarrGenerator::storeToFrame):
824         (JSC::Yarr::YarrGenerator::storeToFrameWithPatch):
825         (JSC::Yarr::YarrGenerator::loadFromFrame):
826         (JSC::Yarr::YarrGenerator::loadFromFrameAndJump):
827         (JSC::Yarr::YarrGenerator::IndirectJumpEntry::IndirectJumpEntry):
828         (JSC::Yarr::YarrGenerator::IndirectJumpEntry::addJump):
829         (JSC::Yarr::YarrGenerator::AlternativeBacktrackRecord::AlternativeBacktrackRecord):
830         (JSC::Yarr::YarrGenerator::GenerationState::GenerationState):
831         (JSC::Yarr::YarrGenerator::GenerationState::addIndirectJumpEntry):
832         (JSC::Yarr::YarrGenerator::GenerationState::emitIndirectJumpTable):
833         (JSC::Yarr::YarrGenerator::GenerationState::incrementParenNestingLevel):
834         (JSC::Yarr::YarrGenerator::GenerationState::decrementParenNestingLevel):
835         (JSC::Yarr::YarrGenerator::GenerationState::addParenthesesTail):
836         (JSC::Yarr::YarrGenerator::GenerationState::emitParenthesesTail):
837         (JSC::Yarr::YarrGenerator::GenerationState::addJumpToNextInteration):
838         (JSC::Yarr::YarrGenerator::GenerationState::addJumpsToNextInteration):
839         (JSC::Yarr::YarrGenerator::GenerationState::addDataLabelToNextIteration):
840         (JSC::Yarr::YarrGenerator::GenerationState::linkToNextIteration):
841         (JSC::Yarr::YarrGenerator::BacktrackDestination::BacktrackDestination):
842         (JSC::Yarr::YarrGenerator::BacktrackDestination::clear):
843         (JSC::Yarr::YarrGenerator::BacktrackDestination::clearDataLabel):
844         (JSC::Yarr::YarrGenerator::BacktrackDestination::hasDestination):
845         (JSC::Yarr::YarrGenerator::BacktrackDestination::isStackOffset):
846         (JSC::Yarr::YarrGenerator::BacktrackDestination::isLabel):
847         (JSC::Yarr::YarrGenerator::BacktrackDestination::isJumpList):
848         (JSC::Yarr::YarrGenerator::BacktrackDestination::hasDataLabel):
849         (JSC::Yarr::YarrGenerator::BacktrackDestination::copyTarget):
850         (JSC::Yarr::YarrGenerator::BacktrackDestination::copyTo):
851         (JSC::Yarr::YarrGenerator::BacktrackDestination::addBacktrackJump):
852         (JSC::Yarr::YarrGenerator::BacktrackDestination::setStackOffset):
853         (JSC::Yarr::YarrGenerator::BacktrackDestination::setLabel):
854         (JSC::Yarr::YarrGenerator::BacktrackDestination::setNextBacktrackLabel):
855         (JSC::Yarr::YarrGenerator::BacktrackDestination::copyBacktrackToLabel):
856         (JSC::Yarr::YarrGenerator::BacktrackDestination::setBacktrackToLabel):
857         (JSC::Yarr::YarrGenerator::BacktrackDestination::setBacktrackJumpList):
858         (JSC::Yarr::YarrGenerator::BacktrackDestination::setBacktrackSourceLabel):
859         (JSC::Yarr::YarrGenerator::BacktrackDestination::setDataLabel):
860         (JSC::Yarr::YarrGenerator::BacktrackDestination::setSubDataLabelPtr):
861         (JSC::Yarr::YarrGenerator::BacktrackDestination::linkToNextBacktrack):
862         (JSC::Yarr::YarrGenerator::BacktrackDestination::getStackOffset):
863         (JSC::Yarr::YarrGenerator::BacktrackDestination::getLabel):
864         (JSC::Yarr::YarrGenerator::BacktrackDestination::getBacktrackJumps):
865         (JSC::Yarr::YarrGenerator::BacktrackDestination::getDataLabel):
866         (JSC::Yarr::YarrGenerator::BacktrackDestination::jumpToBacktrack):
867         (JSC::Yarr::YarrGenerator::BacktrackDestination::linkDataLabelToHereIfExists):
868         (JSC::Yarr::YarrGenerator::BacktrackDestination::plantJumpToBacktrackIfExists):
869         (JSC::Yarr::YarrGenerator::BacktrackDestination::linkAlternativeBacktracks):
870         (JSC::Yarr::YarrGenerator::BacktrackDestination::linkAlternativeBacktracksTo):
871         (JSC::Yarr::YarrGenerator::TermGenerationState::TermGenerationState):
872         (JSC::Yarr::YarrGenerator::TermGenerationState::resetAlternative):
873         (JSC::Yarr::YarrGenerator::TermGenerationState::alternativeValid):
874         (JSC::Yarr::YarrGenerator::TermGenerationState::nextAlternative):
875         (JSC::Yarr::YarrGenerator::TermGenerationState::alternative):
876         (JSC::Yarr::YarrGenerator::TermGenerationState::isLastAlternative):
877         (JSC::Yarr::YarrGenerator::TermGenerationState::resetTerm):
878         (JSC::Yarr::YarrGenerator::TermGenerationState::termValid):
879         (JSC::Yarr::YarrGenerator::TermGenerationState::nextTerm):
880         (JSC::Yarr::YarrGenerator::TermGenerationState::term):
881         (JSC::Yarr::YarrGenerator::TermGenerationState::isLastTerm):
882         (JSC::Yarr::YarrGenerator::TermGenerationState::getSubParenNum):
883         (JSC::Yarr::YarrGenerator::TermGenerationState::isMainDisjunction):
884         (JSC::Yarr::YarrGenerator::TermGenerationState::setParenthesesTail):
885         (JSC::Yarr::YarrGenerator::TermGenerationState::getParenthesesTail):
886         (JSC::Yarr::YarrGenerator::TermGenerationState::lookaheadTerm):
887         (JSC::Yarr::YarrGenerator::TermGenerationState::isSinglePatternCharacterLookaheadTerm):
888         (JSC::Yarr::YarrGenerator::TermGenerationState::inputOffset):
889         (JSC::Yarr::YarrGenerator::TermGenerationState::clearBacktrack):
890         (JSC::Yarr::YarrGenerator::TermGenerationState::jumpToBacktrack):
891         (JSC::Yarr::YarrGenerator::TermGenerationState::plantJumpToBacktrackIfExists):
892         (JSC::Yarr::YarrGenerator::TermGenerationState::linkDataLabelToBacktrackIfExists):
893         (JSC::Yarr::YarrGenerator::TermGenerationState::addBacktrackJump):
894         (JSC::Yarr::YarrGenerator::TermGenerationState::setBacktrackDataLabel):
895         (JSC::Yarr::YarrGenerator::TermGenerationState::setBackTrackStackOffset):
896         (JSC::Yarr::YarrGenerator::TermGenerationState::setBacktrackLabel):
897         (JSC::Yarr::YarrGenerator::TermGenerationState::linkAlternativeBacktracks):
898         (JSC::Yarr::YarrGenerator::TermGenerationState::linkAlternativeBacktracksTo):
899         (JSC::Yarr::YarrGenerator::TermGenerationState::setBacktrackLink):
900         (JSC::Yarr::YarrGenerator::TermGenerationState::chainBacktracks):
901         (JSC::Yarr::YarrGenerator::TermGenerationState::chainBacktrackJumps):
902         (JSC::Yarr::YarrGenerator::TermGenerationState::getBacktrackDestination):
903         (JSC::Yarr::YarrGenerator::TermGenerationState::propagateBacktrackingFrom):
904         (JSC::Yarr::YarrGenerator::ParenthesesTail::ParenthesesTail):
905         (JSC::Yarr::YarrGenerator::ParenthesesTail::processBacktracks):
906         (JSC::Yarr::YarrGenerator::ParenthesesTail::setNextIteration):
907         (JSC::Yarr::YarrGenerator::ParenthesesTail::addAfterParenJump):
908         (JSC::Yarr::YarrGenerator::ParenthesesTail::generateCode):
909         (JSC::Yarr::YarrGenerator::generateAssertionBOL):
910         (JSC::Yarr::YarrGenerator::generateAssertionEOL):
911         (JSC::Yarr::YarrGenerator::matchAssertionWordchar):
912         (JSC::Yarr::YarrGenerator::generateAssertionWordBoundary):
913         (JSC::Yarr::YarrGenerator::generatePatternCharacterSingle):
914         (JSC::Yarr::YarrGenerator::generatePatternCharacterPair):
915         (JSC::Yarr::YarrGenerator::generatePatternCharacterFixed):
916         (JSC::Yarr::YarrGenerator::generatePatternCharacterGreedy):
917         (JSC::Yarr::YarrGenerator::generatePatternCharacterNonGreedy):
918         (JSC::Yarr::YarrGenerator::generateCharacterClassSingle):
919         (JSC::Yarr::YarrGenerator::generateCharacterClassFixed):
920         (JSC::Yarr::YarrGenerator::generateCharacterClassGreedy):
921         (JSC::Yarr::YarrGenerator::generateCharacterClassNonGreedy):
922         (JSC::Yarr::YarrGenerator::generateParenthesesDisjunction):
923         (JSC::Yarr::YarrGenerator::generateParenthesesSingle):
924         (JSC::Yarr::YarrGenerator::generateParenthesesGreedyNoBacktrack):
925         (JSC::Yarr::YarrGenerator::generateParentheticalAssertion):
926         (JSC::Yarr::YarrGenerator::generateTerm):
927         (JSC::Yarr::YarrGenerator::generateDisjunction):
928         (JSC::Yarr::YarrGenerator::generateEnter):
929         (JSC::Yarr::YarrGenerator::generateReturn):
930         (JSC::Yarr::YarrGenerator::YarrGenerator):
931         (JSC::Yarr::YarrGenerator::generate):
932         (JSC::Yarr::YarrGenerator::compile):
933         (JSC::Yarr::jitCompile):
934         * yarr/YarrJIT.h: Renamed from Source/JavaScriptCore/yarr/RegexJIT.h.
935         (JSC::Yarr::YarrCodeBlock::YarrCodeBlock):
936         (JSC::Yarr::YarrCodeBlock::~YarrCodeBlock):
937         (JSC::Yarr::YarrCodeBlock::setFallBack):
938         (JSC::Yarr::YarrCodeBlock::isFallBack):
939         (JSC::Yarr::YarrCodeBlock::set):
940         (JSC::Yarr::YarrCodeBlock::execute):
941         (JSC::Yarr::YarrCodeBlock::getAddr):
942         (JSC::Yarr::execute):
943         * yarr/YarrParser.h: Renamed from Source/JavaScriptCore/yarr/RegexParser.h.
944         (JSC::Yarr::Parser::CharacterClassParserDelegate::CharacterClassParserDelegate):
945         (JSC::Yarr::Parser::CharacterClassParserDelegate::begin):
946         (JSC::Yarr::Parser::CharacterClassParserDelegate::atomPatternCharacter):
947         (JSC::Yarr::Parser::CharacterClassParserDelegate::atomBuiltInCharacterClass):
948         (JSC::Yarr::Parser::CharacterClassParserDelegate::end):
949         (JSC::Yarr::Parser::CharacterClassParserDelegate::assertionWordBoundary):
950         (JSC::Yarr::Parser::CharacterClassParserDelegate::atomBackReference):
951         (JSC::Yarr::Parser::Parser):
952         (JSC::Yarr::Parser::parseEscape):
953         (JSC::Yarr::Parser::parseAtomEscape):
954         (JSC::Yarr::Parser::parseCharacterClassEscape):
955         (JSC::Yarr::Parser::parseCharacterClass):
956         (JSC::Yarr::Parser::parseParenthesesBegin):
957         (JSC::Yarr::Parser::parseParenthesesEnd):
958         (JSC::Yarr::Parser::parseQuantifier):
959         (JSC::Yarr::Parser::parseTokens):
960         (JSC::Yarr::Parser::parse):
961         (JSC::Yarr::Parser::saveState):
962         (JSC::Yarr::Parser::restoreState):
963         (JSC::Yarr::Parser::atEndOfPattern):
964         (JSC::Yarr::Parser::peek):
965         (JSC::Yarr::Parser::peekIsDigit):
966         (JSC::Yarr::Parser::peekDigit):
967         (JSC::Yarr::Parser::consume):
968         (JSC::Yarr::Parser::consumeDigit):
969         (JSC::Yarr::Parser::consumeNumber):
970         (JSC::Yarr::Parser::consumeOctal):
971         (JSC::Yarr::Parser::tryConsume):
972         (JSC::Yarr::Parser::tryConsumeHex):
973         (JSC::Yarr::parse):
974         * yarr/YarrPattern.cpp: Renamed from Source/JavaScriptCore/yarr/RegexPattern.cpp.
975         (JSC::Yarr::CharacterClassConstructor::CharacterClassConstructor):
976         (JSC::Yarr::CharacterClassConstructor::reset):
977         (JSC::Yarr::CharacterClassConstructor::append):
978         (JSC::Yarr::CharacterClassConstructor::putChar):
979         (JSC::Yarr::CharacterClassConstructor::isUnicodeUpper):
980         (JSC::Yarr::CharacterClassConstructor::isUnicodeLower):
981         (JSC::Yarr::CharacterClassConstructor::putRange):
982         (JSC::Yarr::CharacterClassConstructor::charClass):
983         (JSC::Yarr::CharacterClassConstructor::addSorted):
984         (JSC::Yarr::CharacterClassConstructor::addSortedRange):
985         (JSC::Yarr::BeginCharHelper::BeginCharHelper):
986         (JSC::Yarr::BeginCharHelper::addBeginChar):
987         (JSC::Yarr::BeginCharHelper::merge):
988         (JSC::Yarr::BeginCharHelper::addCharacter):
989         (JSC::Yarr::BeginCharHelper::linkHotTerms):
990         (JSC::Yarr::YarrPatternConstructor::YarrPatternConstructor):
991         (JSC::Yarr::YarrPatternConstructor::~YarrPatternConstructor):
992         (JSC::Yarr::YarrPatternConstructor::reset):
993         (JSC::Yarr::YarrPatternConstructor::assertionBOL):
994         (JSC::Yarr::YarrPatternConstructor::assertionEOL):
995         (JSC::Yarr::YarrPatternConstructor::assertionWordBoundary):
996         (JSC::Yarr::YarrPatternConstructor::atomPatternCharacter):
997         (JSC::Yarr::YarrPatternConstructor::atomBuiltInCharacterClass):
998         (JSC::Yarr::YarrPatternConstructor::atomCharacterClassBegin):
999         (JSC::Yarr::YarrPatternConstructor::atomCharacterClassAtom):
1000         (JSC::Yarr::YarrPatternConstructor::atomCharacterClassRange):
1001         (JSC::Yarr::YarrPatternConstructor::atomCharacterClassBuiltIn):
1002         (JSC::Yarr::YarrPatternConstructor::atomCharacterClassEnd):
1003         (JSC::Yarr::YarrPatternConstructor::atomParenthesesSubpatternBegin):
1004         (JSC::Yarr::YarrPatternConstructor::atomParentheticalAssertionBegin):
1005         (JSC::Yarr::YarrPatternConstructor::atomParenthesesEnd):
1006         (JSC::Yarr::YarrPatternConstructor::atomBackReference):
1007         (JSC::Yarr::YarrPatternConstructor::copyDisjunction):
1008         (JSC::Yarr::YarrPatternConstructor::copyTerm):
1009         (JSC::Yarr::YarrPatternConstructor::quantifyAtom):
1010         (JSC::Yarr::YarrPatternConstructor::disjunction):
1011         (JSC::Yarr::YarrPatternConstructor::regexBegin):
1012         (JSC::Yarr::YarrPatternConstructor::regexEnd):
1013         (JSC::Yarr::YarrPatternConstructor::regexError):
1014         (JSC::Yarr::YarrPatternConstructor::setupAlternativeOffsets):
1015         (JSC::Yarr::YarrPatternConstructor::setupDisjunctionOffsets):
1016         (JSC::Yarr::YarrPatternConstructor::setupOffsets):
1017         (JSC::Yarr::YarrPatternConstructor::checkForTerminalParentheses):
1018         (JSC::Yarr::YarrPatternConstructor::optimizeBOL):
1019         (JSC::Yarr::YarrPatternConstructor::addBeginTerm):
1020         (JSC::Yarr::YarrPatternConstructor::setupDisjunctionBeginTerms):
1021         (JSC::Yarr::YarrPatternConstructor::setupAlternativeBeginTerms):
1022         (JSC::Yarr::YarrPatternConstructor::setupBeginChars):
1023         (JSC::Yarr::compile):
1024         (JSC::Yarr::YarrPattern::YarrPattern):
1025         * yarr/YarrPattern.h: Renamed from Source/JavaScriptCore/yarr/RegexPattern.h.
1026         (JSC::Yarr::CharacterRange::CharacterRange):
1027         (JSC::Yarr::CharacterClassTable::create):
1028         (JSC::Yarr::CharacterClassTable::CharacterClassTable):
1029         (JSC::Yarr::CharacterClass::CharacterClass):
1030         (JSC::Yarr::PatternTerm::PatternTerm):
1031         (JSC::Yarr::PatternTerm::ForwardReference):
1032         (JSC::Yarr::PatternTerm::BOL):
1033         (JSC::Yarr::PatternTerm::EOL):
1034         (JSC::Yarr::PatternTerm::WordBoundary):
1035         (JSC::Yarr::PatternTerm::invert):
1036         (JSC::Yarr::PatternTerm::capture):
1037         (JSC::Yarr::PatternTerm::quantify):
1038         (JSC::Yarr::PatternAlternative::PatternAlternative):
1039         (JSC::Yarr::PatternAlternative::lastTerm):
1040         (JSC::Yarr::PatternAlternative::removeLastTerm):
1041         (JSC::Yarr::PatternAlternative::setOnceThrough):
1042         (JSC::Yarr::PatternAlternative::onceThrough):
1043         (JSC::Yarr::PatternDisjunction::PatternDisjunction):
1044         (JSC::Yarr::PatternDisjunction::~PatternDisjunction):
1045         (JSC::Yarr::PatternDisjunction::addNewAlternative):
1046         (JSC::Yarr::TermChain::TermChain):
1047         (JSC::Yarr::BeginChar::BeginChar):
1048         (JSC::Yarr::YarrPattern::~YarrPattern):
1049         (JSC::Yarr::YarrPattern::reset):
1050         (JSC::Yarr::YarrPattern::containsIllegalBackReference):
1051         (JSC::Yarr::YarrPattern::newlineCharacterClass):
1052         (JSC::Yarr::YarrPattern::digitsCharacterClass):
1053         (JSC::Yarr::YarrPattern::spacesCharacterClass):
1054         (JSC::Yarr::YarrPattern::wordcharCharacterClass):
1055         (JSC::Yarr::YarrPattern::nondigitsCharacterClass):
1056         (JSC::Yarr::YarrPattern::nonspacesCharacterClass):
1057         (JSC::Yarr::YarrPattern::nonwordcharCharacterClass):
1058
1059 2011-01-10  Gavin Barraclough  <barraclough@apple.com>
1060
1061         Windows build fix.
1062
1063         * parser/SyntaxChecker.h:
1064
1065 2011-01-10  Dave Tapuska  <dtapuska@rim.com>
1066
1067         Reviewed by Gavin Barraclough.
1068
1069         Add CTI ASM versions for RVCT ARM THUMB2 mode.
1070
1071         https://bugs.webkit.org/show_bug.cgi?id=52154
1072
1073         * jit/JITStubs.cpp:
1074         (JSC::ctiTrampoline):
1075         (JSC::ctiVMThrowTrampoline):
1076         (JSC::ctiOpThrowNotCaught):
1077
1078 2011-01-10  Gavin Barraclough  <barraclough@apple.com>
1079
1080         Qt build fix.
1081
1082         * JavaScriptCore.pro:
1083
1084 2011-01-10  Gavin Barraclough  <barraclough@apple.com>
1085
1086         Reviewed by Oliver Hunt.
1087
1088         Bug 52079 - Syntax errors should be early errors.
1089
1090         From chapter 16 the spec:
1091             An implementation must report most errors at the time the relevant ECMAScript language construct is
1092             evaluated. An early error is an error that can be detected and reported prior to the evaluation of
1093             any construct in the Program containing the error. An implementation must report early errors in a
1094             Program prior to the first evaluation of that Program. Early errors in eval code are reported at
1095             the time eval is called but prior to evaluation of any construct within the eval code. All errors
1096             that are not early errors are runtime errors.
1097
1098             An implementation must treat any instance of the following kinds of errors as an early error:
1099                 * Any syntax error."
1100
1101         * JavaScriptCore.xcodeproj/project.pbxproj:
1102             Added new files.
1103         * bytecode/CodeBlock.cpp:
1104             Removed op_throw_syntax_error.
1105         * bytecode/Opcode.h:
1106             Removed op_throw_syntax_error.
1107         * bytecompiler/BytecodeGenerator.cpp:
1108         (JSC::BytecodeGenerator::generate):
1109             If m_expressionTooDeep then throw a runtime error.
1110         (JSC::BytecodeGenerator::BytecodeGenerator):
1111             Initialize m_expressionTooDeep.
1112         (JSC::BytecodeGenerator::emitThrowExpressionTooDeepException):
1113             Sets m_expressionTooDeep.
1114         * bytecompiler/BytecodeGenerator.h:
1115             Added m_expressionTooDeep, removed emitThrowSyntaxError.
1116         * bytecompiler/NodesCodegen.cpp:
1117         (JSC::RegExpNode::emitBytecode):
1118         (JSC::ContinueNode::emitBytecode):
1119         (JSC::BreakNode::emitBytecode):
1120         (JSC::ReturnNode::emitBytecode):
1121         (JSC::LabelNode::emitBytecode):
1122             Conditions that threw syntax error are now handled during parsing;
1123             during bytecompilation these are now just ASSERTs.
1124         * interpreter/Interpreter.cpp:
1125         (JSC::Interpreter::privateExecute):
1126         * jit/JIT.cpp:
1127         (JSC::JIT::privateCompileMainPass):
1128         * jit/JIT.h:
1129         * jit/JITOpcodes.cpp:
1130         * jit/JITOpcodes32_64.cpp:
1131         * jit/JITStubs.cpp:
1132         * jit/JITStubs.h:
1133             Removed op_throw_syntax_error.
1134         * parser/ASTBuilder.h:
1135         (JSC::ASTBuilder::createRegExp):
1136             Renamed; added syntax check.
1137         * parser/JSParser.cpp:
1138         (JSC::JSParser::breakIsValid):
1139         (JSC::JSParser::hasLabel):
1140         (JSC::JSParser::Scope::Scope):
1141         (JSC::JSParser::Scope::setIsFunction):
1142         (JSC::JSParser::Scope::isFunctionBoundary):
1143         (JSC::JSParser::ScopeRef::hasContainingScope):
1144         (JSC::JSParser::ScopeRef::containingScope):
1145         (JSC::JSParser::AutoPopScopeRef::AutoPopScopeRef):
1146         (JSC::JSParser::AutoPopScopeRef::~AutoPopScopeRef):
1147         (JSC::JSParser::AutoPopScopeRef::setPopped):
1148         (JSC::JSParser::popScopeInternal):
1149         (JSC::JSParser::popScope):
1150         (JSC::jsParse):
1151         (JSC::JSParser::JSParser):
1152         (JSC::JSParser::parseProgram):
1153         (JSC::JSParser::parseBreakStatement):
1154         (JSC::JSParser::parseContinueStatement):
1155         (JSC::JSParser::parseReturnStatement):
1156         (JSC::JSParser::parseTryStatement):
1157         (JSC::JSParser::parseFunctionInfo):
1158         (JSC::JSParser::parseExpressionOrLabelStatement):
1159         (JSC::JSParser::parsePrimaryExpression):
1160         * parser/JSParser.h:
1161         * parser/Nodes.h:
1162         * parser/Parser.cpp:
1163         (JSC::Parser::parse):
1164         * parser/SyntaxChecker.h:
1165         (JSC::SyntaxChecker::createRegExp):
1166             Renamed; added syntax check.
1167         * runtime/ExceptionHelpers.cpp:
1168         (JSC::createOutOfMemoryError):
1169         (JSC::throwOutOfMemoryError):
1170         * runtime/ExceptionHelpers.h:
1171             Broke out createOutOfMemoryError.
1172         * runtime/Executable.cpp:
1173         (JSC::EvalExecutable::compileInternal):
1174         (JSC::ProgramExecutable::compileInternal):
1175         (JSC::FunctionExecutable::compileForCallInternal):
1176         (JSC::FunctionExecutable::compileForConstructInternal):
1177             Add check for exception after bytecode generation.
1178         * runtime/RegExpConstructor.cpp:
1179         (JSC::constructRegExp):
1180         * runtime/RegExpPrototype.cpp:
1181         (JSC::regExpProtoFuncCompile):
1182             RegExp error prefixes not included in error string.
1183         * yarr/RegexParser.h:
1184         (JSC::Yarr::Parser::parse):
1185             Removed regexBegin/regexEnd/regexError.
1186         * yarr/RegexPattern.cpp:
1187         (JSC::Yarr::RegexPatternConstructor::regexBegin):
1188             Removed regexEnd/regexError.
1189         (JSC::Yarr::compileRegex):
1190             Add call to regexBegin (no longer called from the parser).
1191         * yarr/YarrSyntaxChecker.cpp: Added.
1192         (JSC::Yarr::SyntaxChecker::assertionBOL):
1193         (JSC::Yarr::SyntaxChecker::assertionEOL):
1194         (JSC::Yarr::SyntaxChecker::assertionWordBoundary):
1195         (JSC::Yarr::SyntaxChecker::atomPatternCharacter):
1196         (JSC::Yarr::SyntaxChecker::atomBuiltInCharacterClass):
1197         (JSC::Yarr::SyntaxChecker::atomCharacterClassBegin):
1198         (JSC::Yarr::SyntaxChecker::atomCharacterClassAtom):
1199         (JSC::Yarr::SyntaxChecker::atomCharacterClassRange):
1200         (JSC::Yarr::SyntaxChecker::atomCharacterClassBuiltIn):
1201         (JSC::Yarr::SyntaxChecker::atomCharacterClassEnd):
1202         (JSC::Yarr::SyntaxChecker::atomParenthesesSubpatternBegin):
1203         (JSC::Yarr::SyntaxChecker::atomParentheticalAssertionBegin):
1204         (JSC::Yarr::SyntaxChecker::atomParenthesesEnd):
1205         (JSC::Yarr::SyntaxChecker::atomBackReference):
1206         (JSC::Yarr::SyntaxChecker::quantifyAtom):
1207         (JSC::Yarr::SyntaxChecker::disjunction):
1208         (JSC::Yarr::checkSyntax):
1209         * yarr/YarrSyntaxChecker.h: Added.
1210             Check RegExp syntax.
1211
1212 2011-01-10  Adam Roben  <aroben@apple.com>
1213
1214         Roll out r75289
1215
1216         It was causing assertion failures. See <http://webkit.org/b/52156>.
1217
1218         * wtf/StackBounds.cpp:
1219         (WTF::StackBounds::initialize):
1220
1221 2011-01-08  Patrick Gansterer  <paroga@webkit.org>
1222
1223         Reviewed by Darin Adler.
1224
1225         Unify string table adding in AtomicString
1226         https://bugs.webkit.org/show_bug.cgi?id=51927
1227
1228         Move code for adding a string into a separate function.
1229         This removes multiple occurrence of the same logic.
1230
1231         * wtf/text/AtomicString.cpp:
1232         (WTF::addToStringTable): Added.
1233         (WTF::AtomicString::add): Use addToStringTable().
1234         (WTF::AtomicString::fromUTF8): Ditto.
1235
1236 2011-01-07  Geoffrey Garen  <ggaren@apple.com>
1237
1238         Reviewed by Gavin Barraclough.
1239
1240         Split machine stack marking functions into their own class (MachineStackMarker)
1241         https://bugs.webkit.org/show_bug.cgi?id=52088
1242
1243         * API/APIShims.h:
1244         (JSC::APIEntryShimWithoutLock::APIEntryShimWithoutLock): Moved registerThread()
1245         call behind an #ifdef because we shouldn't be registering threads at all
1246         if we don't support usage on multiple threads.
1247
1248         * Android.mk:
1249         * CMakeLists.txt:
1250         * GNUmakefile.am:
1251         * JavaScriptCore.gypi:
1252         * JavaScriptCore.pro:
1253         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
1254         * JavaScriptCore.xcodeproj/project.pbxproj: Updated projects.
1255
1256         * runtime/Collector.cpp:
1257         (JSC::Heap::Heap):
1258         (JSC::Heap::destroy):
1259         (JSC::Heap::markRoots):
1260         * runtime/Collector.h:
1261         (JSC::Heap::machineStackMarker): Moved code to machineStackMarker.
1262
1263         * runtime/JSGlobalData.h:
1264         (JSC::JSGlobalData::makeUsableFromMultipleThreads): Removed an unnecessary
1265         level of indirection, to make Heap less of a God class.
1266
1267         * runtime/MachineStackMarker.h: Copied from Source/JavaScriptCore/runtime/Collector.h.
1268         * runtime/MachineStackMarker.cpp: Copied from Source/JavaScriptCore/runtime/Collector.cpp.
1269         (JSC::MachineStackMarker::MachineStackMarker):
1270         (JSC::MachineStackMarker::~MachineStackMarker):
1271         (JSC::MachineStackMarker::makeUsableFromMultipleThreads):
1272         (JSC::MachineStackMarker::registerThread):
1273         (JSC::MachineStackMarker::unregisterThread):
1274         (JSC::MachineStackMarker::markCurrentThreadConservativelyInternal):
1275         (JSC::MachineStackMarker::markCurrentThreadConservatively):
1276         (JSC::MachineStackMarker::markOtherThreadConservatively):
1277         (JSC::MachineStackMarker::markMachineStackConservatively): Moved code from Heap.
1278
1279 2011-01-07  Gavin Barraclough  <barraclough@apple.com>
1280
1281         Reviewed by Geoff Garen.
1282
1283         Bug 26276 - Need a mechanism to determine stack extent on WINDOWS, SOLARIS, OPENBSD, SYMBIAN, HAIKU, WINCE platforms
1284
1285         Fix for win32.  The base of the stack is stored in the "deallocation stack" field of the
1286         Thread Information Block - see: http://en.wikipedia.org/wiki/Win32_Thread_Information_Block
1287         for more information!
1288
1289         * wtf/StackBounds.cpp:
1290         (WTF::StackBounds::initialize):
1291
1292 2011-01-07  Adam Roben  <aroben@apple.com>
1293
1294         Update react-to-vsprops-changes.py after r74855
1295
1296         * JavaScriptCore.vcproj/JavaScriptCore/react-to-vsprops-changes.py:
1297
1298 2011-01-07  Carlos Garcia Campos  <cgarcia@igalia.com>
1299
1300         Reviewed by Martin Robinson.
1301
1302         [GTK] Port scrollbar painting to GtkStyleContext
1303         https://bugs.webkit.org/show_bug.cgi?id=52051
1304
1305         * wtf/gobject/GTypedefs.h: Add GtkStyleContext forward
1306         declaration.
1307
1308 2011-01-07  Daniel Bates  <dbates@rim.com>
1309
1310         Reviewed by Martin Robinson.
1311
1312         Enable PCRE computed gotos when compiling with RCVT 4.0 or greater in GNU mode
1313         https://bugs.webkit.org/show_bug.cgi?id=52034
1314
1315         Derived from a patch by Eli Fidler.
1316
1317         RVCT 4 or greater in GNU mode supports the computed goto GNU language extension
1318         as per <http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0348c/ch03s07s12.html>.
1319
1320         * pcre/pcre_exec.cpp: Modified to check for feature, HAVE(COMPUTED_GOTO), instead
1321         of hardcoding the GCC compiler.
1322         * wtf/Platform.h: Define WTF_COMPILER_RVCT4_OR_GREATER if __ARMCC_VERSION >= 400000.
1323
1324 2011-01-06  Gavin Barraclough  <barraclough@apple.com>
1325
1326         Reviewed by Geoff Garen.
1327
1328         Bug 52035 - Unregistering DOMWrapperWorlds is unsafe
1329
1330         The method DOMWrapperWorld::unregisterWorld() effectively calls the DOMWrapperWorld's
1331         destructor early, in order to release wrappers once we know we no longer intend to use them.
1332         Whilst it is okay to have a method to throw away wrappers (assuming we know we're willing to
1333         lose any state stored on them) it is not okay to deregister the world from the JSGlobalData.
1334         A sequence of events that triggers the bug would look like this:
1335
1336         (1) Create a DOMWrapperWorld.
1337         (2) Register a timer in the world.
1338         (3) Call unregisterWorld() on the world.
1339         (4) Timer goes off, code is executed in the world, creates a Node not attached to a Document.
1340         (5) We attempt to lookup a wrapper map for the world on the JSGlobalData, but because we've
1341             called forgetWorld() none exists.
1342         (6) Attempt to add a wrapper to a NULL map.
1343
1344         Fix the problem by not removing the JSGlobalData's wrapper map until the world really goes away.
1345
1346         * runtime/WeakGCMap.h:
1347         (JSC::WeakGCMap::clear):
1348
1349 2011-01-06  Gavin Barraclough  <barraclough@apple.com>
1350
1351         Reviewed by Darin Adler.
1352
1353         Bug 52021 - zeroDouble broken on ARMv7
1354
1355         The bug here is that zeroDouble was working incorrectly,
1356         leading to op_loop_if_true failing - specifically in the
1357         case where the value being checked is 0.0 encoded as a
1358         double (rather than an integer immediate).
1359
1360         Additionally this patch removes a redundant duplicate compare
1361         in some (many) case.
1362
1363         * assembler/ARMv7Assembler.h:
1364         (JSC::ARMv7Assembler::vcmp_F64):
1365         (JSC::ARMv7Assembler::vcmpz_F64):
1366         * assembler/MacroAssemblerARM.h:
1367         (JSC::MacroAssemblerARM::branchDoubleNonZero):
1368         (JSC::MacroAssemblerARM::branchDoubleZeroOrNaN):
1369         * assembler/MacroAssemblerARMv7.h:
1370         (JSC::MacroAssemblerARMv7::branchDouble):
1371         (JSC::MacroAssemblerARMv7::branchDoubleNonZero):
1372         (JSC::MacroAssemblerARMv7::branchDoubleZeroOrNaN):
1373         (JSC::MacroAssemblerARMv7::compare32):
1374         * assembler/MacroAssemblerMIPS.h:
1375         (JSC::MacroAssemblerMIPS::branchDoubleNonZero):
1376         (JSC::MacroAssemblerMIPS::branchDoubleZeroOrNaN):
1377         * assembler/MacroAssemblerX86Common.h:
1378         (JSC::MacroAssemblerX86Common::branchDoubleNonZero):
1379         (JSC::MacroAssemblerX86Common::branchDoubleZeroOrNaN):
1380         * jit/JITOpcodes32_64.cpp:
1381         (JSC::JIT::emit_op_jfalse):
1382         (JSC::JIT::emit_op_jtrue):
1383
1384 2011-01-06  Michael Saboff  <msaboff@apple.com>
1385
1386         Reviewed by Gavin Barraclough.
1387
1388         Added debug code to compare the results of JIT regexp with 
1389         interpreted regexp and displays discrepencies.  This debug code is
1390         controlled by the ENABLE_YARR_JIT_DEBUG macro in wtf/Platform.h and
1391         is only valid if ENABLE_YARR_JIT is enabled.
1392
1393         Fixed a discovered problem in RegExp::printTraceData, changing
1394         m_pattern to the getter pattern().
1395         Also deleted an extraneous semicolon.
1396
1397         Enhancement: Add Regexp Debug Compare between JIT and Interpreter
1398         https://bugs.webkit.org/show_bug.cgi?id=51834
1399
1400         * runtime/RegExp.cpp:
1401         (JSC::RegExp::compile):
1402         (JSC::RegExp::match):
1403         (JSC::RegExp::printTraceData):
1404         * wtf/Platform.h:
1405
1406 2011-01-06  Patrick Gansterer  <paroga@webkit.org>
1407
1408         Reviewed by Eric Seidel.
1409
1410         [WINCE] Remove JSC::g_stackBase
1411         https://bugs.webkit.org/show_bug.cgi?id=51779
1412
1413         * wtf/StackBounds.cpp:
1414
1415 2011-01-06  Joone Hur  <joone.hur@collabora.co.uk>
1416
1417         Reviewed by Eric Seidel.
1418
1419         WML Parser should treat line/column number in a consistent way
1420         https://bugs.webkit.org/show_bug.cgi?id=51601
1421
1422         Add the equality operators to TextPosition class.
1423
1424         * wtf/text/TextPosition.h:
1425         (WTF::TextPosition::operator==): Added.
1426         (WTF::TextPosition::operator!=): Added.
1427         (WTF::TextPosition::belowRangePosition): Use belowBase() instead of base().
1428         (WTF::ZeroBasedNumber::operator==): Added.
1429         (WTF::ZeroBasedNumber::operator!=): Added.
1430         (WTF::OneBasedNumber::operator==): Added.
1431         (WTF::OneBasedNumber::operator!=): Added.
1432
1433 2011-01-06  Patrick Gansterer  <paroga@webkit.org>
1434
1435         Reviewed by Gavin Barraclough.
1436
1437         [WINCE] Determine stack extent
1438         https://bugs.webkit.org/show_bug.cgi?id=26276
1439
1440         Scan the stack for writeable pages and use the limits.
1441
1442         * wtf/StackBounds.cpp:
1443         (WTF::detectGrowingDownward):
1444         (WTF::isPageWritable):
1445         (WTF::getLowerStackBound):
1446         (WTF::getUpperStackBound):
1447         (WTF::StackBounds::initialize):
1448
1449 2011-01-05  Steve Falkenburg  <sfalken@apple.com>
1450
1451         Windows build fix.
1452
1453         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreCommon.vsprops: Revert change to additional library search path needed to find ICU.
1454
1455 2011-01-05  Steve Falkenburg  <sfalken@apple.com>
1456
1457         Reviewed by Darin Adler.
1458
1459         Debug and Release builds on Windows clobber each other
1460         https://bugs.webkit.org/show_bug.cgi?id=49185
1461         
1462         Changes the structure of WebKitBuild build products directory so we
1463         completely separate each build configuration into independent directories.
1464         
1465         Although we previously had per-configuration directories for obj, this change adds
1466         per-configuration directories for bin, lib, obj, and include. Each configuration's
1467         build products are stored within a directory inside of WebKitBuild.
1468         
1469         Most use of $(WebKitOutputDir) in the build files has been replaced by $(ConfigurationBuildDir),
1470         defined in common.vsprops to be $(WebKitOutputDir)\$(ConfigurationName).
1471         
1472         For PGO, $(ConfigurationBuildDir) points to the same directory (Release_PGO) to allow
1473         for proper operation of the instrumentation/optimization scripts.
1474
1475         * JavaScriptCore.vcproj/JavaScriptCore.make:
1476         * JavaScriptCore.vcproj/JavaScriptCore.sln:
1477         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
1478         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreCommon.vsprops:
1479         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreGenerated.make:
1480         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreGenerated.vcproj:
1481         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreGeneratedCommon.vsprops:
1482         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCorePGOOptimize.vsprops: Added.
1483         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCorePostBuild.cmd:
1484         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCorePreBuild.cmd:
1485         * JavaScriptCore.vcproj/JavaScriptCore/build-generated-files.sh:
1486         * JavaScriptCore.vcproj/JavaScriptCore/react-to-vsprops-changes.py:
1487         * JavaScriptCore.vcproj/JavaScriptCoreSubmit.sln:
1488         * JavaScriptCore.vcproj/WTF/WTF.vcproj:
1489         * JavaScriptCore.vcproj/WTF/WTFCommon.vsprops:
1490         * JavaScriptCore.vcproj/WTF/WTFPostBuild.cmd:
1491         * JavaScriptCore.vcproj/WTF/WTFPreBuild.cmd:
1492         * JavaScriptCore.vcproj/jsc/jsc.vcproj:
1493         * JavaScriptCore.vcproj/jsc/jscCommon.vsprops:
1494         * JavaScriptCore.vcproj/jsc/jscPostBuild.cmd:
1495         * JavaScriptCore.vcproj/jsc/jscPreBuild.cmd:
1496         * JavaScriptCore.vcproj/testapi/testapiCommon.vsprops:
1497         * JavaScriptCore.vcproj/testapi/testapiPostBuild.cmd:
1498         * JavaScriptCore.vcproj/testapi/testapiPreBuild.cmd:
1499
1500 2011-01-05  Brent Fulgham  <bfulgham@webkit.org>
1501
1502         Unreviewed build fix.
1503
1504         * wtf/Encoder.h: Add <stdint.h> include for systems that
1505         do not natively know about uint8_t, etc.
1506
1507 2011-01-05  Patrick Gansterer  <paroga@webkit.org>
1508
1509         Reviewed by Andreas Kling.
1510
1511         [CMake] Fix the usage of SOURCE_GROUP
1512         https://bugs.webkit.org/show_bug.cgi?id=51739
1513
1514         * CMakeLists.txt:
1515
1516 2011-01-05  Andras Becsi  <abecsi@webkit.org>
1517
1518         Reviewed by Csaba Osztrogonác.
1519
1520         [Qt][V8] Fix the build after recent changes.
1521
1522         * pcre/pcre.pri: Correct the path after Source was introduced.
1523
1524 2011-01-04  Steve Falkenburg  <sfalken@apple.com>
1525
1526         Build fix. Update path to FindSafari after source code reorganization.
1527
1528         * JavaScriptCore.vcproj/JavaScriptCore.sln:
1529
1530 2011-01-04  Daniel Bates  <dbates@rim.com>
1531
1532         Fix the Android build after changeset 74975 <http://trac.webkit.org/changeset/74975>
1533         (https://bugs.webkit.org/show_bug.cgi?id=51855).
1534
1535         * wtf/ThreadingPthreads.cpp: Add include of PassOwnPtr.h.
1536         (WTF::runThreadWithRegistration): Use -> instead of . to dereference pointer.
1537
1538 2011-01-04  Martin Robinson  <mrobinson@igalia.com>
1539
1540         Try to fix the EFL build.
1541
1542         * wtf/CMakeLists.txt: Remove PlatformRefPtr from the CMake source list.
1543
1544 2011-01-04  James Robinson  <jamesr@chromium.org>
1545
1546         Reviewed by Darin Adler.
1547
1548         StackBounds initialization in WTFThreadData should be guarded by #if USE(JSC)
1549         https://bugs.webkit.org/show_bug.cgi?id=51881
1550
1551         The StackBounds class is only used by JavaScriptCore.
1552
1553         * wtf/WTFThreadData.cpp:
1554         (WTF::WTFThreadData::WTFThreadData):
1555         * wtf/WTFThreadData.h:
1556         (WTF::WTFThreadData::resetCurrentIdentifierTable):
1557
1558 2011-01-03  Martin Robinson  <mrobinson@igalia.com>
1559
1560         Reviewed by Darin Adler.
1561
1562         Remove the last non-GObject usage of PlatformRefPtr and move the code to GRefPtr
1563         https://bugs.webkit.org/show_bug.cgi?id=51846
1564
1565         * GNUmakefile.am: Remove PlatformRefPtr.h from the sources list.
1566         * JavaScriptCore.vcproj/WTF/WTF.vcproj: Ditto.
1567         * jit/ExecutableAllocator.h: Change references to PlatformRefPtr to RefPtr.
1568         (JSC::ExecutableAllocator::cacheFlush): Ditto.
1569         * wtf/PlatformRefPtr.h: Removed.
1570         * wtf/RandomNumber.cpp: Change references to PlatformRefPtr to RefPtr.
1571         (WTF::randomNumber): Ditto.
1572         * wtf/brew/RefPtrBrew.h: Ditto.
1573         (WTF::refIfNotNull): Added.
1574         (WTF::derefIfNotNull): Added.
1575         * wtf/brew/ShellBrew.h: Change references to PlatformRefPtr to RefPtr.
1576         (WTF::createRefPtrInstance): Modified to return a RefPtr.
1577         * wtf/gobject/GRefPtr.cpp: 
1578         (WTF::refGPtr): Moved from PlatformRefPtr here.
1579         (WTF::derefGPtr): Ditto.
1580         * wtf/gobject/GRefPtr.h: Ditto.
1581         (WTF::GRefPtr::GRefPtr): Ditto.
1582         (WTF::GRefPtr::~GRefPtr): Ditto.
1583         (WTF::GRefPtr::clear): Ditto.
1584         (WTF::GRefPtr::isHashTableDeletedValue): Ditto.
1585         (WTF::GRefPtr::get): Ditto.
1586         (WTF::GRefPtr::operator*): Ditto.
1587         (WTF::GRefPtr::operator->): Ditto.
1588         (WTF::GRefPtr::operator!): Ditto.
1589         (WTF::GRefPtr::operator UnspecifiedBoolType): Ditto.
1590         (WTF::GRefPtr::hashTableDeletedValue): Ditto.
1591         (WTF::::operator): Ditto.
1592         (WTF::::swap): Ditto.
1593         (WTF::swap): Ditto.
1594         (WTF::operator==): Ditto.
1595         (WTF::operator!=): Ditto.
1596         (WTF::static_pointer_cast): Ditto.
1597         (WTF::const_pointer_cast): Ditto.
1598         (WTF::getPtr): Ditto.
1599         (WTF::adoptGRef): Ditto.
1600         (WTF::refGPtr): Ditto.
1601         (WTF::derefGPtr): Ditto.
1602
1603 2011-01-04  Daniel Bates  <dbates@rim.com>
1604
1605         Reviewed by Adam Roben.
1606
1607         LEAK: Deallocate instance of ThreadFunctionInvocation if thread creation fails
1608         https://bugs.webkit.org/show_bug.cgi?id=51860
1609
1610         * wtf/ThreadingWin.cpp:
1611         (WTF::createThreadInternal):
1612
1613 2011-01-04  Laszlo Gombos  <laszlo.1.gombos@nokia.com>
1614
1615         Reviewed by Ariya Hidayat.
1616
1617         [Qt][Symbian] Make sure that WebKit headers are included before platform headers on Symbian
1618         https://bugs.webkit.org/show_bug.cgi?id=31273
1619
1620         On Symbian PREPEND_INCLUDEPATH is the best way to make sure that WebKit headers
1621         are included before platform headers. On all other platforms continue to use
1622         INCLUDEPATH (as before). This is a continuation of r65877.
1623
1624         No new tests as there is no new functionality.
1625
1626         * JavaScriptCore.pri:
1627
1628 2011-01-04  Darin Adler  <darin@apple.com>
1629
1630         Try to fix Windows build.
1631
1632         * wtf/ThreadingWin.cpp: Added include of PassOwnPtr.h. Fixed paragraphing
1633         of conditional includes.
1634         (WTF::wtfThreadEntryPoint): Use -> instead of . to dereference pointer.
1635         (WTF::createThreadInternal): Tweaked #if to not need separate macro.
1636
1637 2011-01-04  Daniel Bates  <dbates@rim.com>
1638
1639         Reviewed by Adam Roben.
1640
1641         Extract ThreadFunctionInvocation into separate file and share between Apple Windows and Android
1642         https://bugs.webkit.org/show_bug.cgi?id=51855
1643
1644         Both the Apple Windows and Android ports implement a similar adapter structure,
1645         called ThreadFunctionInvocation and ThreadData respectively, as part of
1646         their thread creation process. Instead, we should share such an adapter
1647         structure and remove duplicate code.
1648
1649         * JavaScriptCore.gypi: Added header wtf/ThreadFunctionInvocation.h.
1650         * wtf/ThreadFunctionInvocation.h: Added.
1651         (WTF::ThreadFunctionInvocation::ThreadFunctionInvocation):
1652         * wtf/ThreadingPthreads.cpp: Removed Android-specific structure ThreadData; Instead, use ThreadFunctionInvocation.
1653         (WTF::runThreadWithRegistration):
1654         (WTF::createThreadInternal): 
1655         * wtf/ThreadingWin.cpp: Moved structure ThreadFunctionInvocation to its own file so that
1656         it can be shared with the Android implementation of createThreadInternal().
1657         (WTF::wtfThreadEntryPoint): Use OwnPtr to hold passed instance of ThreadFunctionInvocation.
1658
1659 2011-01-04  Daniel Bates  <dbates@rim.com>
1660
1661         Reviewed by Darin Adler.
1662
1663         Use __builtin_expect when compiling using RVCT in GNU mode
1664         https://bugs.webkit.org/show_bug.cgi?id=51866
1665
1666         Derived from a patch by Dave Tapuska.
1667
1668         * wtf/AlwaysInline.h:
1669
1670 2011-01-03  Darin Adler  <darin@apple.com>
1671
1672         Reviewed by Brady Eidson.
1673
1674         * wtf/Forward.h: Added Decoder and Encoder.
1675
1676 2011-01-03  Brady Eidson  <beidson@apple.com>
1677
1678         Reviewed by Darin Adler.
1679
1680         Add Encode/Decode machinery Darin and I plan to work with for back/forward stuff in WebKit2.
1681
1682         Starting out with a pure virtual interface to be implemented in WK2, but we might change that later.
1683
1684         * GNUmakefile.am:
1685         * JavaScriptCore.vcproj/WTF/WTF.vcproj:
1686         * JavaScriptCore.xcodeproj/project.pbxproj:
1687         * wtf/CMakeLists.txt:
1688
1689         * wtf/Decoder.h: Added.
1690         * wtf/Encoder.h: Added.
1691
1692 2011-01-03  Laszlo Gombos  <laszlo.1.gombos@nokia.com>
1693
1694         Unreviewed build fix.
1695
1696         [Qt] Add NullPtr.cpp introduced in r71155 to the Qt build system.
1697
1698         This fix is required for builds where HAVE(NULLPTR) is false
1699         (e.g. some MSVC and Symbian builds).
1700
1701         * wtf/wtf.pri:
1702
1703 2011-01-02  Dan Bernstein  <mitz@apple.com>
1704
1705         Rubber-stamped by Simon Fraser.
1706
1707         <rdar://problem/8812159> Update copyright strings
1708
1709         * Info.plist:
1710
1711 2011-01-02  Csaba Osztrogonác  <ossy@webkit.org>
1712
1713         Fix GTK+ build after r74855.
1714
1715         Reviewed by Xan Lopez.
1716
1717         * GNUmakefile.am: Fix include pathes.
1718
1719 2011-01-02  Adam Barth  <abarth@webkit.org>
1720
1721         One more .. missing in the Qt build.
1722
1723         * jsc.pro:
1724
1725 2011-01-02  Xan Lopez  <xlopez@igalia.com>
1726
1727         Fix GTK+ build.
1728
1729         * GNUmakefile.am: add -I$(srcdir)/Source to the JSC cppflags so
1730         that anyone can include its headers without adding the prefix
1731         'Source/'.
1732
1733 2011-01-02  Carl Lobo  <carllobo@gmail.com>
1734
1735         Reviewed by Adam Barth.
1736
1737         Fix Windows Build for non-production where VSPropsRedirectionDir is not defined.
1738         https://bugs.webkit.org/show_bug.cgi?id=51797
1739
1740         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
1741         * JavaScriptCore.vcproj/JavaScriptCore/build-generated-files.sh:
1742         * JavaScriptCore.vcproj/WTF/WTF.vcproj:
1743         * JavaScriptCore.vcproj/jsc/jsc.vcproj:
1744         * JavaScriptCore.vcproj/testapi/testapi.vcproj:
1745
1746 2011-01-01  Adam Barth  <abarth@webkit.org>
1747
1748         Fix relative include paths in an attempt to fix the Qt build.
1749
1750         * JavaScriptCore.pri:
1751         * JavaScriptCore.pro:
1752
1753 2011-01-01  Adam Barth  <abarth@webkit.org>
1754
1755         Another speculative build fix for GTK.
1756
1757         * GNUmakefile.am:
1758
1759 2011-01-01  Adam Barth  <abarth@webkit.org>
1760
1761         Speculative build fix for GTK.  Update the paths in GNUmakefile to
1762         include "Source".
1763
1764         * GNUmakefile.am:
1765
1766 2011-01-01  Adam Barth  <abarth@webkit.org>
1767
1768         Update relative paths in JavaScriptCore.gyp to account for the extra
1769         level of directories.
1770
1771         * JavaScriptCore.gyp/JavaScriptCore.gyp:
1772
1773 2010-12-31  Patrick Gansterer  <paroga@webkit.org>
1774
1775         Reviewed by Darin Adler.
1776
1777         Add a fast case for ASCII strings in HashAndUTF8CharactersTranslator::equal
1778         https://bugs.webkit.org/show_bug.cgi?id=50517
1779
1780         This change shows about 2% performance win on the xml-parser benchmark.
1781
1782         * wtf/text/AtomicString.cpp:
1783         (WTF::HashAndUTF8CharactersTranslator::equal):
1784
1785 2010-12-30  Patrick Gansterer  <paroga@webkit.org>
1786
1787         Reviewed by Ariya Hidayat.
1788
1789         [CMake] Add WTF_HEADERS
1790         https://bugs.webkit.org/show_bug.cgi?id=51741
1791
1792         Add the WTF headers to show them in Visual Studio.
1793
1794         * wtf/CMakeLists.txt:
1795         * wtf/CMakeListsWinCE.txt:
1796
1797 2010-12-30  Konstantin Tokarev  <annulen@yandex.ru>
1798
1799         Reviewed by David Kilzer.
1800
1801         [Qt] Don't build wtf/TCSystemAlloc.cpp if --system-malloc option is
1802         used
1803         https://bugs.webkit.org/show_bug.cgi?id=51672
1804
1805         * wtf/wtf.pri: Replaced USE_SYSTEM_MALLOC with USE_SYSTEM_MALLOC=1
1806
1807 2010-12-30  Patrick Gansterer  <paroga@webkit.org>
1808
1809         Reviewed by Darin Adler.
1810
1811         Use OS(WINDOWS) instead of COMPILER(MSVC) in FastMalloc.cpp
1812         https://bugs.webkit.org/show_bug.cgi?id=51743
1813
1814         Most of the ifdefs belong to windows and not to the MSVC compiler.
1815
1816         * wtf/FastMalloc.cpp:
1817
1818 2010-12-29  Gavin Barraclough  <barraclough@apple.com>
1819
1820         Reviewed by Sam Weinig.
1821
1822         Bug 51724 - In strict mode string literals should allow \0, but disallow \8 and \9.
1823
1824         * parser/Lexer.cpp:
1825         (JSC::Lexer::parseString):
1826
1827 2010-12-29  Helder Correia  <helder@sencha.com>
1828
1829         Reviewed by Eric Seidel.
1830
1831         <VT> and <FF> are not valid JSON whitespace characters
1832         https://bugs.webkit.org/show_bug.cgi?id=51671
1833
1834         Vertical Tab and Form Feed are not allowed white spaces by the JSON
1835         RFC 4627: http://www.ietf.org/rfc/rfc4627.txt (2. JSON Grammar).
1836
1837         Tests: ietestcenter/Javascript/15.12.1.1-0-2.html
1838                ietestcenter/Javascript/15.12.1.1-0-3.html
1839
1840         * runtime/LiteralParser.cpp:
1841         (JSC::isJSONWhiteSpace):
1842         (JSC::LiteralParser::Lexer::lex):
1843
1844 2010-12-28  Helder Correia  <helder@sencha.com>
1845
1846         Reviewed by Eric Seidel.
1847
1848         JSON.stringify must exist as a function taking 3 parameters
1849         https://bugs.webkit.org/show_bug.cgi?id=51667
1850
1851         The reported function length is 1 instead.
1852
1853         Test: ietestcenter/Javascript/15.12.3-0-2.html
1854
1855         * runtime/JSONObject.cpp:
1856
1857 2010-12-28  Helder Correia  <helder@sencha.com>
1858
1859         Reviewed by Sam Weinig.
1860
1861         JSON.parse must exist as a function taking 2 parameters
1862         https://bugs.webkit.org/show_bug.cgi?id=51666
1863
1864         Support for revivers was introduced in bug 26591, but the function
1865         length has since remained unchanged.
1866
1867         Test: ietestcenter/Javascript/15.12.2-0-2.html
1868
1869         * runtime/JSONObject.cpp:
1870
1871 2010-12-27  Jake Helfert  <jake@jakeonthenet.com>
1872
1873         Reviewed and reworked by Darin Adler.
1874
1875         Building WebKit with Visual Studio 2010 fails due
1876         to ambiguous assignment operator errors.
1877         https://bugs.webkit.org/show_bug.cgi?id=51116
1878
1879         * wtf/NullPtr.h: Added a HAVE(NULLPTR) definition for use with
1880         Platform.h HAVE macro, and included the Visual Studio 2010 compiler
1881         as one of the ones that has nullptr.
1882         * wtf/NullPtr.cpp: Updated condition to match.
1883         
1884         * wtf/PassOwnArrayPtr.h: Don't include the operator=(nullptr_t)
1885         overload if we are compiling in loose mode and the compiler has
1886         nullptr, because assignment of 0 will otherwise encounter
1887         ambiguitity with this overload and the overload for loose mode
1888         that takes a raw pointer. The conditional can be removed when we
1889         get rid of loose mode.
1890         * wtf/PassOwnPtr.h: Ditto.
1891
1892         * wtf/PassRefPtr.h: Don't include the operator=(nullptr_t) overload
1893         if the compiler has nullptr, because assignment of 0 would be
1894         ambiguous with the overload that takes a raw pointer. The conditional
1895         can be removed if we ever decide we no longer need to support
1896         assigning 0, but might need a way to catch that usage on older compilers.
1897         * wtf/RefPtr.h: Ditto.
1898         * wtf/RetainPtr.h: Ditto
1899
1900         * JavaScriptCore.xcodeproj/project.pbxproj: Added NullPtr.cpp,
1901         accidentally omitted when the file was first added.
1902
1903 2010-12-26  Xan Lopez  <xlopez@igalia.com>
1904
1905         Reviewed by Eric Seidel.
1906
1907         [GTK] Add standalone target for JSC
1908         https://bugs.webkit.org/show_bug.cgi?id=51607
1909
1910         * GNUmakefile.am: add convenience target to only build jsc and its
1911         dependencies.
1912
1913 2010-12-24  Patrick Gansterer  <paroga@webkit.org>
1914
1915         Reviewed by Eric Seidel.
1916
1917         [WINCE] Add CPU(MIPS) detection
1918         https://bugs.webkit.org/show_bug.cgi?id=51342
1919
1920         WinCE usually defines MIPS and _MIPS_.
1921
1922         * wtf/Platform.h:
1923
1924 2010-12-23  Gavin Barraclough  <barraclough@apple.com>
1925
1926         Reviewed by Sam Weinig.
1927
1928         Rename RegexCompiler.cpp to RegexPattern.cpp.
1929         Implicitly call compileRegex from RegexPattern's constructor.
1930
1931         * Android.mk:
1932         * CMakeLists.txt:
1933         * GNUmakefile.am:
1934         * JavaScriptCore.gypi:
1935         * JavaScriptCore.pro:
1936         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
1937         * JavaScriptCore.xcodeproj/project.pbxproj:
1938         * runtime/RegExp.cpp:
1939         (JSC::RegExp::compile):
1940         * yarr/RegexCompiler.cpp: Removed.
1941         * yarr/RegexCompiler.h: Removed.
1942         * yarr/RegexInterpreter.cpp:
1943         * yarr/RegexJIT.cpp:
1944         * yarr/RegexPattern.cpp: Copied from JavaScriptCore/yarr/RegexCompiler.cpp.
1945         (JSC::Yarr::compileRegex):
1946         (JSC::Yarr::RegexPattern::RegexPattern):
1947         * yarr/RegexPattern.h:
1948
1949 2010-12-23  Patrick Gansterer  <paroga@webkit.org>
1950
1951         Unreviewed build fix for WinCE after r74360.
1952
1953         Move the OS(WINDOWS) section after the OS(WINCE) section
1954         and add missing argument to the getStackMax call.
1955
1956         * wtf/StackBounds.cpp:
1957         (WTF::StackBounds::initialize):
1958
1959 2010-12-22  Laszlo Gombos  <laszlo.1.gombos@nokia.com>
1960
1961         Unreviewed build fix.
1962
1963         [Symbian] Make sure OSAllocatorSymbian builds
1964
1965         This patch only addresses the build problem.
1966
1967         https://bugs.webkit.org/show_bug.cgi?id=51128 tracks the full
1968         (re)implementation of the Symbian allocator.
1969
1970         * wtf/OSAllocatorSymbian.cpp:
1971         (WTF::OSAllocator::reserveUncommitted):
1972         (WTF::OSAllocator::reserveAndCommit):
1973         (WTF::OSAllocator::commit):
1974
1975 2010-12-22  Dan Bernstein  <mitz@apple.com>
1976
1977         Changed WebKitTools to Tools.
1978
1979         * JavaScriptCore.vcproj/JavaScriptCore.sln:
1980
1981 2010-12-22  Dan Bernstein  <mitz@apple.com>
1982
1983         Rubber-stamped by Mark Rowe.
1984
1985         Changed WebKitTools to Tools in script build phases.
1986
1987         * JavaScriptCore.xcodeproj/project.pbxproj:
1988
1989 2010-12-22  Andrei Popescu  <andreip@google.com>
1990
1991         Unreviewed build fix.
1992
1993         Fix Chromium Linux shared library build.
1994         [Chromium] r74431 broke the Chromium Linux shared library build
1995         https://bugs.webkit.org/show_bug.cgi?id=51462
1996
1997         * JavaScriptCore.gyp/JavaScriptCore.gyp:
1998         * JavaScriptCore.gypi:
1999
2000 2010-12-21  Sheriff Bot  <webkit.review.bot@gmail.com>
2001
2002         Unreviewed, rolling out r74462.
2003         http://trac.webkit.org/changeset/74462
2004         https://bugs.webkit.org/show_bug.cgi?id=51449
2005
2006         broke chromium win (Requested by tonyg-cr on #webkit).
2007
2008         * JavaScriptCore.gypi:
2009
2010 2010-12-21  Tony Gentilcore  <tonyg@chromium.org>
2011
2012         Unreviewed build fix.
2013
2014         [chromium] Build fix after r74431
2015         https://bugs.webkit.org/show_bug.cgi?id=51447
2016
2017         * JavaScriptCore.gypi:
2018
2019 2010-12-21  Gavin Barraclough  <barraclough@apple.com>
2020
2021         Windows build fix.
2022
2023         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
2024
2025 2010-12-21  Gavin Barraclough  <barraclough@apple.com>
2026
2027         Windows build fix.
2028
2029         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
2030
2031 2010-12-21  Gavin Barraclough  <barraclough@apple.com>
2032
2033         Speculative build fix.
2034
2035         * jit/ExecutableAllocator.cpp:
2036         (JSC::ExecutableAllocator::underMemoryPressure):
2037
2038 2010-12-21  Gavin Barraclough  <barraclough@apple.com>
2039
2040         Reviewed by Oliver Hunt.
2041
2042         Bug 26276 - Need a mechanism to determine stack extent
2043
2044         This patch adds accurate stack size calculation for:
2045             DARWIN, QNX, UNIX
2046         We still need to fix:
2047             WINDOWS, SOLARIS, OPENBSD, SYMBIAN, HAIKU, WINCE
2048
2049         * wtf/StackBounds.cpp:
2050         (WTF::StackBounds::initialize):
2051
2052 2010-12-21  Gavin Barraclough  <barraclough@apple.com>
2053
2054          Reviewed by Geoff Garen.
2055  
2056         <rdar://problem/8765333> CRASH running out of executable memory, loading io9.com
2057         https://bugs.webkit.org/show_bug.cgi?id=51443
2058
2059         The problem here is that each page uses a reasonable amount of memory, (~4Mb),
2060         and that when miultiple pages are open we keep all JIT code for all functions
2061         in all pages alive.
2062
2063         Add a check to detect high memory pressure situations in the executable allocator
2064         (>50% of available memory allocated), and upon a top level entry into JSC (no code
2065         running on the stack) in this situation throw away all JIT code.
2066
2067         * JavaScriptCore.exp:
2068         * debugger/Debugger.cpp:
2069         (JSC::Debugger::recompileAllJSFunctions): stop passing exec to recompile.
2070         * jit/ExecutableAllocator.h:
2071         * jit/ExecutableAllocatorFixedVMPool.cpp:
2072         (JSC::ExecutablePool::systemAlloc): Count allocations.
2073         (JSC::ExecutablePool::systemRelease): Count deallocations.
2074         (JSC::ExecutablePool::underMemoryPressure): Check memory pressure.
2075         * jit/ExecutableAllocatorPosix.cpp:
2076         (JSC::ExecutablePool::underMemoryPressure): Stub out; only meaningful with FixedVMPool.
2077         * jit/ExecutableAllocatorWin.cpp:
2078         (JSC::ExecutablePool::underMemoryPressure): Stub out; only meaningful with FixedVMPool.
2079         * runtime/Executable.cpp:
2080         (JSC::FunctionExecutable::recompile): Remove ExecState argument to recompile.
2081         * runtime/Executable.h:
2082         * runtime/JSGlobalData.cpp:
2083         (JSC::JSGlobalData::recompileAllJSFunctions): throws away all JIT code.
2084         * runtime/JSGlobalData.h:
2085         * runtime/JSGlobalObject.h:
2086         (JSC::DynamicGlobalObjectScope::DynamicGlobalObjectScope): add check / call to throw away.
2087
2088 2010-12-21  Gavin Barraclough  <barraclough@apple.com>
2089
2090         Reviewed by Geoff Garen.
2091
2092         <rdar://problem/8241425> JIT executable memory excessive usage due to regex caching
2093         https://bugs.webkit.org/show_bug.cgi?id=51434
2094
2095         Reduce the amount of memory the RegExpCache can hold on to on iOS.
2096         Currently the RegExpCache can hold 256 RegExp objects. If each falls into a separate
2097         ExecutablePool, with a common size of 16Kb, this means we end up holding onto 4Mb of
2098         memory. Firstly, we can reduce this by simply reducing the size of the cache to 32
2099         entries. Secondly, we can use a separate set of ExecutablePools for JIT code generated
2100         from RegExp objects. This helps in two ways (1) it increases the probability that
2101         RegExps in the cache share the same pool, and (2) it means that a RegExp can't end
2102         up holding on to a large ExecutablePool containing a translation of JS code.
2103         (A RegExp could end up keeping a larger RegExp alive that happened to be sharing the
2104         same pool, but large RegExp patterns are less common).
2105
2106         * runtime/JSGlobalData.h:
2107         * runtime/RegExpCache.h:
2108         * yarr/RegexJIT.cpp:
2109         (JSC::Yarr::RegexGenerator::compile):
2110
2111 2010-12-21  Gavin Barraclough  <barraclough@apple.com>
2112
2113         Windows build fix.
2114
2115         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
2116
2117 2010-12-21  Gavin Barraclough  <barraclough@apple.com>
2118
2119         Eeeep! build fix!
2120
2121         * wtf/OSAllocator.h:
2122         (WTF::OSAllocator::decommitAndRelease):
2123
2124 2010-12-21  Gavin Barraclough  <barraclough@apple.com>
2125
2126         Ooops, fixed typo in comment.
2127
2128         * wtf/OSAllocator.h:
2129
2130 2010-12-21  Geoffrey Garen  <ggaren@apple.com>
2131
2132         Reviewed by Gavin Barraclough & Oliver Hunt.
2133
2134         Added PageAllocationAligned, a cross-platform abstraction for memory allocations with arbitrary alignment requirements
2135         https://bugs.webkit.org/show_bug.cgi?id=51359
2136         
2137         I think this patch fixes <rdar://problem/8107952> [5.0.1] WER crash in
2138         Heap::allocateBlock (1902752929), and some other leaks and crashes as well.
2139
2140         * Android.mk:
2141         * CMakeLists.txt:
2142         * GNUmakefile.am:
2143         * JavaScriptCore.gypi:
2144         * JavaScriptCore.vcproj/WTF/WTF.vcproj:
2145         * JavaScriptCore.xcodeproj/project.pbxproj: Updated build files.
2146
2147         * runtime/AlignedMemoryAllocator.h: Removed. Supplanted by
2148         PageAllocationAligned.
2149
2150         * runtime/Collector.cpp:
2151         (JSC::Heap::destroy):
2152         (JSC::Heap::allocateBlock):
2153         (JSC::Heap::freeBlock):
2154         (JSC::Heap::addWeakGCHandle):
2155         * runtime/Collector.h: Switched from AlignedMemoryAllocator to
2156         PageAllocationAligned.
2157
2158         * runtime/GCHandle.cpp:
2159         * runtime/GCHandle.h: Ditto.
2160
2161         * wtf/PageAllocation.h:
2162         (WTF::PageAllocation::PageAllocation): Removed aligned memory allocation
2163         functions. Supplanted by PageAllocationAligned.
2164
2165         * wtf/PageAllocationAligned.cpp: Added.
2166         (WTF::PageAllocationAligned::allocate):
2167         (WTF::PageAllocationAligned::deallocate):
2168         * wtf/PageAllocationAligned.h: Added.
2169         (WTF::PageAllocationAligned::PageAllocationAligned): New cross-platform
2170         class for doing aligned memory allocation. This class properly matches
2171         allocation and deallocation library calls, fixing a long-standing bug
2172         in PageAllocation.
2173
2174         * wtf/Platform.h: Removed some defunction VM platform defines.
2175
2176         * wtf/wtf.pri: Updated build files.
2177
2178 2010-12-21  Oliver Hunt  <oliver@apple.com>
2179
2180         Reviewed by Gavin Barraclough.
2181
2182         ASSERTION FAILED: base->index() == m_codeBlock->argumentsRegister() while loading taobao.com
2183         https://bugs.webkit.org/show_bug.cgi?id=49006
2184
2185         This problem was caused by having a parameter named 'arguments'.
2186         The fix is to treat parameters named 'arguments' as shadowing
2187         the actual arguments property, and so logically turn the function
2188         into one that doesn't "use" arguments.
2189
2190         This required a bit of fiddling in the parser to ensure we correctly
2191         propagate the 'feature' of shadowing is set correctly.
2192
2193         * bytecompiler/BytecodeGenerator.cpp:
2194         (JSC::BytecodeGenerator::createArgumentsIfNecessary):
2195           Change assertion to an early return as we may now reference
2196           a property named 'arguments' without being in a function that
2197           has the ArgumentsFeature
2198         * parser/JSParser.cpp:
2199         (JSC::JSParser::Scope::Scope):
2200         (JSC::JSParser::Scope::declareParameter):
2201         (JSC::JSParser::Scope::shadowsArguments):
2202         (JSC::JSParser::parseProgram):
2203         (JSC::JSParser::parseFormalParameters):
2204         (JSC::JSParser::parseFunctionInfo):
2205         * parser/Nodes.h:
2206         (JSC::ScopeNode::usesArguments):
2207
2208 2010-12-21  Daniel Bates  <dbates@rim.com>
2209
2210         Reviewed by Eric Seidel and Darin Adler.
2211
2212         Deallocate GregorianDateTime.timeZone (if allocated) when copying so that we don't leak memory.
2213         https://bugs.webkit.org/show_bug.cgi?id=51367
2214
2215         Inspired by a patch by George Staikos.
2216
2217         * wtf/DateMath.cpp:
2218         (JSC::msToGregorianDateTime): Modified to set timeZone to nullptr since timeZone is now
2219         of type OwnPtrArray<char>.
2220         * wtf/DateMath.h: Change timeZone to type OwnArrayPtr<char>; Removed destructor since it is no longer needed.
2221         (JSC::GregorianDateTime::GregorianDateTime): Modified to use OwnPtrArray semantics for timeZone.
2222         (JSC::GregorianDateTime::operator tm): Ditto.
2223         (JSC::GregorianDateTime::copyFrom): Ditto.
2224
2225 2010-12-21  Sheriff Bot  <webkit.review.bot@gmail.com>
2226
2227         Unreviewed, rolling out r74402.
2228         http://trac.webkit.org/changeset/74402
2229         https://bugs.webkit.org/show_bug.cgi?id=51402
2230
2231         This patch broke the Windows 7 Release Layout Tests (Requested
2232         by jessieberlin on #webkit).
2233
2234         * wtf/StackBounds.cpp:
2235         (WTF::estimateStackBound):
2236         (WTF::StackBounds::initialize):
2237
2238 2010-12-21  Peter Varga  <pvarga@inf.u-szeged.hu>
2239
2240         Reviewed by Csaba Osztrogonác.
2241
2242         Unify the name of parentheses in YARR: rename parenthesis to
2243         parentheses.
2244
2245         * yarr/RegexCompiler.cpp:
2246         (JSC::Yarr::RegexPatternConstructor::atomParenthesesEnd):
2247
2248 2010-12-21  Laszlo Gombos  <laszlo.1.gombos@nokia.com>
2249
2250         Reviewed by Andreas Kling.
2251
2252         [Qt] Set BUILDING_QT__ consistently
2253         https://bugs.webkit.org/show_bug.cgi?id=51341
2254
2255         * JavaScriptCore.pri: Remove the definition of BUILDING_QT__ as it
2256         is already defined in WebKit.pri.
2257
2258 2010-12-20  Gavin Barraclough  <barraclough@apple.com>
2259
2260         Reviewed by Oliver Hunt.
2261
2262         Bug 26276 - Need a mechanism to determine stack extent
2263
2264         This patch adds accurate stack size calculation for:
2265             DARWIN, WINDOWS, QNX, UNIX
2266         We still need to fix:
2267             SOLARIS, OPENBSD, SYMBIAN, HAIKU, WINCE
2268
2269         * wtf/StackBounds.cpp:
2270         (WTF::StackBounds::initialize):
2271
2272 2010-12-20  Gavin Barraclough  <barraclough@apple.com>
2273
2274         PPC build fix; stop using std::swap on PageAllocation/PageReservation,
2275         this was failing on some compilers since the lack of default construction
2276         for the m_executable/m_writable fields meant the value being swapped may
2277         not have been fully initialized.
2278
2279         * wtf/PageAllocation.h:
2280         (WTF::PageAllocation::deallocate):
2281         * wtf/PageBlock.h:
2282         * wtf/PageReservation.h:
2283         (WTF::PageReservation::deallocate):
2284
2285 2010-12-20  Oliver Hunt  <oliver@apple.com>
2286
2287         Reviewed by Geoffrey Garen.
2288
2289         |delete name| in strict mode code should be an early error
2290         https://bugs.webkit.org/show_bug.cgi?id=50431
2291
2292         Disallow the |delete IDENTIFIER| production in strict mode, and removed
2293         a bunch of now unnecessary code.
2294
2295         * parser/JSParser.cpp:
2296         (JSC::JSParser::Scope::collectFreeVariables):
2297         (JSC::jsParse):
2298         (JSC::JSParser::parseProgram):
2299         (JSC::JSParser::parseUnaryExpression):
2300         * parser/JSParser.h:
2301         * parser/Parser.cpp:
2302         (JSC::Parser::parse):
2303         * parser/Parser.h:
2304         (JSC::Parser::parse):
2305
2306 2010-12-20  Gavin Barraclough  <barraclough@apple.com>
2307
2308         Reviewed by Olver Hunt.
2309
2310         Bug 51358 - Should check stack depth rather than using recursion limits in byte compilation
2311
2312         The current implementation of recursion limit checking is not safe on smaller stacks.
2313         Switch to using a common mechanism, shared with the parser, to check recursion limits.
2314
2315         Make bytecompiler use StackBounds. Empirical testing shows emitStrcat to have the largest
2316         footprint on the stack, at just under 1k on x86-64.  Given this, the default recursion
2317         check (requiring 4k of available space to recurse) seems reasonable.
2318
2319         * bytecompiler/BytecodeGenerator.cpp:
2320         (JSC::BytecodeGenerator::BytecodeGenerator):
2321         * bytecompiler/BytecodeGenerator.h:
2322         (JSC::BytecodeGenerator::emitNode):
2323         (JSC::BytecodeGenerator::emitNodeInConditionContext):
2324         * bytecompiler/NodesCodegen.cpp:
2325         (JSC::BinaryOpNode::emitStrcat):
2326
2327 2010-12-20  Tony Gentilcore  <tonyg@chromium.org>
2328
2329         Unreviewed build fix.
2330
2331         Include pthread to fix chromium mac build (broken by r74360)
2332         https://bugs.webkit.org/show_bug.cgi?id=51356
2333
2334         * wtf/StackBounds.cpp:
2335
2336 2010-12-20  Xan Lopez  <xlopez@igalia.com>
2337
2338         Reviewed by Gustavo Noronha.
2339
2340         * GNUmakefile.am: add missing files.
2341
2342 2010-12-18  Gavin Barraclough  <barraclough@apple.com>
2343
2344         Reviewed by Oliver Hunt.
2345
2346         Bug 26276 - Need a mechanism to determine stack extent
2347
2348         This patch adds a class 'StackBounds', to hold information about the machine stack.
2349         The implementation of this class broadly adheres to the current implmentation of
2350         stack limit checking, and as such does not solve the problem of determining stack
2351         extent, but gives us a common place to do so.
2352
2353         Currently two mechanism are provided to determine the stack origin (the point the
2354         stack is growing away from). currentThreadStackBase() in Collector provides a
2355         more accurate determination of the stack origin, so use this to calculate
2356         StackBounds::m_origin; WTFThreadData::approximatedStackStart is less accurate, and
2357         as such can be removed.  Cache the StackBounds on WTFThreadData such that they
2358         need only be determined once per thread, and for non-API contexts cache this
2359         information in JSGlobalData, to save a thread-specific access.
2360
2361         For the time being retain the estimate of stack size used by JSC's parser
2362         (128 * sizeof(void*) * 1024), with a view to replacing this with something more
2363         accurate in the near future.
2364
2365         * parser/JSParser.cpp:
2366         (JSC::JSParser::canRecurse):
2367         (JSC::JSParser::JSParser):
2368             Change to use StackBounds.
2369         * runtime/Collector.cpp:
2370         (JSC::Heap::registerThread):
2371         (JSC::Heap::markCurrentThreadConservativelyInternal):
2372             Change to use StackBounds, cached on JSGlobalData.
2373         * runtime/JSGlobalData.cpp:
2374         (JSC::JSGlobalData::JSGlobalData):
2375         * runtime/JSGlobalData.h:
2376         (JSC::JSGlobalData::stack):
2377             Add a cached copy of StackBounds.
2378         * wtf/StackBounds.cpp: Copied from JavaScriptCore/runtime/Collector.cpp.
2379         (WTF::estimateStackBound):
2380         (WTF::StackBounds::initialize):
2381         (WTF::getStackMax):
2382             Copy code from Collector.cpp to determine stack origin.
2383         * wtf/StackBounds.h: Added.
2384         (WTF::StackBounds::StackBounds):
2385             No argument constructor; returns a null StackBounds.
2386         (WTF::StackBounds::currentThreadStackBounds):
2387             Returns a StackBounds object representing the stack limits
2388             of the current thread.
2389         (WTF::StackBounds::origin):
2390             Returns to stack origin (the point the stack is growing away
2391             from; the highest extent of the stack on machines where the
2392             stack grows downwards.
2393         (WTF::StackBounds::recursionLimit):
2394             Returns a limit value that is 'a comfortable distance from
2395             the end of the stack'. Our concept of this is currently 1 page
2396             away from the end, however the default value may be tuned in
2397             the future, and clients may override passing a larger delta;
2398             should only be called on StackBounds object representing the
2399             stack of the thread this method is called on (checked by
2400             checkConsistency).
2401         (WTF::StackBounds::recursionCheck):
2402             Checks whether we are currently 'a comfortable distance from
2403             the end of the stack'. Our concept of this is currently 1 page
2404             away from the end, however the default value may be tuned in
2405             the future, and clients may override passing a larger delta
2406             to apply when checking, if they wish to do so. This method
2407             should only be called on StackBounds object representing the
2408             stack of the thread this method is called on (checked by
2409             checkConsistency).
2410         (WTF::StackBounds::current):
2411             Approximate current stack position. On machines where the stack
2412             is growing downwards this is the lowest address that might need
2413             conservative collection.
2414         (WTF::StackBounds::isGrowingDownward):
2415             True for all platforms other than WINCE, which has to check.
2416         (WTF::StackBounds::checkConsistency):
2417             This is called in methods that shoulds only be operating on a
2418             valid set of bounds; as such we expect m_origin != m_bounds
2419             (i.e. stack size != zero) - we're really testing that this
2420             object is not null (the constructor initializes both fields
2421             to zero).  Also checks that current() is within the stack's
2422             bounds.
2423         * wtf/WTFThreadData.cpp:
2424         (WTF::WTFThreadData::WTFThreadData):
2425         * wtf/WTFThreadData.h:
2426         (WTF::WTFThreadData::stack):
2427             Add the StackBounds member variable.
2428
2429 2010-12-17  Geoffrey Garen  <ggaren@apple.com>
2430
2431         Reviewed by Sam Weinig.
2432
2433         Factored common page set management into a new PageBlock base class
2434         https://bugs.webkit.org/show_bug.cgi?id=51285
2435
2436         * Android.mk:
2437         * CMakeLists.txt:
2438         * GNUmakefile.am:
2439         * JavaScriptCore.gypi:
2440         * JavaScriptCore.vcproj/WTF/WTF.vcproj:
2441         * JavaScriptCore.xcodeproj/project.pbxproj:
2442         * interpreter/RegisterFile.h:
2443         (JSC::RegisterFile::RegisterFile):
2444         * jit/ExecutableAllocator.cpp:
2445         (JSC::ExecutableAllocator::intializePageSize):
2446         * wtf/PageAllocation.cpp: Removed.
2447         * wtf/PageAllocation.h:
2448         (WTF::PageAllocation::deallocate):
2449         (WTF::PageAllocation::PageAllocation):
2450         * wtf/PageReservation.h:
2451         (WTF::PageReservation::commit):
2452         (WTF::PageReservation::decommit):
2453         (WTF::PageReservation::deallocate):
2454         (WTF::PageReservation::PageReservation):
2455         * wtf/wtf.pri:
2456
2457 2010-12-17  Michael Saboff  <msaboff@apple.com>
2458
2459         Reviewed by Oliver Hunt.
2460
2461         RegExp Jit'ed expression crashes clicking link on yelp.com
2462         https://bugs.webkit.org/show_bug.cgi?id=51284
2463
2464         When transitioning between an non-repeating beginning of line
2465         anchored expression and the remaining refactored repeating 
2466         expression, we should not clear any residual datalabel in 
2467         state's m_backtrack.  It will be resolved and cleared in subsequent
2468         code when linkAlternativeBacktracks() is called for the repeating
2469         alternative(s).
2470
2471         * yarr/RegexJIT.cpp:
2472         (JSC::Yarr::RegexGenerator::BacktrackDestination::clear):
2473         (JSC::Yarr::RegexGenerator::TermGenerationState::clearBacktrack):
2474
2475 2010-12-17  Dan Bernstein  <mitz@apple.com>
2476
2477         Rubber-stamped by Mark Rowe.
2478
2479         Updated for the renaming of WebKitTools to Tools
2480
2481         * JavaScriptCore.vcproj/JavaScriptCore/build-generated-files.sh:
2482
2483 2010-12-17  Ariya Hidayat  <ariya@sencha.com>
2484
2485         Reviewed by Oliver Hunt.
2486
2487         [JSC] parseAssignmentExpression should use TreeBuilder::CreatesAST
2488         https://bugs.webkit.org/show_bug.cgi?id=51268
2489
2490         * parser/JSParser.cpp:
2491         (JSC::JSParser::parseAssignmentExpression):
2492
2493 2010-12-17  Geoffrey Garen  <ggaren@apple.com>
2494
2495         Reviewed by Oliver Hunt.
2496
2497         Removed RChunk from PageAllocation/PageReservation, since it's now unused.
2498         https://bugs.webkit.org/show_bug.cgi?id=51276
2499
2500         * wtf/PageAllocation.h:
2501         (WTF::PageAllocation::PageAllocation):
2502         * wtf/PageReservation.h:
2503         (WTF::PageReservation::PageReservation):
2504
2505 2010-12-17  Oliver Hunt  <oliver@apple.com>
2506
2507         Reviewed by Gavin Barraclough.
2508
2509         Incorrect encoding of some constants in ARMv7 JIT
2510         https://bugs.webkit.org/show_bug.cgi?id=51273
2511         <rdar://problem/8650210>
2512
2513         When using immediate encoding 3 we need to write the byte
2514         that holds a duplicated value.
2515
2516         * assembler/ARMv7Assembler.h:
2517         (JSC::ARMThumbImmediate::makeEncodedImm):
2518
2519 2010-12-16  Evan Martin  <evan@chromium.org>
2520
2521         Reviewed by Darin Fisher.
2522
2523         [chromium] useless warnings when building on Windows
2524         https://bugs.webkit.org/show_bug.cgi?id=50985
2525
2526         Disable some compiler warnings that aren't indicative of real problems.
2527
2528         * JavaScriptCore.gyp/JavaScriptCore.gyp:
2529
2530 2010-12-16  Pratik Solanki  <psolanki@apple.com>
2531
2532         Reviewed by Geoffrey Garen.
2533
2534         https://bugs.webkit.org/show_bug.cgi?id=51166
2535         ExecutableAllocator::cacheFlush should call sys_cache_control
2536
2537         * jit/ExecutableAllocator.h:
2538         (JSC::ExecutableAllocator::cacheFlush): Use the more correct and forward looking API -
2539         sys_cache_control(kCacheFunctionPrepareForExecution,...).
2540
2541 2010-12-16  Ariya Hidayat  <ariya@sencha.com>
2542
2543         Reviewed by Andreas Kling.
2544
2545         [JSC] Const correctness in ASTBuilder and SyntaxChecker
2546         https://bugs.webkit.org/show_bug.cgi?id=51141
2547
2548         * parser/ASTBuilder.h:
2549         (JSC::ASTBuilder::getName):
2550         (JSC::ASTBuilder::getType):
2551         (JSC::ASTBuilder::isResolve):
2552         * parser/SyntaxChecker.h:
2553         (JSC::SyntaxChecker::operatorStackPop):
2554
2555 2010-12-15  Kenneth Russell  <kbr@google.com>
2556
2557         Reviewed by James Robinson.
2558
2559         Web Audio API: port FFTFrame to MKL
2560         https://bugs.webkit.org/show_bug.cgi?id=50986
2561
2562         Fixed bug in log2 emulation function provided for Windows port of
2563         Web Audio API.
2564
2565         * wtf/MathExtras.h:
2566         (log2):
2567
2568 2010-12-14  Mark Rowe  <mrowe@apple.com>
2569
2570         Reviewed by Sam Weinig.
2571
2572         <http://webkit.org/b/51064> Reproducible crash inside WebCore::MediaPlayerPrivateQTKit::createQTMovie when loading <video>
2573
2574         * wtf/text/WTFString.h: Prevent String from being implicitly convertable to bool.
2575         It was previously implicitly convertible to bool on Mac via operator NSString*,
2576         but since that always has a non-zero return value it would give unexpected results.
2577
2578 2010-12-14  Laszlo Gombos  <laszlo.1.gombos@nokia.com>
2579
2580         Reviewed by Eric Seidel.
2581
2582         [Qt] [Symbian] Do not use pkg-config on Symbian as it is not supported
2583         https://bugs.webkit.org/show_bug.cgi?id=50231
2584
2585         Guard CONFIG+=link_pkgconfig with !symbian.
2586
2587         * jsc.pro:
2588
2589 2010-12-14  Cameron Zwarich  <zwarich@apple.com>
2590
2591         Not reviewed.
2592
2593         Revert accidental change disabling the JIT for most platforms.
2594
2595         * wtf/Platform.h:
2596
2597 2010-12-13  Cameron Zwarich  <zwarich@apple.com>
2598
2599         Reviewed by Eric Seidel.
2600
2601         Clang fails to build the JSC interpreter
2602         https://bugs.webkit.org/show_bug.cgi?id=51016
2603
2604         Clang does not allow indirect gotos out of scopes with cleanup. GCC 4.2 allows
2605         them, but it does not correctly generate the cleanup, causing a leak if the
2606         cleanup decrements a reference count.
2607
2608         * interpreter/Interpreter.cpp:
2609         (JSC::Interpreter::privateExecute): Put an Identifier into its own scope.
2610
2611 2010-12-14  Carlos Garcia Campos  <cgarcia@igalia.com>
2612
2613         Reviewed by Martin Robinson.
2614
2615         [GTK] Simplify context-menu handling code
2616         https://bugs.webkit.org/show_bug.cgi?id=49658
2617
2618         * wtf/PlatformRefPtr.h: Add leakRef()
2619
2620 2010-12-13  Cameron Zwarich  <zwarich@apple.com>
2621
2622         Reviewed by Gavin Barraclough.
2623
2624         JavaScriptCore should not use "asm volatile" outside of a function
2625         https://bugs.webkit.org/show_bug.cgi?id=50991
2626
2627         * jit/JITStubs.cpp: Remove the volatile keyword from asm statements.
2628
2629 2010-12-13  Steve Falkenburg  <sfalken@apple.com>
2630
2631         Windows production build fix.
2632         Try copying ICU 4.6 in addition to 4.4 and 4.2.
2633
2634         * JavaScriptCore.vcproj/jsc/jscPostBuild.cmd:
2635
2636 2010-12-13  Michael Saboff  <msaboff@apple.com>
2637
2638         Reviewed by Oliver Hunt.
2639
2640         REGRESSION: mobileme mail viewing is broken
2641         https://bugs.webkit.org/show_bug.cgi?id=50884
2642
2643         Fixed problem where simple parenthesis (those without capture and
2644         with a fixed count) where not propagating backtrack to labels for 
2645         nested parentheses.  Also added the nesting level for the parentheses 
2646         state created in that case as well.
2647
2648         * yarr/RegexJIT.cpp:
2649         (JSC::Yarr::RegexGenerator::BacktrackDestination::copyBacktrackToLabel):
2650         (JSC::Yarr::RegexGenerator::TermGenerationState::isLastTerm):
2651         (JSC::Yarr::RegexGenerator::ParenthesesTail::generateCode):
2652         (JSC::Yarr::RegexGenerator::generateParenthesesSingle):
2653
2654 2010-12-13  Peter Varga  <pvarga@inf.u-szeged.hu>
2655
2656         Reviewed by Gavin Barraclough.
2657
2658         Reduce the size of the RegexStackSpaceForBackTrackInfoParentheses in YARR
2659         https://bugs.webkit.org/show_bug.cgi?id=49385
2660
2661         Remove the BackTrackInfoParentheses struct prevBegin and prevEnd members.
2662
2663         * yarr/RegexInterpreter.cpp:
2664         (JSC::Yarr::Interpreter::matchParentheses):
2665         (JSC::Yarr::Interpreter::backtrackParentheses):
2666         * yarr/RegexPattern.h:
2667
2668 2010-12-10  Michael Saboff  <msaboff@apple.com>
2669
2670         Reviewed by Gavin Barraclough.
2671
2672         REGRESSION Hang inside Yarr::RegexCodeBlock::execute when visiting
2673         bugs.webkit.org
2674         https://bugs.webkit.org/show_bug.cgi?id=50816
2675
2676         First nested parentheses of the second or greater alternative
2677         where backtracking to the prior parentheses.  Changed the default
2678         handling of initial parentheses for all alternatives to go back
2679         to the immediate outer paren.
2680
2681         * yarr/RegexJIT.cpp:
2682         (JSC::Yarr::RegexGenerator::GenerationState::addParenthesesTail):
2683         (JSC::Yarr::RegexGenerator::TermGenerationState::TermGenerationState):
2684         (JSC::Yarr::RegexGenerator::TermGenerationState::isLastTerm):
2685         (JSC::Yarr::RegexGenerator::TermGenerationState::getTermIndex):
2686         (JSC::Yarr::RegexGenerator::TermGenerationState::setParenthesesTail):
2687         (JSC::Yarr::RegexGenerator::TermGenerationState::getParenthesesTail):
2688         (JSC::Yarr::RegexGenerator::ParenthesesTail::ParenthesesTail):
2689         (JSC::Yarr::RegexGenerator::ParenthesesTail::processBacktracks):
2690         (JSC::Yarr::RegexGenerator::ParenthesesTail::generateCode):
2691         (JSC::Yarr::RegexGenerator::generateParenthesesSingle):
2692
2693 2010-12-11  Patrick Gansterer  <paroga@webkit.org>
2694
2695         Reviewed by Darin Adler.
2696
2697         Add an overload to makeString for Vector<char>
2698         https://bugs.webkit.org/show_bug.cgi?id=50123
2699
2700         Also cleanup StringTypeAdapter.
2701
2702         * wtf/text/StringConcatenate.h:
2703
2704 2010-12-10  Siddharth Mathur  <siddharth.mathur@nokia.com>
2705
2706         Reviewed by Eric Seidel.
2707
2708         [Qt] Build fix for Symbian: don't compile POSIX memory management implementation 
2709         https://bugs.webkit.org/show_bug.cgi?id=50707
2710
2711         * wtf/wtf.pri:
2712
2713 2010-12-10  Steve Falkenburg  <sfalken@apple.com>
2714
2715         Windows production build fix.
2716         
2717         Don't stop if react-to-vsprops-changes.py exits with an error,
2718         since this will occur in production builds.
2719
2720         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreGenerated.make:
2721
2722 2010-12-10  Brian Weinstein  <bweinstein@apple.com>
2723
2724         Reviewed by Adam Roben.
2725
2726         Turn on USE(CROSS_PLATFORM_CONTEXT_MENUS) for Windows.
2727
2728         * wtf/Platform.h:
2729
2730 2010-12-10  Martin Robinson  <mrobinson@igalia.com>
2731
2732         Unreviewed, rolling out r73703.
2733         http://trac.webkit.org/changeset/73703
2734         https://bugs.webkit.org/show_bug.cgi?id=49658
2735
2736         This patch is causing crashes on the GTK+ bots.
2737
2738         * wtf/PlatformRefPtr.h:
2739
2740 2010-12-10  Patrick Gansterer  <paroga@webkit.org>
2741
2742         Reviewed by Eric Seidel.
2743
2744         Cleanup StringWx.cpp
2745         https://bugs.webkit.org/show_bug.cgi?id=50525
2746
2747         Use StringImpl::createUninitialized to avoid memcpy and fix style issues.
2748
2749         * wtf/wx/StringWx.cpp:
2750         (WTF::String::String):
2751
2752 2010-12-10  Carlos Garcia Campos  <cgarcia@igalia.com>
2753
2754         Reviewed by Martin Robinson.
2755
2756         [GTK] Simplify context-menu handling code
2757         https://bugs.webkit.org/show_bug.cgi?id=49658
2758
2759         * wtf/PlatformRefPtr.h:
2760
2761 2010-12-09  Michael Saboff  <msaboff@apple.com>
2762
2763         Reviewed by Gavin Barraclough.
2764
2765         REGRESSION (r73065?): A regex no longer works 
2766         https://bugs.webkit.org/show_bug.cgi?id=50570
2767
2768         Changed the handling of adjacent parentheses backtracks in two ways.
2769         First, only outer most paren backtracks default to back tracking
2770         to the "next character" looping code.  Second, added a jump around 
2771         backtracks that fall through to the next backtrack where the
2772         second backtrack has some greedy processing before the backtracking
2773         from outside the parentheses code.
2774         Also cleaned up extraneous white spce, removing white space at the
2775         end of or that makes up a whole line.
2776
2777         * yarr/RegexJIT.cpp:
2778         (JSC::Yarr::RegexGenerator::GenerationState::GenerationState):
2779         (JSC::Yarr::RegexGenerator::GenerationState::incrementParenNestingLevel):
2780         (JSC::Yarr::RegexGenerator::GenerationState::decrementParenNestingLevel):
2781         (JSC::Yarr::RegexGenerator::GenerationState::addParenthesesTail):
2782         (JSC::Yarr::RegexGenerator::GenerationState::emitParenthesesTail):
2783         (JSC::Yarr::RegexGenerator::ParenthesesTail::ParenthesesTail):
2784         (JSC::Yarr::RegexGenerator::ParenthesesTail::setNextIteration):
2785         (JSC::Yarr::RegexGenerator::ParenthesesTail::generateCode):
2786         (JSC::Yarr::RegexGenerator::generateParenthesesSingle):
2787
2788 2010-12-09  Michael Saboff  <msaboff@apple.com>
2789
2790         Reviewed by Geoffrey Garen.
2791
2792         Addressed the "FIXME" issues in array sort for toString() methods that
2793         mutate the array in either size or contents.  The change is to mark
2794         the temporary array contents so that they are not garbage collected
2795         and to make sure the array is large enough to hold the contents
2796         of the sorted temporary vector.
2797         https://bugs.webkit.org/show_bug.cgi?id=50718
2798
2799         * runtime/Collector.cpp:
2800         (JSC::Heap::addTempSortVector):
2801         (JSC::Heap::removeTempSortVector):
2802         (JSC::Heap::markTempSortVectors):
2803         (JSC::Heap::markRoots):
2804         * runtime/Collector.h:
2805         * runtime/JSArray.cpp:
2806         (JSC::JSArray::sort):
2807         * runtime/JSValue.h:
2808
2809 2010-12-09  Michael Saboff  <msaboff@apple.com>
2810
2811         Reviewed by Darin Adler.
2812
2813         Changed setting of backtrack labels to not overwrite a prior
2814         label.  Where losing prior labe which then reverted back to 
2815         next character label.
2816         https://bugs.webkit.org/show_bug.cgi?id=50579
2817
2818         * yarr/RegexJIT.cpp:
2819         (JSC::Yarr::RegexGenerator::BacktrackDestination::setBacktrackToLabel):
2820
2821 2010-12-08  Gavin Barraclough  <barraclough@apple.com>
2822
2823         Reviewed by Sam Weinig.
2824
2825         Permit Character Class Escape in CharacterRange in Character Class.
2826         https://bugs.webkit.org/show_bug.cgi?id=50483
2827         https://bugs.webkit.org/show_bug.cgi?id=50538
2828         https://bugs.webkit.org/show_bug.cgi?id=50654
2829         https://bugs.webkit.org/show_bug.cgi?id=50646
2830
2831         We recently tightened up our spec conformance in generating syntax
2832         error in these cases, however testing in the wild has shown this
2833         to be problematic. This reverts the previous change in allowing
2834         class escapes (e.g. \d) in ranges in character classes ([]), but
2835         does retain some closer conformance to the spec in only allowing
2836         ranges that would be permitted per the grammar rules in the spec
2837         (e.g. in /[\d-a-z]/ "a-z" cannot be considered as a range).
2838
2839         * yarr/RegexParser.h:
2840         (JSC::Yarr::Parser::CharacterClassParserDelegate::atomPatternCharacter):
2841         (JSC::Yarr::Parser::CharacterClassParserDelegate::atomBuiltInCharacterClass):
2842         (JSC::Yarr::Parser::parse):
2843
2844 2010-12-08  Geoffrey Garen  <ggaren@apple.com>
2845
2846         Reviewed by Sam Weinig.
2847
2848         Try to fix crash-on-launch seen on Windows builder.
2849
2850         * wtf/OSAllocatorWin.cpp:
2851         (WTF::OSAllocator::release): Disabled an ASSERT, because it checks for
2852         a bug that hasn't been fixed yet.
2853
2854 2010-12-08  Geoffrey Garen  <ggaren@apple.com>
2855
2856         Try to fix Windows build.
2857
2858         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: Updated .def file.
2859
2860 2010-12-08  Geoffrey Garen  <ggaren@apple.com>
2861
2862         Try to fix Windows build.
2863
2864         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: Updated .def
2865         file to remove a symbol -- the next build failure will say which symbol
2866         to add back.
2867
2868 2010-12-08  Geoffrey Garen  <ggaren@apple.com>
2869
2870         Try to fix Windows build.
2871
2872         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: Updated .def file.
2873
2874 2010-12-08  Geoffrey Garen  <ggaren@apple.com>
2875
2876         Try to fix GTK Linux build.
2877
2878         * jit/ExecutableAllocator.cpp:
2879         (JSC::ExecutablePool::systemAlloc):
2880         * runtime/AlignedMemoryAllocator.h:
2881         (JSC::::AlignedMemoryAllocator): Updated for Usage enum moving to OSAllocator.
2882
2883 2010-12-07  Geoffrey Garen  <ggaren@apple.com>
2884
2885         Reviewed by Sam Weinig.
2886
2887         Migrated OS-specific allocation code from PageReservation and PageAllocation to OSAllocator
2888         https://bugs.webkit.org/show_bug.cgi?id=50653
2889
2890         * JavaScriptCore.exp: Updated for new function signature.
2891
2892         * interpreter/RegisterFile.h:
2893         (JSC::RegisterFile::RegisterFile):
2894         (JSC::RegisterFile::grow):
2895         * jit/ExecutableAllocatorFixedVMPool.cpp:
2896         (JSC::FixedVMPoolAllocator::reuse):
2897         (JSC::FixedVMPoolAllocator::FixedVMPoolAllocator): Removed checkAllocatedOkay.
2898         OSAllocator is now the central location for verifying that allocation succeeds.
2899         This allowed me to remove some complicating cross-platform cruft.
2900
2901         * runtime/AlignedMemoryAllocator.h:
2902         (JSC::::allocate): Updated for code motion.
2903
2904         * wtf/OSAllocator.h: Added Usage, writable, and executable parameters, to
2905         support VM features required by clients of PageAllocation and PageReservation.
2906
2907         * wtf/OSAllocatorPosix.cpp:
2908         (WTF::OSAllocator::reserve):
2909         (WTF::OSAllocator::reserveAndCommit):
2910         (WTF::OSAllocator::commit): Moved PageAllocation support for randomizing
2911         executable memory here.
2912
2913         * wtf/OSAllocatorSymbian.cpp:
2914         (WTF::OSAllocator::reserve):
2915         (WTF::OSAllocator::reserveAndCommit):
2916         (WTF::OSAllocator::commit): Updated for new function signatures.
2917
2918         * wtf/OSAllocatorWin.cpp:
2919         (WTF::protection):
2920         (WTF::OSAllocator::reserve):
2921         (WTF::OSAllocator::reserveAndCommit):
2922         (WTF::OSAllocator::commit):
2923         (WTF::OSAllocator::release): Updated for new function signatures. Moved
2924         some protection-related and WINCE-related code from PageAllocation here.
2925
2926         * wtf/PageAllocation.cpp: Nixed cross-platform lastError abstraction, since
2927         it was only used by checkAllocatedOkay, which is now gone.
2928
2929         * wtf/PageAllocation.h:
2930         (WTF::PageAllocation::allocate):
2931         (WTF::PageAllocation::allocateAligned):
2932         (WTF::PageAllocation::deallocate):
2933         (WTF::PageAllocation::isPowerOfTwo):
2934         (WTF::PageAllocation::systemAllocateAligned): Removed system* functions,
2935         and replaced calls to them with calls to OSAllocator.
2936
2937         * wtf/PageReservation.h:
2938         (WTF::PageReservation::commit):
2939         (WTF::PageReservation::decommit):
2940         (WTF::PageReservation::reserve):
2941         (WTF::PageReservation::deallocate):
2942         (WTF::PageReservation::PageReservation): Ditto. Added m_writable and
2943         m_executable because these flags are now required when committing memory.
2944
2945 2010-12-08  Chris Rogers  <crogers@google.com>
2946
2947         Reviewed by Kenneth Russell.
2948
2949         Add web audio files to mac port Xcode projects
2950         https://bugs.webkit.org/show_bug.cgi?id=50721
2951
2952         * JavaScriptCore.xcodeproj/project.pbxproj:
2953
2954 2010-12-08  Oliver Hunt  <oliver@apple.com>
2955
2956         Reviewed by Gavin Barraclough.
2957
2958         Marking the active global object re-enters through markConservatively
2959         https://bugs.webkit.org/show_bug.cgi?id=50711
2960
2961         draining of the MarkStack is not allowed to be re-entrant, we got away
2962         with this simply due to the logic in MarkStack::drain implicitly handling
2963         changes that could be triggered by the re-entry.
2964
2965         Just to be safe this patch removes the re-entry through markConservatively
2966         so we don't accidentally introduce such an issue in future.  I've also
2967         added an assertion to catch such errors.
2968
2969         * runtime/Collector.cpp:
2970         (JSC::Heap::markConservatively):
2971         (JSC::Heap::markCurrentThreadConservativelyInternal):
2972         (JSC::Heap::markOtherThreadConservatively):
2973         * runtime/JSArray.h:
2974         (JSC::MarkStack::drain):
2975         * runtime/MarkStack.h:
2976         (JSC::MarkStack::MarkStack):
2977
2978 2010-12-08  Chris Marrin  <cmarrin@apple.com>
2979
2980         Reviewed by Simon Fraser.
2981
2982         Share code between Mac (CA) and Windows (CACF) GraphicsLayer implementations
2983         https://bugs.webkit.org/show_bug.cgi?id=49388
2984
2985         Added a WTF_PLATFORM_CA flag. Set when platform is MAC or IOS or (WINDOWS AND CG)
2986         which was decided was the best way to identify a build with CoreAnimation
2987
2988         * wtf/Platform.h:
2989
2990 2010-12-07  Anders Carlsson  <andersca@apple.com>
2991
2992         Build fix follow up build fix.
2993
2994         * pcre/pcre_ucp_searchfuncs.cpp:
2995         (jsc_pcre_ucp_othercase):
2996
2997 2010-12-07  Anders Carlsson  <andersca@apple.com>
2998
2999         Reviewed by Darin Adler.
3000
3001         Fix clang++ build
3002         https://bugs.webkit.org/show_bug.cgi?id=50645
3003
3004         Explicitly cast offset to int.
3005
3006         * pcre/pcre_ucp_searchfuncs.cpp:
3007         (jsc_pcre_ucp_othercase):
3008
3009 2010-12-07  Kenneth Russell  <kbr@google.com>
3010
3011         Reviewed by David Levin.
3012
3013         Fix compilation of core web audio files on Windows
3014         https://bugs.webkit.org/show_bug.cgi?id=50603
3015
3016         Added log2 definition to MathExtras.h on Windows platform.
3017
3018         * wtf/MathExtras.h:
3019         (log2):
3020
3021 2010-12-07  Antti Koivisto  <antti@apple.com>
3022
3023         Reviewed by Gavin Barraclough.
3024
3025         https://bugs.webkit.org/show_bug.cgi?id=50412
3026         http://www.wunderground.com/US/CA/Hayward.html causes big memory spike during page loading 
3027         
3028         Creating a substring caused the original string be flattened if it was in the rope form. This could use
3029         significant amount of memory by reducing buffer sharing between strings.
3030         
3031         Add a rope specific substring function that constructs the substring by reusing the rope fibers
3032         instead of flattening the rope.
3033         
3034         No change observed in SunSpider.
3035
3036         * runtime/JSString.cpp:
3037         (JSC::JSString::substringFromRope):
3038         * runtime/JSString.h:
3039         (JSC::jsSubstring):
3040         * runtime/StringPrototype.cpp:
3041         (JSC::stringProtoFuncSubstr):
3042         (JSC::stringProtoFuncSubstring):
3043
3044 2010-12-06  Geoffrey Garen  <ggaren@apple.com>
3045
3046         Reviewed by Gavin Barraclough.
3047
3048         Simplified some ASLR-related code in PageAllocation/Reservation
3049         https://bugs.webkit.org/show_bug.cgi?id=50599
3050         
3051         Removed reserveAt, allocateAt, and friends, since they all existed to
3052         serve one feature: ASLR for executable memory on x86_64 on Mac. Moved
3053         ASLR code down into systemAllocate -- now, any time you allocate
3054         executable memory on a supporting platform, the memory's location is
3055         randomized.
3056
3057         * jit/ExecutableAllocatorFixedVMPool.cpp:
3058         (JSC::FixedVMPoolAllocator::FixedVMPoolAllocator): No need for the caller
3059         to randomize anything.
3060
3061         * wtf/PageAllocation.h:
3062         (WTF::PageAllocation::systemAllocate): Removed some *At() functions, and
3063         beefed up executable allocation with randomization.
3064
3065         * wtf/PageReservation.h:
3066         (WTF::PageReservation::systemReserve): Removed some *At() functions.
3067
3068 2010-12-06  Geoffrey Garen  <ggaren@apple.com>
3069
3070         Reviewed by Maciej Stachowiak.
3071
3072         reserveAndCommit doesn't commit on MADVISE_FREE_REUSE systems
3073         https://bugs.webkit.org/show_bug.cgi?id=50588
3074         
3075         * wtf/OSAllocatorPosix.cpp:
3076         (WTF::OSAllocator::reserve):
3077         (WTF::OSAllocator::reserveAndCommit):
3078         (WTF::OSAllocator::commit): Tightened up some comments. Changed
3079         reserveAndCommit to actually commit on MADVISE_FREE_REUSE systems.
3080
3081 2010-12-06  Patrick Gansterer  <paroga@webkit.org>
3082
3083         Reviewed by Andreas Kling.
3084
3085         [WINCE] Add build system
3086         https://bugs.webkit.org/show_bug.cgi?id=50522
3087
3088         * CMakeListsWinCE.txt: Added.
3089         * shell/CMakeListsWinCE.txt: Added.
3090         * wtf/CMakeListsWinCE.txt: Added.
3091
3092 2010-12-06  John Tantalo  <john.tantalo@gmail.com>
3093
3094         Reviewed by Geoffrey Garen.
3095
3096         jsc does not ignore shebang
3097         https://bugs.webkit.org/show_bug.cgi?id=49576
3098
3099         * jsc.cpp:
3100         (fillBufferWithContentsOfFile):
3101           - translate shebang into a valid JavaScript comment so the lexer ignores it
3102
3103 2010-12-05  Adam Roben  <aroben@apple.com>
3104
3105         Windows production build fix
3106
3107         Put spaces after trailing backslashes when setting
3108         %WebKitVSPropsRedirectionDir%. According to MSDN
3109         <http://msdn.microsoft.com/en-us/library/2kzfk8c7(v=VS.80).aspx>:
3110
3111            A backslash ( \ ) followed by a newline character is interpreted as
3112            a space in the command; use a backslash at the end of a line to
3113            continue a command onto the next line. NMAKE interprets the
3114            backslash literally if any other character, including a space or
3115            tab, follows the backslash.
3116
3117         * JavaScriptCore.vcproj/JavaScriptCore.make:
3118
3119 2010-12-04  Patrick Gansterer  <paroga@webkit.org>
3120
3121         Unreviewed, build fix after r69132.
3122
3123         * shell/CMakeLists.txt: Fix directory name (jsc -> shell).
3124
3125 2010-12-04  Xan Lopez  <xlopez@igalia.com>
3126
3127         Reviewed by Martin Robinson.
3128
3129         [GTK] Drop GdkDrawable usage, it's deprecated in GTK+3.x and we can use GdkWindow
3130         https://bugs.webkit.org/show_bug.cgi?id=50451
3131
3132         * wtf/gobject/GTypedefs.h: add GdkWindow defines.
3133
3134 2010-12-03  Gavin Barraclough  <barraclough@apple.com>
3135
3136         Rubber stamped by Oliver Hunt.
3137
3138         Bug 50509 - set* methods on MacroAssembler are awfully named.
3139
3140         Methods set32 and setTest32 compare 32-bit operands, and set a 32-bit results based on the comparison.
3141         set8 compares 32-bit operands, and sets an 8-bit result based on the comparison.
3142         setTest8 compares 8-bit operands, and sets a 32-bit result based on the comparison.
3143
3144         Rename to clarify.
3145
3146         set32 -> set32Compare32
3147         setTest32 -> set32Test32
3148         set8 -> set8Compare32
3149         setTest8 -> set32Test8
3150
3151         * assembler/MacroAssembler.h:
3152         (JSC::MacroAssembler::setPtr):
3153         * assembler/MacroAssemblerARM.h:
3154         (JSC::MacroAssemblerARM::set32Compare32):
3155         (JSC::MacroAssemblerARM::set8Compare32):
3156         (JSC::MacroAssemblerARM::set32Test32):
3157         (JSC::MacroAssemblerARM::set32Test8):
3158         * assembler/MacroAssemblerARMv7.h:
3159         (JSC::MacroAssemblerARMv7::set32Compare32):
3160         (JSC::MacroAssemblerARMv7::set8Compare32):
3161         (JSC::MacroAssemblerARMv7::set32Test32):
3162         (JSC::MacroAssemblerARMv7::set32Test8):
3163         * assembler/MacroAssemblerMIPS.h:
3164         (JSC::MacroAssemblerMIPS::set8Compare32):
3165         (JSC::MacroAssemblerMIPS::set32Compare32):
3166         (JSC::MacroAssemblerMIPS::set32Test8):
3167         (JSC::MacroAssemblerMIPS::set32Test32):
3168         * assembler/MacroAssemblerX86Common.h:
3169         (JSC::MacroAssemblerX86Common::set8Compare32):
3170         (JSC::MacroAssemblerX86Common::set32Compare32):
3171         (JSC::MacroAssemblerX86Common::set32Test8):
3172         (JSC::MacroAssemblerX86Common::set32Test32):
3173         * jit/JITOpcodes.cpp:
3174         (JSC::JIT::emit_op_eq):
3175         (JSC::JIT::emit_op_neq):
3176         (JSC::JIT::compileOpStrictEq):
3177         (JSC::JIT::emit_op_eq_null):
3178         (JSC::JIT::emit_op_neq_null):
3179         * jit/JITOpcodes32_64.cpp:
3180         (JSC::JIT::emit_op_eq):
3181         (JSC::JIT::emit_op_neq):
3182         (JSC::JIT::compileOpStrictEq):
3183         (JSC::JIT::emit_op_eq_null):
3184         (JSC::JIT::emit_op_neq_null):
3185
3186 2010-12-03  Oliver Hunt  <oliver@apple.com>
3187
3188         Reviewed by Geoff Garen.
3189
3190         Incorrect logic for returning memory at the end of linking.
3191         Reviewed by Geoff Garen.
3192
3193         At the end of linking we return any space at the end of the
3194         allocated executable region that was saved due to branch
3195         compaction.  This is currently by done by subtracting the
3196         different from the m_freePtr in the allocation pool.  This
3197         can be incorrect if your allocation was made from a new
3198         page that was not selected for subsequent allocations.
3199
3200         This patch corrects this behaviour by verifying that the
3201         memory being returned actually comes from the current
3202         allocation pool.
3203
3204         * assembler/LinkBuffer.h:
3205         (JSC::LinkBuffer::linkCode):
3206         * jit/ExecutableAllocator.h:
3207         (JSC::ExecutablePool::tryShrink):
3208
3209 2010-12-03  Michael Saboff  <msaboff@apple.com>
3210
3211         Reviewed by Gavin Barraclough
3212
3213         Changes to significantly reduce branches to branches in JIT'ed
3214         parentheses backtrack processing.  The changes include the following:
3215         - Taking the backtracking processing out of line and adding it as
3216           code at the end of the JIT'ed routine.
3217         - Allow backtracks to be direct via an indirect branch for an address
3218           pushed onto the stack.  If the use of an indirect branch is from a
3219           conditional jump, then we emit a trampoline at the end of the 
3220           routine.
3221         - Propogate backtracks instead of adding trampolines.  Backtracks are
3222           propogated to where they are used.  This change also eliminated 
3223           trampoline branch code that aren't used.
3224         - Added global expression state to keep track of parentheses tail
3225           code and indirect branches.
3226         Other changes made to support these changes.
3227         - Split invertOrCapture flag on Patterns to two separate flags.  Added
3228           getters for these flags.  Rippled these changes to both the JIT 
3229           and interpreter code.
3230         - Split BacktrackDestination out off TermGenerationState struct.
3231           This is done to hold references to a backtrack for later code
3232           generation.
3233         https://bugs.webkit.org/show_bug.cgi?id=50295
3234
3235         * assembler/ARMAssembler.h:
3236         (JSC::ARMAssembler::JmpDst::isSet):
3237         * assembler/ARMv7Assembler.h:
3238         (JSC::ARMv7Assembler::JmpDst::isSet):
3239         * assembler/AbstractMacroAssembler.h:
3240         (JSC::AbstractMacroAssembler::Label::isSet):
3241         (JSC::AbstractMacroAssembler::DataLabelPtr::isUsed):
3242         (JSC::AbstractMacroAssembler::DataLabelPtr::used):
3243         (JSC::AbstractMacroAssembler::JumpList::clear):
3244         * assembler/MIPSAssembler.h:
3245         (JSC::MIPSAssembler::JmpDst::isSet):
3246         * assembler/X86Assembler.h:
3247         (JSC::X86Assembler::JmpDst::isSet):
3248         * yarr/RegexCompiler.cpp:
3249         (JSC::Yarr::RegexPatternConstructor::atomParenthesesSubpatternBegin):
3250         (JSC::Yarr::RegexPatternConstructor::atomParentheticalAssertionBegin):
3251         (JSC::Yarr::RegexPatternConstructor::atomBackReference):
3252         (JSC::Yarr::RegexPatternConstructor::setupAlternativeBeginTerms):
3253         * yarr/RegexInterpreter.cpp:
3254         (JSC::Yarr::ByteCompiler::atomParenthesesOnceBegin):
3255         (JSC::Yarr::ByteCompiler::atomParenthesesTerminalBegin):
3256         (JSC::Yarr::ByteCompiler::atomParenthesesSubpatternBegin):
3257         (JSC::Yarr::ByteCompiler::atomParentheticalAssertionBegin):
3258         (JSC::Yarr::ByteCompiler::atomParentheticalAssertionEnd):
3259         (JSC::Yarr::ByteCompiler::atomParenthesesSubpatternEnd):
3260         (JSC::Yarr::ByteCompiler::atomParenthesesOnceEnd):
3261         (JSC::Yarr::ByteCompiler::atomParenthesesTerminalEnd):
3262         (JSC::Yarr::ByteCompiler::emitDisjunction):
3263         * yarr/RegexInterpreter.h:
3264         (JSC::Yarr::ByteTerm::ByteTerm):
3265         (JSC::Yarr::ByteTerm::BackReference):
3266         (JSC::Yarr::ByteTerm::invert):
3267         (JSC::Yarr::ByteTerm::capture):
3268         * yarr/RegexJIT.cpp:
3269         (JSC::Yarr::RegexGenerator::IndirectJumpEntry::IndirectJumpEntry):
3270         (JSC::Yarr::RegexGenerator::IndirectJumpEntry::addJump):
3271         (JSC::Yarr::RegexGenerator::GenerationState::GenerationState):
3272         (JSC::Yarr::RegexGenerator::GenerationState::addIndirectJumpEntry):
3273         (JSC::Yarr::RegexGenerator::GenerationState::emitIndirectJumpTable):
3274         (JSC::Yarr::RegexGenerator::GenerationState::addParenthesesTail):
3275         (JSC::Yarr::RegexGenerator::GenerationState::emitParenthesesTail):
3276         (JSC::Yarr::RegexGenerator::GenerationState::addJumpToNextInteration):
3277         (JSC::Yarr::RegexGenerator::GenerationState::addJumpsToNextInteration):
3278         (JSC::Yarr::RegexGenerator::GenerationState::addDataLabelToNextIteration):
3279         (JSC::Yarr::RegexGenerator::GenerationState::linkToNextIteration):
3280         (JSC::Yarr::RegexGenerator::BacktrackDestination::BacktrackDestination):
3281         (JSC::Yarr::RegexGenerator::BacktrackDestination::clear):
3282         (JSC::Yarr::RegexGenerator::BacktrackDestination::clearDataLabel):
3283         (JSC::Yarr::RegexGenerator::BacktrackDestination::haveDestination):
3284         (JSC::Yarr::RegexGenerator::BacktrackDestination::isStackOffset):
3285         (JSC::Yarr::RegexGenerator::BacktrackDestination::isLabel):
3286         (JSC::Yarr::RegexGenerator::BacktrackDestination::isJumpList):
3287         (JSC::Yarr::RegexGenerator::BacktrackDestination::haveDataLabel):
3288         (JSC::Yarr::RegexGenerator::BacktrackDestination::copyTarget):
3289         (JSC::Yarr::RegexGenerator::BacktrackDestination::copyTo):
3290         (JSC::Yarr::RegexGenerator::BacktrackDestination::addBacktrackJump):
3291         (JSC::Yarr::RegexGenerator::BacktrackDestination::setStackOffset):
3292         (JSC::Yarr::RegexGenerator::BacktrackDestination::setLabel):
3293         (JSC::Yarr::RegexGenerator::BacktrackDestination::setNextBacktrackLabel):
3294         (JSC::Yarr::RegexGenerator::BacktrackDestination::setBacktrackToLabel):
3295         (JSC::Yarr::RegexGenerator::BacktrackDestination::setBacktrackJumpList):
3296         (JSC::Yarr::RegexGenerator::BacktrackDestination::setBacktrackSourceLabel):
3297         (JSC::Yarr::RegexGenerator::BacktrackDestination::setDataLabel):
3298         (JSC::Yarr::RegexGenerator::BacktrackDestination::setSubDataLabelPtr):
3299         (JSC::Yarr::RegexGenerator::BacktrackDestination::linkToNextBacktrack):
3300         (JSC::Yarr::RegexGenerator::BacktrackDestination::getStackOffset):
3301         (JSC::Yarr::RegexGenerator::BacktrackDestination::getLabel):
3302         (JSC::Yarr::RegexGenerator::BacktrackDestination::getBacktrackJumps):
3303         (JSC::Yarr::RegexGenerator::BacktrackDestination::getDataLabel):
3304         (JSC::Yarr::RegexGenerator::BacktrackDestination::jumpToBacktrack):
3305         (JSC::Yarr::RegexGenerator::BacktrackDestination::linkDataLabelToHereIfExists):
3306         (JSC::Yarr::RegexGenerator::BacktrackDestination::plantJumpToBacktrackIfExists):
3307         (JSC::Yarr::RegexGenerator::BacktrackDestination::linkAlternativeBacktracks):
3308         (JSC::Yarr::RegexGenerator::BacktrackDestination::linkAlternativeBacktracksTo):
3309         (JSC::Yarr::RegexGenerator::TermGenerationState::TermGenerationState):
3310         (JSC::Yarr::RegexGenerator::TermGenerationState::resetAlternative):
3311         (JSC::Yarr::RegexGenerator::TermGenerationState::isLastAlternative):
3312         (JSC::Yarr::RegexGenerator::TermGenerationState::clearBacktrack):
3313         (JSC::Yarr::RegexGenerator::TermGenerationState::jumpToBacktrack):
3314         (JSC::Yarr::RegexGenerator::TermGenerationState::plantJumpToBacktrackIfExists):
3315         (JSC::Yarr::RegexGenerator::TermGenerationState::linkDataLabelToBacktrackIfExists):
3316         (JSC::Yarr::RegexGenerator::TermGenerationState::addBacktrackJump):
3317         (JSC::Yarr::RegexGenerator::TermGenerationState::setDataLabelPtr):
3318         (JSC::Yarr::RegexGenerator::TermGenerationState::setBackTrackStackOffset):
3319         (JSC::Yarr::RegexGenerator::TermGenerationState::setBacktrackLabel):
3320         (JSC::Yarr::RegexGenerator::TermGenerationState::linkAlternativeBacktracks):
3321         (JSC::Yarr::RegexGenerator::TermGenerationState::linkAlternativeBacktracksTo):
3322         (JSC::Yarr::RegexGenerator::TermGenerationState::setBacktrackLink):
3323         (JSC::Yarr::RegexGenerator::TermGenerationState::chainBacktracks):
3324         (JSC::Yarr::RegexGenerator::TermGenerationState::chainBacktrackJumps):
3325         (JSC::Yarr::RegexGenerator::TermGenerationState::getBacktrackDestination):
3326         (JSC::Yarr::RegexGenerator::TermGenerationState::propagateBacktrackingFrom):
3327         (JSC::Yarr::RegexGenerator::ParenthesesTail::ParenthesesTail):
3328         (JSC::Yarr::RegexGenerator::ParenthesesTail::processBacktracks):
3329         (JSC::Yarr::RegexGenerator::ParenthesesTail::setNextIteration):
3330         (JSC::Yarr::RegexGenerator::ParenthesesTail::generateCode):
3331         (JSC::Yarr::RegexGenerator::generateAssertionBOL):
3332         (JSC::Yarr::RegexGenerator::generateAssertionEOL):
3333         (JSC::Yarr::RegexGenerator::generateAssertionWordBoundary):
3334         (JSC::Yarr::RegexGenerator::generatePatternCharacterSingle):
3335         (JSC::Yarr::RegexGenerator::generatePatternCharacterPair):
3336         (JSC::Yarr::RegexGenerator::generatePatternCharacterFixed):
3337         (JSC::Yarr::RegexGenerator::generatePatternCharacterGreedy):
3338         (JSC::Yarr::RegexGenerator::generatePatternCharacterNonGreedy):
3339         (JSC::Yarr::RegexGenerator::generateCharacterClassSingle):
3340         (JSC::Yarr::RegexGenerator::generateCharacterClassFixed):
3341         (JSC::Yarr::RegexGenerator::generateCharacterClassGreedy):
3342         (JSC::Yarr::RegexGenerator::generateCharacterClassNonGreedy):
3343         (JSC::Yarr::RegexGenerator::generateParenthesesDisjunction):
3344         (JSC::Yarr::RegexGenerator::generateParenthesesSingle):
3345         (JSC::Yarr::RegexGenerator::generateParenthesesGreedyNoBacktrack):
3346         (JSC::Yarr::RegexGenerator::generateParentheticalAssertion):
3347         (JSC::Yarr::RegexGenerator::generateDisjunction):
3348         (JSC::Yarr::RegexGenerator::compile):
3349         * yarr/RegexPattern.h:
3350         (JSC::Yarr::PatternTerm::PatternTerm):
3351         (JSC::Yarr::PatternTerm::invert):
3352         (JSC::Yarr::PatternTerm::capture):
3353
3354 2010-12-03  Chris Rogers  <crogers@google.com>
3355
3356         Reviewed by Kenneth Russell.
3357
3358         First steps to adding web audio files to build systems
3359         https://bugs.webkit.org/show_bug.cgi?id=49952
3360
3361         * wtf/Complex.h:
3362
3363 2010-12-03  Patrick Gansterer  <paroga@webkit.org>
3364
3365         Reviewed by Andreas Kling.
3366
3367         Move StringWx.cpp into wtf directory
3368         https://bugs.webkit.org/show_bug.cgi?id=50060
3369
3370         * wtf/wx/StringWx.cpp: Renamed from WebCore/platform/text/wx/StringWx.cpp.
3371         (WTF::String::String):
3372
3373 2010-12-03  Patrick Gansterer  <paroga@webkit.org>
3374
3375         Reviewed by Andreas Kling.
3376
3377         Move StringBrew.cpp into wtf directory
3378         https://bugs.webkit.org/show_bug.cgi?id=50058
3379
3380         * wtf/brew/StringBrew.cpp: Renamed from WebCore/platform/text/brew/StringBrew.cpp.
3381         (WTF::String::String):
3382
3383 2010-12-03  Patrick Gansterer  <paroga@webkit.org>
3384
3385         Reviewed by Andreas Kling.
3386
3387         Move StringHaiku.cpp into wtf directory
3388         https://bugs.webkit.org/show_bug.cgi?id=50057
3389
3390         * wtf/haiku/StringHaiku.cpp: Renamed from WebCore/platform/text/haiku/StringHaiku.cpp.
3391         (WTF::String::String):
3392         (WTF::String::operator BString):
3393
3394 2010-12-02  Geoffrey Garen  <ggaren@apple.com>
3395
3396         Try to fix Windows build.
3397
3398         * runtime/GCActivityCallback.cpp:
3399         (JSC::DefaultGCActivityCallback::synchronize): Added a non-CF implementation.
3400
3401 2010-12-02  Geoffrey Garen  <ggaren@apple.com>
3402
3403         Reviewed by Gavin Barraclough.
3404
3405         Fixed <rdar://problem/8310571> CrashTracer: 60 crashes in Photo Booth at
3406         com.apple.JavaScriptCore: JSC::Heap::markRoots + 746
3407         
3408         * API/APIShims.h:
3409         (JSC::APIEntryShimWithoutLock::APIEntryShimWithoutLock): Call our new
3410         synchronize() function.
3411
3412         * runtime/Collector.cpp:
3413         (JSC::Heap::activityCallback):
3414         * runtime/Collector.h: Added an activityCallback() accessor, for the
3415         call above.
3416
3417         * runtime/GCActivityCallback.h:
3418         (JSC::GCActivityCallback::synchronize):
3419         * runtime/GCActivityCallbackCF.cpp:
3420         (JSC::DefaultGCActivityCallback::DefaultGCActivityCallback):
3421         (JSC::DefaultGCActivityCallback::~DefaultGCActivityCallback):
3422         (JSC::DefaultGCActivityCallback::operator()):
3423         (JSC::DefaultGCActivityCallback::synchronize): Track the run loop we're
3424         scheduled in. If we begin/resume execution within a new run loop, reschedule
3425         on it. This prevents a crash when using a lockless context group on
3426         multiple threads -- the crash would happen if the GC timer scheduled on
3427         thread A, then you continued execution on thread B, then the thread A
3428         timer fired.
3429
3430 2010-12-02  Darin Adler  <darin@apple.com>
3431
3432         * wtf/ASCIICType.h: Fix wrong type from last check-in.
3433
3434 2010-12-02  Darin Adler  <darin@apple.com>
3435
3436         Try to fix certain builds (Qt Windows).
3437
3438         * wtf/ASCIICType.h: Added an overload for unsigned because in obsolete
3439         versions of ICU, UChar32 can be a typedef for unsigned. Adding this
3440         overload should make us compatible with these old ICUs.
3441
3442 2010-12-02  Patrick Gansterer  <paroga@webkit.org>
3443
3444         Reviewed by Darin Adler.
3445
3446         Add AtomicString::fromUTF8
3447         https://bugs.webkit.org/show_bug.cgi?id=45594
3448
3449         Unicode::calculateStringHashFromUTF8 creates a StringHash out of UTF8 input data and
3450         calculates the required length for the UTF16 conversation in one step.
3451         This is then used in a specialized translator for the string table of AtomicString.
3452
3453         * JavaScriptCore.exp:
3454         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
3455         * wtf/text/AtomicString.cpp:
3456         (WTF::CStringTranslator::equal):
3457         (WTF::HashAndUTF8CharactersTranslator::hash):
3458         (WTF::HashAndUTF8CharactersTranslator::equal):
3459         (WTF::HashAndUTF8CharactersTranslator::translate):
3460         (WTF::AtomicString::add):
3461         (WTF::AtomicString::addSlowCase):
3462         (WTF::AtomicString::find):
3463         (WTF::AtomicString::fromUTF8):
3464         * wtf/text/AtomicString.h:
3465         * wtf/text/StringImpl.h:
3466         * wtf/text/WTFString.h:
3467         * wtf/unicode/UTF8.cpp:
3468         (WTF::Unicode::readUTF8Sequence):
3469         (WTF::Unicode::convertUTF8ToUTF16):
3470         (WTF::Unicode::calculateStringHashFromUTF8):
3471         (WTF::Unicode::equalUTF16WithUTF8):
3472         * wtf/unicode/UTF8.h:
3473
3474 2010-12-02  Geoffrey Garen  <ggaren@apple.com>
3475
3476         Reviewed by Sam Weinig.
3477
3478         Added a little hardening to OSAllocator.
3479
3480         * wtf/OSAllocatorPosix.cpp:
3481         (WTF::OSAllocator::release):
3482         * wtf/OSAllocatorWin.cpp:
3483         (WTF::OSAllocator::reserve):
3484         (WTF::OSAllocator::reserveAndCommit):
3485         (WTF::OSAllocator::commit):
3486         (WTF::OSAllocator::decommit):
3487         (WTF::OSAllocator::release): CRASH() if the OS's virtual memory system
3488         reports an error.
3489
3490 2010-12-02  Csaba Osztrogonác  <ossy@webkit.org>
3491
3492         Reviewed by Geoffrey Garen.
3493
3494         [Qt] Make platform managing of OSAllocator better than r73106
3495         https://bugs.webkit.org/show_bug.cgi?id=50385
3496
3497         * wtf/OSAllocatorPosix.cpp: Remove platform specific guard.
3498         * wtf/OSAllocatorSymbian.cpp: Remove platform specific guard.
3499         * wtf/OSAllocatorWin.cpp: Remove platform specific guard.
3500         * wtf/wtf.pri: Add the correct platform specific source file instead of all of them.
3501
3502 2010-12-02  Patrick Gansterer  <paroga@webkit.org>
3503
3504         Reviewed by Andreas Kling.
3505
3506         [WINCE] Use GetTickCount() for srand()
3507         https://bugs.webkit.org/show_bug.cgi?id=50338
3508
3509         time() is not a native function on WinCE, so use GetTickCount() instead.
3510
3511         * wtf/RandomNumberSeed.h:
3512   &nb