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