Windows build fix. Unreviewed.
[WebKit.git] / Source / JavaScriptCore / ChangeLog
1 2011-02-04  Jessie Berlin  <jberlin@apple.com>
2
3         Windows build fix. Unreviewed.
4
5         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreGenerated.make:
6
7 2011-02-04  Peter Varga  <pvarga@webkit.org>
8
9         Reviewed by Gavin Barraclough.
10
11         Replace PCRE with Yarr in WebCore
12         https://bugs.webkit.org/show_bug.cgi?id=53496
13
14         * JavaScriptCore.exp:
15         * JavaScriptCore.gyp/JavaScriptCore.gyp:
16         * JavaScriptCore.gypi:
17         * JavaScriptCore.pro:
18         * JavaScriptCore.xcodeproj/project.pbxproj:
19         * create_regex_tables:
20         * runtime/RegExp.cpp:
21         * wtf/Platform.h:
22         * yarr/Yarr.h:
23         * yarr/YarrJIT.cpp:
24         * yarr/YarrJIT.h:
25         * yarr/YarrParser.h:
26         * yarr/YarrPattern.h:
27         * yarr/YarrSyntaxChecker.h:
28         * yarr/yarr.pri: Added.
29
30 2011-02-04  Ilya Tikhonovsky  <loislo@chromium.org>
31
32         Unreviewed rollout two patches r77614 and r77612.
33
34         REGRESSION: Snow Leopard Intell Release anumber of failing tests.
35
36         * runtime/Heap.cpp:
37         (JSC::Heap::Heap):
38         (JSC::Heap::reset):
39         * runtime/Heap.h:
40         * runtime/MarkedSpace.cpp:
41         (JSC::MarkedSpace::allocate):
42         (JSC::MarkedSpace::sweep):
43         (JSC::MarkedSpace::reset):
44         * runtime/MarkedSpace.h:
45
46 2011-02-04  Geoffrey Garen  <ggaren@apple.com>
47
48         Try to fix 32bit build.
49
50         * runtime/Heap.cpp:
51         (JSC::Heap::reset): Use an explicit cast to avoid shortening warnings,
52         since 1.5 is double (64bit), and the result is size_t (32bit).
53
54 2011-02-03  Geoffrey Garen  <ggaren@apple.com>
55
56         Reviewed by Cameron Zwarich.
57
58         Changed MarkedSpace to delegate grow/shrink decisions to Heap
59         https://bugs.webkit.org/show_bug.cgi?id=53759
60         
61         SunSpider reports no change.
62         
63         * runtime/Heap.cpp:
64         (JSC::Heap::Heap):
65         (JSC::Heap::reset):
66         * runtime/Heap.h: Reorganized a few data members for better cache locality.
67         Added a grow policy.
68         
69         * runtime/MarkedSpace.cpp:
70         (JSC::MarkedSpace::allocate):
71         (JSC::MarkedSpace::sweep):
72         (JSC::MarkedSpace::reset): Don't shrink automatically. Instead, wait for
73         the heap to make an explicit sweep call.
74
75         * runtime/MarkedSpace.h:
76         (JSC::MarkedSpace::highWaterMark):
77         (JSC::MarkedSpace::setHighWaterMark): Use a watermark to determine how
78         many bytes to allocate before failing and giving the heap an opportunity
79         to collect garbage. This also means that we allocate blocks on demand,
80         instead of ahead of time.
81
82 2011-02-03  James Kozianski  <koz@chromium.org>
83
84         Reviewed by Dimitri Glazkov.
85
86         Add navigator.registerProtocolHandler behind a flag.
87         https://bugs.webkit.org/show_bug.cgi?id=52609
88
89         * Configurations/FeatureDefines.xcconfig:
90
91 2011-02-03  Geoffrey Garen  <ggaren@apple.com>
92
93         Reviewed by Oliver Hunt.
94
95         Not all blocks are freed when the heap is freed (counting is hard!)
96         https://bugs.webkit.org/show_bug.cgi?id=53732
97
98         * runtime/MarkedSpace.cpp:
99         (JSC::MarkedSpace::destroy): Freeing a block compacts the list, so just
100         keep freeing block 0 until there are no blocks left.
101
102 2011-02-03  Geoffrey Garen  <ggaren@apple.com>
103
104         Try to fix the Mac build.
105
106         * JavaScriptCore.xcodeproj/project.pbxproj: The new MarkedBlock.h header
107         needs to be private, not project, so other projects can include headers
108         that depend on it.
109
110 2011-02-03  Geoffrey Garen  <ggaren@apple.com>
111
112         Reviewed by Sam Weinig.
113
114         Start using MarkedBlock instead of CollectorBlock
115         https://bugs.webkit.org/show_bug.cgi?id=53693
116         
117         SunSpider reports no change.
118         
119         * runtime/MarkedBlock.h:
120         (JSC::MarkedBlock::blockFor):
121         (JSC::MarkedBlock::setMarked):
122         (JSC::MarkedBlock::isCellAligned):
123         (JSC::MarkedBlock::isPossibleCell): Updated for const-ness.
124
125         * runtime/MarkedSpace.cpp:
126         (JSC::MarkedSpace::allocateBlock):
127         (JSC::MarkedSpace::containsSlowCase):
128         (JSC::MarkedSpace::clearMarkBits): Updated for const-ness.
129
130         * runtime/MarkedSpace.h:
131         (JSC::CollectorHeap::collectorBlock):
132         (JSC::MarkedSpace::heap):
133         (JSC::MarkedSpace::isMarked):
134         (JSC::MarkedSpace::testAndSetMarked):
135         (JSC::MarkedSpace::setMarked):
136         (JSC::MarkedSpace::contains): Switched from CollectorBlock to MarkedBlock,
137         and deleted dead CollectorBlock-related code.
138
139 2011-02-03  Patrick Gansterer  <paroga@webkit.org>
140
141         Reviewed by Darin Adler.
142
143         Avoid strlen() in AtomicString::fromUTF8
144         https://bugs.webkit.org/show_bug.cgi?id=50516
145
146         Add an overload to calculateStringHashFromUTF8 to get
147         strlen() of the input data with only one call.
148
149         This change shows about 3% performance win on the xml-parser benchmark.
150
151         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
152         * wtf/text/AtomicString.cpp:
153         (WTF::AtomicString::fromUTF8):
154         * wtf/unicode/UTF8.cpp:
155         (WTF::Unicode::calculateStringHashAndLengthFromUTF8Internal):
156         (WTF::Unicode::calculateStringHashFromUTF8):
157         (WTF::Unicode::calculateStringHashAndLengthFromUTF8):
158         * wtf/unicode/UTF8.h:
159
160 2011-02-02  Gavin Barraclough  <barraclough@apple.com>
161
162         Windows build fix.
163
164         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
165
166 2011-02-02  Gavin Barraclough  <barraclough@apple.com>
167
168         oops, build fix!
169
170         * wtf/Assertions.cpp:
171
172 2011-02-02  Gavin Barraclough  <barraclough@apple.com>
173
174         Reviewed by Sam Weinig.
175
176         Bug 53650 - Add a BACKTRACE macro to Assertions.h
177
178         Add a BACKTRACE macro to Assertions.h, which will print a backtrace on
179         debug Mac builds, make CRASH (and thus ASSERT) automatically call this.
180
181         * JavaScriptCore.exp:
182         * wtf/Assertions.cpp:
183         * wtf/Assertions.h:
184
185 2011-02-02  Michael Saboff  <msaboff@apple.com>
186
187         Reviewed by Gavin Barraclough.
188
189         Improper backtrack of nested non-capturing greedy paren to prior paren
190         https://bugs.webkit.org/show_bug.cgi?id=53261
191
192         A paren that follows a non-capturing greedy paren nested within a 
193         non-capturing fixed paren was back tracking to the last paren 
194         processed instead of the immediately prior paren.
195         Refactored default backtracking of parens to prior paren to work for
196         both nested (within) and immediately prior (after) parens.
197
198         * yarr/YarrJIT.cpp:
199         (JSC::Yarr::YarrGenerator::GenerationState::addParenthesesTail):
200         (JSC::Yarr::YarrGenerator::TermGenerationState::TermGenerationState):
201         (JSC::Yarr::YarrGenerator::TermGenerationState::setJumpListToPriorParen):
202         (JSC::Yarr::YarrGenerator::TermGenerationState::getJumpListToPriorParen):
203         (JSC::Yarr::YarrGenerator::ParenthesesTail::ParenthesesTail):
204         (JSC::Yarr::YarrGenerator::ParenthesesTail::generateCode):
205         (JSC::Yarr::YarrGenerator::generateParenthesesDisjunction):
206         (JSC::Yarr::YarrGenerator::generateParenthesesSingle):
207         (JSC::Yarr::YarrGenerator::generateDisjunction):
208
209 2011-02-02  Jeff Miller  <jeffm@apple.com>
210
211         Reviewed by Darin Adler and Steve Falkenburg.
212
213         Add DerivedSources.make to some Visual Studio projects
214         https://bugs.webkit.org/show_bug.cgi?id=53607
215
216         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreGenerated.vcproj: Add DerivedSources.make.
217
218 2011-02-02  Steve Lacey  <sjl@chromium.org>
219
220         Reviewed by Eric Carlson.
221
222         Implement basic media statistics on media elements.
223         https://bugs.webkit.org/show_bug.cgi?id=53322
224
225         * Configurations/FeatureDefines.xcconfig:
226
227 2011-02-02  Kevin Ollivier  <kevino@theolliviers.com>
228
229         [wx] Build fixes for wxWebKit.
230
231         * wtf/wx/StringWx.cpp:
232         (WTF::String::String):
233
234 2011-02-01  Geoffrey Garen  <ggaren@apple.com>
235
236         Reviewed by Sam Weinig.
237
238         A little more Heap refactoring
239         https://bugs.webkit.org/show_bug.cgi?id=53577
240         
241         SunSpider reports no change.
242         
243         Split out MarkedBlock into its own file / class.
244         
245         Did the following renames:
246             isCellMarked => isMarked
247             checkMarkCell => testAndSetMarked
248             markCell => setMarked
249             cellOffset => cellNumber
250             collectorBlock => blockFor
251
252         * Android.mk:
253         * CMakeLists.txt:
254         * GNUmakefile.am:
255         * JavaScriptCore.gypi:
256         * JavaScriptCore.pro:
257         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
258         * JavaScriptCore.xcodeproj/project.pbxproj:
259         * runtime/Heap.cpp:
260         (JSC::WeakGCHandlePool::update):
261         * runtime/Heap.h:
262         (JSC::Heap::isMarked):
263         (JSC::Heap::testAndSetMarked):
264         (JSC::Heap::setMarked):
265         * runtime/JSArray.h:
266         (JSC::MarkStack::markChildren):
267         (JSC::MarkStack::drain):
268         * runtime/JSCell.h:
269         (JSC::JSCell::MarkStack::internalAppend):
270         * runtime/MarkedBlock.cpp: Added.
271         * runtime/MarkedBlock.h: Added.
272         (JSC::MarkedBlock::blockFor):
273         (JSC::MarkedBlock::cellNumber):
274         (JSC::MarkedBlock::isMarked):
275         (JSC::MarkedBlock::testAndSetMarked):
276         (JSC::MarkedBlock::setMarked):
277         (JSC::MarkedBlock::isCellAligned):
278         (JSC::MarkedBlock::isPossibleCell):
279         * runtime/MarkedSpace.h:
280         (JSC::MarkedSpace::isMarked):
281         (JSC::MarkedSpace::testAndSetMarked):
282         (JSC::MarkedSpace::setMarked):
283         * runtime/SmallStrings.cpp:
284         (JSC::isMarked):
285         * runtime/WeakGCMap.h:
286         (JSC::WeakGCMap::isValid):
287         (JSC::::get):
288         (JSC::::take):
289         (JSC::::set):
290
291 2011-02-02  Sam Weinig  <sam@webkit.org>
292
293         Fix windows clean build.
294
295         * DerivedSources.make:
296
297 2011-02-02  Alejandro G. Castro  <alex@igalia.com>
298
299         Reviewed by Martin Robinson.
300
301         [GTK] Fix dist compilation
302         https://bugs.webkit.org/show_bug.cgi?id=53579
303
304         * GNUmakefile.am: Added WriteBarrier.h to the sources, it was
305         added in r77151
306
307 2011-02-01  Sheriff Bot  <webkit.review.bot@gmail.com>
308
309         Unreviewed, rolling out r77297.
310         http://trac.webkit.org/changeset/77297
311         https://bugs.webkit.org/show_bug.cgi?id=53538
312
313         caused leopard crashes (Requested by paroga on #webkit).
314
315         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
316         * wtf/text/AtomicString.cpp:
317         (WTF::AtomicString::fromUTF8):
318         * wtf/unicode/UTF8.cpp:
319         (WTF::Unicode::calculateStringHashFromUTF8):
320         * wtf/unicode/UTF8.h:
321
322 2011-02-01  Sam Weinig  <sam@webkit.org>
323
324         Fix Mac production builds.
325
326         * JavaScriptCore.xcodeproj/project.pbxproj:
327
328 2011-02-01  Sam Weinig  <sam@webkit.org>
329
330         Try to fix the windows build.
331
332         * DerivedSources.make:
333
334 2011-02-01  Patrick Gansterer  <paroga@webkit.org>
335
336         Reviewed by Darin Adler.
337
338         Avoid strlen() in AtomicString::fromUTF8
339         https://bugs.webkit.org/show_bug.cgi?id=50516
340
341         Add an overload to calculateStringHashFromUTF8 to get
342         strlen() of the input data with only one call.
343
344         This change shows about 3% performance win on the xml-parser benchmark.
345
346         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
347         * wtf/text/AtomicString.cpp:
348         (WTF::AtomicString::fromUTF8):
349         * wtf/unicode/UTF8.cpp:
350         (WTF::Unicode::calculateStringHashAndLengthFromUTF8Internal):
351         (WTF::Unicode::calculateStringHashFromUTF8):
352         (WTF::Unicode::calculateStringHashAndLengthFromUTF8):
353         * wtf/unicode/UTF8.h:
354
355 2011-02-01  Sam Weinig  <sam@webkit.org>
356
357         Reviewed by Beth Dakin.
358
359         Part 2 for <rdar://problem/8492788>
360         Adopt WKScrollbarPainterController
361
362         Use header detection to define scrollbar painting controller #define.
363
364         * DerivedSources.make:
365         * JavaScriptCore.xcodeproj/project.pbxproj:
366
367 2011-02-01  Geoffrey Garen  <ggaren@apple.com>
368
369         Reviewed by Oliver Hunt.
370
371         Refactor JSGlobalObject-related tear-down
372         https://bugs.webkit.org/show_bug.cgi?id=53478
373         
374         While investigating crashes caused by r77082, I noticed some strange
375         destructor-time behaviors. This patch makes them less strange.
376
377         * bytecode/CodeBlock.cpp:
378         (JSC::CodeBlock::CodeBlock):
379         (JSC::CodeBlock::markAggregate):
380         * bytecode/CodeBlock.h:
381         (JSC::CodeBlock::globalObject):
382         (JSC::GlobalCodeBlock::GlobalCodeBlock):
383         (JSC::GlobalCodeBlock::~GlobalCodeBlock): Store the set of global code
384         blocks on the Heap, instead of on independent global objects. The heap
385         is guaranteed to outlast any GC-owned data structure. The heap is also
386         a natural place to store objects that needs out-of-band marking, since
387         the heap is responsible for marking all roots.
388
389         * runtime/Heap.cpp:
390         (JSC::Heap::markRoots):
391         (JSC::Heap::globalObjectCount):
392         (JSC::Heap::protectedGlobalObjectCount):
393         * runtime/Heap.h:
394         (JSC::Heap::codeBlocks):
395         * runtime/JSGlobalData.cpp:
396         (JSC::JSGlobalData::JSGlobalData):
397         * runtime/JSGlobalData.h:
398         * runtime/JSGlobalObject.cpp:
399         (JSC::JSGlobalObject::~JSGlobalObject):
400         (JSC::JSGlobalObject::init):
401         (JSC::JSGlobalObject::markChildren):
402         * runtime/JSGlobalObject.h:
403         * runtime/MarkedSpace.cpp: Store the set of global objects in a weak map
404         owned by JSGlobalData, instead of an instrusive circular linked list.
405         This is simpler, and it avoids destructor-time access between garbage
406         collected objects, which is hard to get right.
407
408         (JSC::MarkedSpace::destroy): Make sure to clear mark bits before tearing
409         everything down. Otherwise, weak data structures will incorrectly report
410         that objects pending destruction are still alive.
411
412 2011-02-01  Geoffrey Garen  <ggaren@apple.com>
413
414         Reviewed by Oliver Hunt.
415
416         REGRESSION(77082): GC-related crashes seen: on WebKit2 bot; on GTK 32bit
417         bot; loading trac pages; typing in search field
418         https://bugs.webkit.org/show_bug.cgi?id=53519
419         
420         The crashes were all caused by failure to run an object's destructor.
421
422         * runtime/CollectorHeapIterator.h:
423         (JSC::ObjectIterator::ObjectIterator): Don't skip forward upon
424         construction. The iterator class used to do that when it was designed
425         for prior-to-beginning initialization. I forgot to remove this line
426         of code when I changed the iterator to normal initialization.
427         
428         Skipping forward upon construction was causing the heap to skip running
429         the destructor for the very first object in a block when destroying the
430         block. This usually did not crash, since block destruction is rare and
431         most objects have pretty trivial destructors. However, in the rare case
432         when the heap would destroy a block whose first object was a global
433         object or a DOM node, BOOM.
434
435 2011-01-31  Oliver Hunt  <oliver@apple.com>
436
437         Reviewed by Geoffrey Garen.
438
439         Update JSObject storage for new marking API
440         https://bugs.webkit.org/show_bug.cgi?id=53467
441
442         JSObject no longer uses EncodedJSValue for its property storage.
443         This produces a stream of mechanical changes to PropertySlot and
444         anonymous storage APIs.
445
446         * JavaScriptCore.exp:
447         * runtime/ArrayPrototype.cpp:
448         (JSC::ArrayPrototype::ArrayPrototype):
449         * runtime/BooleanConstructor.cpp:
450         (JSC::constructBoolean):
451         (JSC::constructBooleanFromImmediateBoolean):
452         * runtime/BooleanObject.cpp:
453         (JSC::BooleanObject::BooleanObject):
454         * runtime/BooleanObject.h:
455         * runtime/BooleanPrototype.cpp:
456         (JSC::BooleanPrototype::BooleanPrototype):
457         * runtime/DateInstance.cpp:
458         (JSC::DateInstance::DateInstance):
459         * runtime/DatePrototype.cpp:
460         (JSC::DatePrototype::DatePrototype):
461         * runtime/JSActivation.cpp:
462         (JSC::JSActivation::getOwnPropertySlot):
463         * runtime/JSArray.cpp:
464         (JSC::JSArray::getOwnPropertySlot):
465         * runtime/JSFunction.cpp:
466         (JSC::JSFunction::getOwnPropertySlot):
467         * runtime/JSGlobalObject.h:
468         (JSC::JSGlobalObject::JSGlobalObject):
469         * runtime/JSObject.cpp:
470         (JSC::JSObject::fillGetterPropertySlot):
471         * runtime/JSObject.h:
472         (JSC::JSObject::getDirectLocation):
473         (JSC::JSObject::offsetForLocation):
474         (JSC::JSObject::putAnonymousValue):
475         (JSC::JSObject::clearAnonymousValue):
476         (JSC::JSObject::getAnonymousValue):
477         (JSC::JSObject::putThisToAnonymousValue):
478         (JSC::JSObject::locationForOffset):
479         (JSC::JSObject::inlineGetOwnPropertySlot):
480         * runtime/JSObjectWithGlobalObject.cpp:
481         (JSC::JSObjectWithGlobalObject::JSObjectWithGlobalObject):
482         * runtime/JSWrapperObject.h:
483         (JSC::JSWrapperObject::JSWrapperObject):
484         (JSC::JSWrapperObject::setInternalValue):
485         * runtime/Lookup.cpp:
486         (JSC::setUpStaticFunctionSlot):
487         * runtime/NumberConstructor.cpp:
488         (JSC::constructWithNumberConstructor):
489         * runtime/NumberObject.cpp:
490         (JSC::NumberObject::NumberObject):
491         (JSC::constructNumber):
492         * runtime/NumberObject.h:
493         * runtime/NumberPrototype.cpp:
494         (JSC::NumberPrototype::NumberPrototype):
495         * runtime/PropertySlot.h:
496         (JSC::PropertySlot::getValue):
497         (JSC::PropertySlot::setValue):
498         (JSC::PropertySlot::setRegisterSlot):
499         * runtime/StringObject.cpp:
500         (JSC::StringObject::StringObject):
501         * runtime/StringPrototype.cpp:
502         (JSC::StringPrototype::StringPrototype):
503         * runtime/WriteBarrier.h:
504         (JSC::WriteBarrierBase::setWithoutWriteBarrier):
505
506 2011-02-01  Daniel Bates  <dbates@rim.com>
507
508         Reviewed by Antonio Gomes.
509
510         Modify RandomNumberSeed.h to use USE(MERSENNE_TWISTER_19937)
511         https://bugs.webkit.org/show_bug.cgi?id=53506
512
513         Currently, use of the Mersenne Twister pseudorandom number generator
514         is hardcoded to the Windows CE port. With the passing of bug #53253,
515         we can generalize support for this PRNG to all ports that use srand(3)
516         and rand(3), including Windows CE.
517
518         * wtf/RandomNumberSeed.h:
519         (WTF::initializeRandomNumberGenerator):
520
521 2011-02-01  Dave Tapuska  <dtapuska@rim.com>
522
523         Reviewed by Gavin Barraclough.
524
525         MacroAssemblerARM would generate code that did 32bit loads
526         on addresses that were not aligned. More specifically it would
527         generate a ldr r8,[r1, #7] which isn't valid on ARMv5 and lower.
528         The intended instruction really is ldrb r8,[r1, #7]; ensure we
529         call load8 instead of load32.
530
531         https://bugs.webkit.org/show_bug.cgi?id=46095
532
533         * assembler/MacroAssemblerARM.h:
534         (JSC::MacroAssemblerARM::set32Test32):
535         (JSC::MacroAssemblerARM::set32Test8):
536
537 2011-02-01  Darin Fisher  <darin@chromium.org>
538
539         Reviewed by Eric Seidel.
540
541         Fix some Visual Studio compiler warnings.
542         https://bugs.webkit.org/show_bug.cgi?id=53476
543
544         * wtf/MathExtras.h:
545         (clampToInteger):
546         (clampToPositiveInteger):
547         * wtf/ThreadingWin.cpp:
548         (WTF::absoluteTimeToWaitTimeoutInterval):
549
550 2011-01-31  Oliver Hunt  <oliver@apple.com>
551
552         Reviewed by Sam Weinig.
553
554         Bogus callframe during stack unwinding
555         https://bugs.webkit.org/show_bug.cgi?id=53454
556
557         Trying to access a callframe's globalData after destroying its
558         ScopeChain is not a good thing.  While we could access the
559         globalData directly through the (known valid) scopechain we're
560         holding on to, it feels fragile.  Instead we push the valid
561         ScopeChain onto the callframe again to ensure that the callframe
562         itself remains valid.
563
564         * interpreter/Interpreter.cpp:
565         (JSC::Interpreter::unwindCallFrame):
566
567 2011-01-31  Michael Saboff  <msaboff@apple.com>
568
569         Reviewed by Geoffrey Garen.
570
571         Potentially Unsafe HashSet of RuntimeObject* in RootObject definition
572         https://bugs.webkit.org/show_bug.cgi?id=53271
573
574         Reapplying this change again.
575         Changed isValid() to use .get() as a result of change r77151.
576
577         Added new isValid() methods to check if a contained object in
578         a WeakGCMap is valid when using an unchecked iterator.
579
580         * runtime/WeakGCMap.h:
581         (JSC::WeakGCMap::isValid):
582
583 2011-01-31  Oliver Hunt  <oliver@apple.com>
584
585         Convert markstack to a slot visitor API
586         https://bugs.webkit.org/show_bug.cgi?id=53219
587
588         rolling r77098, r77099, r77100, r77109, and
589         r77111 back in, along with a few more Qt fix attempts.
590
591         * API/JSCallbackObject.h:
592         (JSC::JSCallbackObjectData::setPrivateProperty):
593         (JSC::JSCallbackObjectData::JSPrivatePropertyMap::getPrivateProperty):
594         (JSC::JSCallbackObjectData::JSPrivatePropertyMap::setPrivateProperty):
595         (JSC::JSCallbackObjectData::JSPrivatePropertyMap::markChildren):
596         (JSC::JSCallbackObject::setPrivateProperty):
597         * API/JSCallbackObjectFunctions.h:
598         (JSC::::put):
599         (JSC::::staticFunctionGetter):
600         * API/JSObjectRef.cpp:
601         (JSObjectMakeConstructor):
602         (JSObjectSetPrivateProperty):
603         * API/JSWeakObjectMapRefInternal.h:
604         * JavaScriptCore.exp:
605         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
606         * JavaScriptCore.xcodeproj/project.pbxproj:
607         * bytecode/CodeBlock.cpp:
608         (JSC::CodeBlock::markAggregate):
609         * bytecode/CodeBlock.h:
610         (JSC::CodeBlock::globalObject):
611         * bytecompiler/BytecodeGenerator.cpp:
612         (JSC::BytecodeGenerator::BytecodeGenerator):
613         (JSC::BytecodeGenerator::emitJumpIfNotFunctionCall):
614         (JSC::BytecodeGenerator::emitJumpIfNotFunctionApply):
615         (JSC::BytecodeGenerator::findScopedProperty):
616         * debugger/Debugger.cpp:
617         (JSC::evaluateInGlobalCallFrame):
618         * debugger/DebuggerActivation.cpp:
619         (JSC::DebuggerActivation::DebuggerActivation):
620         (JSC::DebuggerActivation::markChildren):
621         * debugger/DebuggerActivation.h:
622         * debugger/DebuggerCallFrame.cpp:
623         (JSC::DebuggerCallFrame::evaluate):
624         * interpreter/CallFrame.h:
625         (JSC::ExecState::exception):
626         * interpreter/Interpreter.cpp:
627         (JSC::Interpreter::resolve):
628         (JSC::Interpreter::resolveSkip):
629         (JSC::Interpreter::resolveGlobal):
630         (JSC::Interpreter::resolveGlobalDynamic):
631         (JSC::Interpreter::resolveBaseAndProperty):
632         (JSC::Interpreter::unwindCallFrame):
633         (JSC::appendSourceToError):
634         (JSC::Interpreter::execute):
635         (JSC::Interpreter::tryCacheGetByID):
636         (JSC::Interpreter::privateExecute):
637         * jit/JITStubs.cpp:
638         (JSC::JITThunks::tryCacheGetByID):
639         (JSC::DEFINE_STUB_FUNCTION):
640         * jsc.cpp:
641         (GlobalObject::GlobalObject):
642         * runtime/ArgList.cpp:
643         (JSC::MarkedArgumentBuffer::markLists):
644         * runtime/Arguments.cpp:
645         (JSC::Arguments::markChildren):
646         (JSC::Arguments::getOwnPropertySlot):
647         (JSC::Arguments::getOwnPropertyDescriptor):
648         (JSC::Arguments::put):
649         * runtime/Arguments.h:
650         (JSC::Arguments::setActivation):
651         (JSC::Arguments::Arguments):
652         * runtime/ArrayConstructor.cpp:
653         (JSC::ArrayConstructor::ArrayConstructor):
654         (JSC::constructArrayWithSizeQuirk):
655         * runtime/ArrayPrototype.cpp:
656         (JSC::arrayProtoFuncSplice):
657         * runtime/BatchedTransitionOptimizer.h:
658         (JSC::BatchedTransitionOptimizer::BatchedTransitionOptimizer):
659         (JSC::BatchedTransitionOptimizer::~BatchedTransitionOptimizer):
660         * runtime/BooleanConstructor.cpp:
661         (JSC::BooleanConstructor::BooleanConstructor):
662         (JSC::constructBoolean):
663         (JSC::constructBooleanFromImmediateBoolean):
664         * runtime/BooleanPrototype.cpp:
665         (JSC::BooleanPrototype::BooleanPrototype):
666         * runtime/ConservativeSet.cpp:
667         (JSC::ConservativeSet::grow):
668         * runtime/ConservativeSet.h:
669         (JSC::ConservativeSet::~ConservativeSet):
670         (JSC::ConservativeSet::mark):
671         * runtime/DateConstructor.cpp:
672         (JSC::DateConstructor::DateConstructor):
673         * runtime/DateInstance.cpp:
674         (JSC::DateInstance::DateInstance):
675         * runtime/DatePrototype.cpp:
676         (JSC::dateProtoFuncSetTime):
677         (JSC::setNewValueFromTimeArgs):
678         (JSC::setNewValueFromDateArgs):
679         (JSC::dateProtoFuncSetYear):
680         * runtime/ErrorConstructor.cpp:
681         (JSC::ErrorConstructor::ErrorConstructor):
682         * runtime/ErrorInstance.cpp:
683         (JSC::ErrorInstance::ErrorInstance):
684         * runtime/ErrorPrototype.cpp:
685         (JSC::ErrorPrototype::ErrorPrototype):
686         * runtime/FunctionConstructor.cpp:
687         (JSC::FunctionConstructor::FunctionConstructor):
688         * runtime/FunctionPrototype.cpp:
689         (JSC::FunctionPrototype::FunctionPrototype):
690         * runtime/GetterSetter.cpp:
691         (JSC::GetterSetter::markChildren):
692         * runtime/GetterSetter.h:
693         (JSC::GetterSetter::GetterSetter):
694         (JSC::GetterSetter::getter):
695         (JSC::GetterSetter::setGetter):
696         (JSC::GetterSetter::setter):
697         (JSC::GetterSetter::setSetter):
698         * runtime/GlobalEvalFunction.cpp:
699         (JSC::GlobalEvalFunction::GlobalEvalFunction):
700         (JSC::GlobalEvalFunction::markChildren):
701         * runtime/GlobalEvalFunction.h:
702         (JSC::GlobalEvalFunction::cachedGlobalObject):
703         * runtime/Heap.cpp:
704         (JSC::Heap::markProtectedObjects):
705         (JSC::Heap::markTempSortVectors):
706         (JSC::Heap::markRoots):
707         * runtime/InternalFunction.cpp:
708         (JSC::InternalFunction::InternalFunction):
709         * runtime/JSAPIValueWrapper.h:
710         (JSC::JSAPIValueWrapper::value):
711         (JSC::JSAPIValueWrapper::JSAPIValueWrapper):
712         * runtime/JSActivation.cpp:
713         (JSC::JSActivation::markChildren):
714         (JSC::JSActivation::put):
715         * runtime/JSArray.cpp:
716         (JSC::JSArray::JSArray):
717         (JSC::JSArray::getOwnPropertySlot):
718         (JSC::JSArray::getOwnPropertyDescriptor):
719         (JSC::JSArray::put):
720         (JSC::JSArray::putSlowCase):
721         (JSC::JSArray::deleteProperty):
722         (JSC::JSArray::increaseVectorLength):
723         (JSC::JSArray::setLength):
724         (JSC::JSArray::pop):
725         (JSC::JSArray::push):
726         (JSC::JSArray::unshiftCount):
727         (JSC::JSArray::sort):
728         (JSC::JSArray::fillArgList):
729         (JSC::JSArray::copyToRegisters):
730         (JSC::JSArray::compactForSorting):
731         * runtime/JSArray.h:
732         (JSC::JSArray::getIndex):
733         (JSC::JSArray::setIndex):
734         (JSC::JSArray::uncheckedSetIndex):
735         (JSC::JSArray::markChildrenDirect):
736         * runtime/JSByteArray.cpp:
737         (JSC::JSByteArray::JSByteArray):
738         * runtime/JSCell.h:
739         (JSC::JSCell::MarkStack::append):
740         (JSC::JSCell::MarkStack::internalAppend):
741         (JSC::JSCell::MarkStack::deprecatedAppend):
742         * runtime/JSFunction.cpp:
743         (JSC::JSFunction::JSFunction):
744         (JSC::JSFunction::getOwnPropertySlot):
745         * runtime/JSGlobalData.h:
746         * runtime/JSGlobalObject.cpp:
747         (JSC::markIfNeeded):
748         (JSC::JSGlobalObject::reset):
749         (JSC::JSGlobalObject::resetPrototype):
750         (JSC::JSGlobalObject::markChildren):
751         * runtime/JSGlobalObject.h:
752         (JSC::JSGlobalObject::JSGlobalObjectData::JSGlobalObjectData):
753         (JSC::JSGlobalObject::regExpConstructor):
754         (JSC::JSGlobalObject::errorConstructor):
755         (JSC::JSGlobalObject::evalErrorConstructor):
756         (JSC::JSGlobalObject::rangeErrorConstructor):
757         (JSC::JSGlobalObject::referenceErrorConstructor):
758         (JSC::JSGlobalObject::syntaxErrorConstructor):
759         (JSC::JSGlobalObject::typeErrorConstructor):
760         (JSC::JSGlobalObject::URIErrorConstructor):
761         (JSC::JSGlobalObject::evalFunction):
762         (JSC::JSGlobalObject::objectPrototype):
763         (JSC::JSGlobalObject::functionPrototype):
764         (JSC::JSGlobalObject::arrayPrototype):
765         (JSC::JSGlobalObject::booleanPrototype):
766         (JSC::JSGlobalObject::stringPrototype):
767         (JSC::JSGlobalObject::numberPrototype):
768         (JSC::JSGlobalObject::datePrototype):
769         (JSC::JSGlobalObject::regExpPrototype):
770         (JSC::JSGlobalObject::methodCallDummy):
771         (JSC::Structure::prototypeForLookup):
772         (JSC::constructArray):
773         * runtime/JSONObject.cpp:
774         (JSC::Stringifier::Holder::object):
775         (JSC::Stringifier::Holder::objectSlot):
776         (JSC::Stringifier::markAggregate):
777         (JSC::Stringifier::stringify):
778         (JSC::Stringifier::Holder::appendNextProperty):
779         (JSC::Walker::callReviver):
780         (JSC::Walker::walk):
781         * runtime/JSObject.cpp:
782         (JSC::JSObject::defineGetter):
783         (JSC::JSObject::defineSetter):
784         (JSC::JSObject::removeDirect):
785         (JSC::JSObject::putDirectFunction):
786         (JSC::JSObject::putDirectFunctionWithoutTransition):
787         (JSC::putDescriptor):
788         (JSC::JSObject::defineOwnProperty):
789         * runtime/JSObject.h:
790         (JSC::JSObject::getDirectOffset):
791         (JSC::JSObject::putDirectOffset):
792         (JSC::JSObject::putUndefinedAtDirectOffset):
793         (JSC::JSObject::flattenDictionaryObject):
794         (JSC::JSObject::putDirectInternal):
795         (JSC::JSObject::putDirect):
796         (JSC::JSObject::putDirectFunction):
797         (JSC::JSObject::putDirectWithoutTransition):
798         (JSC::JSObject::putDirectFunctionWithoutTransition):
799         (JSC::JSValue::putDirect):
800         (JSC::JSObject::allocatePropertyStorageInline):
801         (JSC::JSObject::markChildrenDirect):
802         * runtime/JSPropertyNameIterator.cpp:
803         (JSC::JSPropertyNameIterator::JSPropertyNameIterator):
804         (JSC::JSPropertyNameIterator::get):
805         * runtime/JSPropertyNameIterator.h:
806         * runtime/JSStaticScopeObject.cpp:
807         (JSC::JSStaticScopeObject::markChildren):
808         * runtime/JSString.cpp:
809         (JSC::StringObject::create):
810         * runtime/JSValue.h:
811         * runtime/JSWrapperObject.cpp:
812         (JSC::JSWrapperObject::markChildren):
813         * runtime/JSWrapperObject.h:
814         (JSC::JSWrapperObject::internalValue):
815         (JSC::JSWrapperObject::setInternalValue):
816         * runtime/LiteralParser.cpp:
817         (JSC::LiteralParser::parse):
818         * runtime/Lookup.cpp:
819         (JSC::setUpStaticFunctionSlot):
820         * runtime/Lookup.h:
821         (JSC::lookupPut):
822         * runtime/MarkStack.h:
823         (JSC::MarkStack::MarkStack):
824         (JSC::MarkStack::deprecatedAppendValues):
825         (JSC::MarkStack::appendValues):
826         * runtime/MathObject.cpp:
827         (JSC::MathObject::MathObject):
828         * runtime/NativeErrorConstructor.cpp:
829         (JSC::NativeErrorConstructor::NativeErrorConstructor):
830         * runtime/NativeErrorPrototype.cpp:
831         (JSC::NativeErrorPrototype::NativeErrorPrototype):
832         * runtime/NumberConstructor.cpp:
833         (JSC::NumberConstructor::NumberConstructor):
834         (JSC::constructWithNumberConstructor):
835         * runtime/NumberObject.cpp:
836         (JSC::constructNumber):
837         * runtime/NumberPrototype.cpp:
838         (JSC::NumberPrototype::NumberPrototype):
839         * runtime/ObjectConstructor.cpp:
840         (JSC::ObjectConstructor::ObjectConstructor):
841         (JSC::objectConstructorGetOwnPropertyDescriptor):
842         * runtime/Operations.h:
843         (JSC::normalizePrototypeChain):
844         (JSC::resolveBase):
845         * runtime/PrototypeFunction.cpp:
846         (JSC::PrototypeFunction::PrototypeFunction):
847         * runtime/PutPropertySlot.h:
848         (JSC::PutPropertySlot::setExistingProperty):
849         (JSC::PutPropertySlot::setNewProperty):
850         (JSC::PutPropertySlot::base):
851         * runtime/RegExpConstructor.cpp:
852         (JSC::RegExpConstructor::RegExpConstructor):
853         * runtime/ScopeChain.cpp:
854         (JSC::ScopeChainNode::print):
855         * runtime/ScopeChain.h:
856         (JSC::ScopeChainNode::~ScopeChainNode):
857         (JSC::ScopeChainIterator::operator*):
858         (JSC::ScopeChainIterator::operator->):
859         (JSC::ScopeChain::top):
860         * runtime/ScopeChainMark.h:
861         (JSC::ScopeChain::markAggregate):
862         * runtime/SmallStrings.cpp:
863         (JSC::isMarked):
864         (JSC::SmallStrings::markChildren):
865         * runtime/SmallStrings.h:
866         (JSC::SmallStrings::emptyString):
867         (JSC::SmallStrings::singleCharacterString):
868         (JSC::SmallStrings::singleCharacterStrings):
869         * runtime/StringConstructor.cpp:
870         (JSC::StringConstructor::StringConstructor):
871         * runtime/StringObject.cpp:
872         (JSC::StringObject::StringObject):
873         * runtime/StringObject.h:
874         * runtime/StringPrototype.cpp:
875         (JSC::StringPrototype::StringPrototype):
876         * runtime/Structure.cpp:
877         (JSC::Structure::Structure):
878         (JSC::Structure::addPropertyTransition):
879         (JSC::Structure::toDictionaryTransition):
880         (JSC::Structure::flattenDictionaryStructure):
881         * runtime/Structure.h:
882         (JSC::Structure::storedPrototype):
883         (JSC::Structure::storedPrototypeSlot):
884         * runtime/WeakGCMap.h:
885         (JSC::WeakGCMap::uncheckedGet):
886         (JSC::WeakGCMap::uncheckedGetSlot):
887         (JSC::::get):
888         (JSC::::take):
889         (JSC::::set):
890         (JSC::::uncheckedRemove):
891         * runtime/WriteBarrier.h: Added.
892         (JSC::DeprecatedPtr::DeprecatedPtr):
893         (JSC::DeprecatedPtr::get):
894         (JSC::DeprecatedPtr::operator*):
895         (JSC::DeprecatedPtr::operator->):
896         (JSC::DeprecatedPtr::slot):
897         (JSC::DeprecatedPtr::operator UnspecifiedBoolType*):
898         (JSC::DeprecatedPtr::operator!):
899         (JSC::WriteBarrierBase::set):
900         (JSC::WriteBarrierBase::get):
901         (JSC::WriteBarrierBase::operator*):
902         (JSC::WriteBarrierBase::operator->):
903         (JSC::WriteBarrierBase::clear):
904         (JSC::WriteBarrierBase::slot):
905         (JSC::WriteBarrierBase::operator UnspecifiedBoolType*):
906         (JSC::WriteBarrierBase::operator!):
907         (JSC::WriteBarrier::WriteBarrier):
908         (JSC::operator==):
909
910 2011-01-31  Dan Winship  <danw@gnome.org>
911
912         Reviewed by Gustavo Noronha Silva.
913
914         wss (websockets ssl) support for gtk via new gio TLS support
915         https://bugs.webkit.org/show_bug.cgi?id=50344
916
917         Add a GPollableOutputStream typedef for TLS WebSockets support
918
919         * wtf/gobject/GTypedefs.h:
920
921 2011-01-31  Gavin Barraclough  <barraclough@apple.com>
922
923         Reviewed by Geoff Garen.
924
925         https://bugs.webkit.org/show_bug.cgi?id=53352
926         Heavy external fragmentation in FixedVMPoolAllocator can lead to a CRASH().
927
928         The FixedVMPoolAllocator currently uses a best fix policy -
929         switch to first fit, this is less prone to external fragmentation.
930
931         * jit/ExecutableAllocatorFixedVMPool.cpp:
932         (JSC::AllocationTableSizeClass::AllocationTableSizeClass):
933         (JSC::AllocationTableSizeClass::blockSize):
934         (JSC::AllocationTableSizeClass::blockCount):
935         (JSC::AllocationTableSizeClass::blockAlignment):
936         (JSC::AllocationTableSizeClass::size):
937         (JSC::AllocationTableLeaf::AllocationTableLeaf):
938         (JSC::AllocationTableLeaf::~AllocationTableLeaf):
939         (JSC::AllocationTableLeaf::allocate):
940         (JSC::AllocationTableLeaf::free):
941         (JSC::AllocationTableLeaf::isEmpty):
942         (JSC::AllocationTableLeaf::isFull):
943         (JSC::AllocationTableLeaf::size):
944         (JSC::AllocationTableLeaf::classForSize):
945         (JSC::AllocationTableLeaf::dump):
946         (JSC::LazyAllocationTable::LazyAllocationTable):
947         (JSC::LazyAllocationTable::~LazyAllocationTable):
948         (JSC::LazyAllocationTable::allocate):
949         (JSC::LazyAllocationTable::free):
950         (JSC::LazyAllocationTable::isEmpty):
951         (JSC::LazyAllocationTable::isFull):
952         (JSC::LazyAllocationTable::size):
953         (JSC::LazyAllocationTable::dump):
954         (JSC::LazyAllocationTable::classForSize):
955         (JSC::AllocationTableDirectory::AllocationTableDirectory):
956         (JSC::AllocationTableDirectory::~AllocationTableDirectory):
957         (JSC::AllocationTableDirectory::allocate):
958         (JSC::AllocationTableDirectory::free):
959         (JSC::AllocationTableDirectory::isEmpty):
960         (JSC::AllocationTableDirectory::isFull):
961         (JSC::AllocationTableDirectory::size):
962         (JSC::AllocationTableDirectory::classForSize):
963         (JSC::AllocationTableDirectory::dump):
964         (JSC::FixedVMPoolAllocator::FixedVMPoolAllocator):
965         (JSC::FixedVMPoolAllocator::alloc):
966         (JSC::FixedVMPoolAllocator::free):
967         (JSC::FixedVMPoolAllocator::allocated):
968         (JSC::FixedVMPoolAllocator::isValid):
969         (JSC::FixedVMPoolAllocator::classForSize):
970         (JSC::FixedVMPoolAllocator::offsetToPointer):
971         (JSC::FixedVMPoolAllocator::pointerToOffset):
972         (JSC::ExecutableAllocator::committedByteCount):
973         (JSC::ExecutableAllocator::isValid):
974         (JSC::ExecutableAllocator::underMemoryPressure):
975         (JSC::ExecutablePool::systemAlloc):
976         (JSC::ExecutablePool::systemRelease):
977         * wtf/PageReservation.h:
978         (WTF::PageReservation::PageReservation):
979         (WTF::PageReservation::commit):
980         (WTF::PageReservation::decommit):
981         (WTF::PageReservation::committed):
982
983 2011-01-31  Sheriff Bot  <webkit.review.bot@gmail.com>
984
985         Unreviewed, rolling out r76969.
986         http://trac.webkit.org/changeset/76969
987         https://bugs.webkit.org/show_bug.cgi?id=53418
988
989         "It is causing crashes in GTK+ and Leopard bots" (Requested by
990         alexg__ on #webkit).
991
992         * runtime/WeakGCMap.h:
993
994 2011-01-30  Csaba Osztrogonác  <ossy@webkit.org>
995
996         Unreviewed, rolling out r77098, r77099, r77100, r77109, and
997         r77111.
998         http://trac.webkit.org/changeset/77098
999         http://trac.webkit.org/changeset/77099
1000         http://trac.webkit.org/changeset/77100
1001         http://trac.webkit.org/changeset/77109
1002         http://trac.webkit.org/changeset/77111
1003         https://bugs.webkit.org/show_bug.cgi?id=53219
1004
1005         Qt build is broken
1006
1007         * API/JSCallbackObject.h:
1008         (JSC::JSCallbackObjectData::setPrivateProperty):
1009         (JSC::JSCallbackObjectData::JSPrivatePropertyMap::getPrivateProperty):
1010         (JSC::JSCallbackObjectData::JSPrivatePropertyMap::setPrivateProperty):
1011         (JSC::JSCallbackObjectData::JSPrivatePropertyMap::markChildren):
1012         (JSC::JSCallbackObject::setPrivateProperty):
1013         * API/JSCallbackObjectFunctions.h:
1014         (JSC::::put):
1015         (JSC::::staticFunctionGetter):
1016         * API/JSObjectRef.cpp:
1017         (JSObjectMakeConstructor):
1018         (JSObjectSetPrivateProperty):
1019         * API/JSWeakObjectMapRefInternal.h:
1020         * JavaScriptCore.exp:
1021         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
1022         * JavaScriptCore.xcodeproj/project.pbxproj:
1023         * bytecode/CodeBlock.cpp:
1024         (JSC::CodeBlock::markAggregate):
1025         * bytecode/CodeBlock.h:
1026         (JSC::CodeBlock::globalObject):
1027         * bytecompiler/BytecodeGenerator.cpp:
1028         (JSC::BytecodeGenerator::BytecodeGenerator):
1029         (JSC::BytecodeGenerator::emitJumpIfNotFunctionCall):
1030         (JSC::BytecodeGenerator::emitJumpIfNotFunctionApply):
1031         (JSC::BytecodeGenerator::findScopedProperty):
1032         * debugger/Debugger.cpp:
1033         (JSC::evaluateInGlobalCallFrame):
1034         * debugger/DebuggerActivation.cpp:
1035         (JSC::DebuggerActivation::DebuggerActivation):
1036         (JSC::DebuggerActivation::markChildren):
1037         * debugger/DebuggerActivation.h:
1038         * debugger/DebuggerCallFrame.cpp:
1039         (JSC::DebuggerCallFrame::evaluate):
1040         * interpreter/CallFrame.h:
1041         (JSC::ExecState::exception):
1042         * interpreter/Interpreter.cpp:
1043         (JSC::Interpreter::resolve):
1044         (JSC::Interpreter::resolveSkip):
1045         (JSC::Interpreter::resolveGlobal):
1046         (JSC::Interpreter::resolveGlobalDynamic):
1047         (JSC::Interpreter::resolveBaseAndProperty):
1048         (JSC::Interpreter::unwindCallFrame):
1049         (JSC::appendSourceToError):
1050         (JSC::Interpreter::execute):
1051         (JSC::Interpreter::tryCacheGetByID):
1052         (JSC::Interpreter::privateExecute):
1053         * jit/JITStubs.cpp:
1054         (JSC::JITThunks::tryCacheGetByID):
1055         (JSC::DEFINE_STUB_FUNCTION):
1056         * jsc.cpp:
1057         (GlobalObject::GlobalObject):
1058         * runtime/ArgList.cpp:
1059         (JSC::MarkedArgumentBuffer::markLists):
1060         * runtime/Arguments.cpp:
1061         (JSC::Arguments::markChildren):
1062         (JSC::Arguments::getOwnPropertySlot):
1063         (JSC::Arguments::getOwnPropertyDescriptor):
1064         (JSC::Arguments::put):
1065         * runtime/Arguments.h:
1066         (JSC::Arguments::setActivation):
1067         (JSC::Arguments::Arguments):
1068         * runtime/ArrayConstructor.cpp:
1069         (JSC::ArrayConstructor::ArrayConstructor):
1070         (JSC::constructArrayWithSizeQuirk):
1071         * runtime/ArrayPrototype.cpp:
1072         (JSC::arrayProtoFuncSplice):
1073         * runtime/BatchedTransitionOptimizer.h:
1074         (JSC::BatchedTransitionOptimizer::BatchedTransitionOptimizer):
1075         (JSC::BatchedTransitionOptimizer::~BatchedTransitionOptimizer):
1076         * runtime/BooleanConstructor.cpp:
1077         (JSC::BooleanConstructor::BooleanConstructor):
1078         (JSC::constructBoolean):
1079         (JSC::constructBooleanFromImmediateBoolean):
1080         * runtime/BooleanPrototype.cpp:
1081         (JSC::BooleanPrototype::BooleanPrototype):
1082         * runtime/ConservativeSet.cpp:
1083         (JSC::ConservativeSet::grow):
1084         * runtime/ConservativeSet.h:
1085         (JSC::ConservativeSet::~ConservativeSet):
1086         (JSC::ConservativeSet::mark):
1087         * runtime/DateConstructor.cpp:
1088         (JSC::DateConstructor::DateConstructor):
1089         * runtime/DateInstance.cpp:
1090         (JSC::DateInstance::DateInstance):
1091         * runtime/DatePrototype.cpp:
1092         (JSC::dateProtoFuncSetTime):
1093         (JSC::setNewValueFromTimeArgs):
1094         (JSC::setNewValueFromDateArgs):
1095         (JSC::dateProtoFuncSetYear):
1096         * runtime/ErrorConstructor.cpp:
1097         (JSC::ErrorConstructor::ErrorConstructor):
1098         * runtime/ErrorInstance.cpp:
1099         (JSC::ErrorInstance::ErrorInstance):
1100         * runtime/ErrorPrototype.cpp:
1101         (JSC::ErrorPrototype::ErrorPrototype):
1102         * runtime/FunctionConstructor.cpp:
1103         (JSC::FunctionConstructor::FunctionConstructor):
1104         * runtime/FunctionPrototype.cpp:
1105         (JSC::FunctionPrototype::FunctionPrototype):
1106         * runtime/GetterSetter.cpp:
1107         (JSC::GetterSetter::markChildren):
1108         * runtime/GetterSetter.h:
1109         (JSC::GetterSetter::GetterSetter):
1110         (JSC::GetterSetter::getter):
1111         (JSC::GetterSetter::setGetter):
1112         (JSC::GetterSetter::setter):
1113         (JSC::GetterSetter::setSetter):
1114         * runtime/GlobalEvalFunction.cpp:
1115         (JSC::GlobalEvalFunction::GlobalEvalFunction):
1116         (JSC::GlobalEvalFunction::markChildren):
1117         * runtime/GlobalEvalFunction.h:
1118         (JSC::GlobalEvalFunction::cachedGlobalObject):
1119         * runtime/Heap.cpp:
1120         (JSC::Heap::markProtectedObjects):
1121         (JSC::Heap::markTempSortVectors):
1122         (JSC::Heap::markRoots):
1123         * runtime/InternalFunction.cpp:
1124         (JSC::InternalFunction::InternalFunction):
1125         * runtime/JSAPIValueWrapper.h:
1126         (JSC::JSAPIValueWrapper::value):
1127         (JSC::JSAPIValueWrapper::JSAPIValueWrapper):
1128         * runtime/JSActivation.cpp:
1129         (JSC::JSActivation::markChildren):
1130         (JSC::JSActivation::put):
1131         * runtime/JSArray.cpp:
1132         (JSC::JSArray::JSArray):
1133         (JSC::JSArray::getOwnPropertySlot):
1134         (JSC::JSArray::getOwnPropertyDescriptor):
1135         (JSC::JSArray::put):
1136         (JSC::JSArray::putSlowCase):
1137         (JSC::JSArray::deleteProperty):
1138         (JSC::JSArray::increaseVectorLength):
1139         (JSC::JSArray::setLength):
1140         (JSC::JSArray::pop):
1141         (JSC::JSArray::push):
1142         (JSC::JSArray::unshiftCount):
1143         (JSC::JSArray::sort):
1144         (JSC::JSArray::fillArgList):
1145         (JSC::JSArray::copyToRegisters):
1146         (JSC::JSArray::compactForSorting):
1147         * runtime/JSArray.h:
1148         (JSC::JSArray::getIndex):
1149         (JSC::JSArray::setIndex):
1150         (JSC::JSArray::uncheckedSetIndex):
1151         (JSC::JSArray::markChildrenDirect):
1152         * runtime/JSByteArray.cpp:
1153         (JSC::JSByteArray::JSByteArray):
1154         * runtime/JSCell.h:
1155         (JSC::JSCell::JSValue::toThisObject):
1156         (JSC::JSCell::MarkStack::append):
1157         * runtime/JSFunction.cpp:
1158         (JSC::JSFunction::JSFunction):
1159         (JSC::JSFunction::getOwnPropertySlot):
1160         * runtime/JSGlobalData.h:
1161         * runtime/JSGlobalObject.cpp:
1162         (JSC::markIfNeeded):
1163         (JSC::JSGlobalObject::reset):
1164         (JSC::JSGlobalObject::resetPrototype):
1165         (JSC::JSGlobalObject::markChildren):
1166         * runtime/JSGlobalObject.h:
1167         (JSC::JSGlobalObject::JSGlobalObjectData::JSGlobalObjectData):
1168         (JSC::JSGlobalObject::regExpConstructor):
1169         (JSC::JSGlobalObject::errorConstructor):
1170         (JSC::JSGlobalObject::evalErrorConstructor):
1171         (JSC::JSGlobalObject::rangeErrorConstructor):
1172         (JSC::JSGlobalObject::referenceErrorConstructor):
1173         (JSC::JSGlobalObject::syntaxErrorConstructor):
1174         (JSC::JSGlobalObject::typeErrorConstructor):
1175         (JSC::JSGlobalObject::URIErrorConstructor):
1176         (JSC::JSGlobalObject::evalFunction):
1177         (JSC::JSGlobalObject::objectPrototype):
1178         (JSC::JSGlobalObject::functionPrototype):
1179         (JSC::JSGlobalObject::arrayPrototype):
1180         (JSC::JSGlobalObject::booleanPrototype):
1181         (JSC::JSGlobalObject::stringPrototype):
1182         (JSC::JSGlobalObject::numberPrototype):
1183         (JSC::JSGlobalObject::datePrototype):
1184         (JSC::JSGlobalObject::regExpPrototype):
1185         (JSC::JSGlobalObject::methodCallDummy):
1186         (JSC::Structure::prototypeForLookup):
1187         (JSC::constructArray):
1188         * runtime/JSONObject.cpp:
1189         (JSC::Stringifier::Holder::object):
1190         (JSC::Stringifier::markAggregate):
1191         (JSC::Stringifier::stringify):
1192         (JSC::Stringifier::Holder::appendNextProperty):
1193         (JSC::Walker::callReviver):
1194         (JSC::Walker::walk):
1195         * runtime/JSObject.cpp:
1196         (JSC::JSObject::defineGetter):
1197         (JSC::JSObject::defineSetter):
1198         (JSC::JSObject::removeDirect):
1199         (JSC::JSObject::putDirectFunction):
1200         (JSC::JSObject::putDirectFunctionWithoutTransition):
1201         (JSC::putDescriptor):
1202         (JSC::JSObject::defineOwnProperty):
1203         * runtime/JSObject.h:
1204         (JSC::JSObject::getDirectOffset):
1205         (JSC::JSObject::putDirectOffset):
1206         (JSC::JSObject::flattenDictionaryObject):
1207         (JSC::JSObject::putDirectInternal):
1208         (JSC::JSObject::putDirect):
1209         (JSC::JSObject::putDirectFunction):
1210         (JSC::JSObject::putDirectWithoutTransition):
1211         (JSC::JSObject::putDirectFunctionWithoutTransition):
1212         (JSC::JSValue::putDirect):
1213         (JSC::JSObject::allocatePropertyStorageInline):
1214         (JSC::JSObject::markChildrenDirect):
1215         * runtime/JSPropertyNameIterator.cpp:
1216         (JSC::JSPropertyNameIterator::JSPropertyNameIterator):
1217         (JSC::JSPropertyNameIterator::get):
1218         * runtime/JSPropertyNameIterator.h:
1219         * runtime/JSStaticScopeObject.cpp:
1220         (JSC::JSStaticScopeObject::markChildren):
1221         * runtime/JSString.cpp:
1222         (JSC::StringObject::create):
1223         * runtime/JSValue.h:
1224         * runtime/JSWrapperObject.cpp:
1225         (JSC::JSWrapperObject::markChildren):
1226         * runtime/JSWrapperObject.h:
1227         (JSC::JSWrapperObject::internalValue):
1228         (JSC::JSWrapperObject::setInternalValue):
1229         * runtime/LiteralParser.cpp:
1230         (JSC::LiteralParser::parse):
1231         * runtime/Lookup.cpp:
1232         (JSC::setUpStaticFunctionSlot):
1233         * runtime/Lookup.h:
1234         (JSC::lookupPut):
1235         * runtime/MarkStack.h:
1236         (JSC::MarkStack::appendValues):
1237         * runtime/MathObject.cpp:
1238         (JSC::MathObject::MathObject):
1239         * runtime/NativeErrorConstructor.cpp:
1240         (JSC::NativeErrorConstructor::NativeErrorConstructor):
1241         * runtime/NativeErrorPrototype.cpp:
1242         (JSC::NativeErrorPrototype::NativeErrorPrototype):
1243         * runtime/NumberConstructor.cpp:
1244         (JSC::NumberConstructor::NumberConstructor):
1245         (JSC::constructWithNumberConstructor):
1246         * runtime/NumberObject.cpp:
1247         (JSC::constructNumber):
1248         * runtime/NumberPrototype.cpp:
1249         (JSC::NumberPrototype::NumberPrototype):
1250         * runtime/ObjectConstructor.cpp:
1251         (JSC::ObjectConstructor::ObjectConstructor):
1252         (JSC::objectConstructorGetOwnPropertyDescriptor):
1253         * runtime/Operations.h:
1254         (JSC::normalizePrototypeChain):
1255         (JSC::resolveBase):
1256         * runtime/PrototypeFunction.cpp:
1257         (JSC::PrototypeFunction::PrototypeFunction):
1258         * runtime/PutPropertySlot.h:
1259         (JSC::PutPropertySlot::setExistingProperty):
1260         (JSC::PutPropertySlot::setNewProperty):
1261         (JSC::PutPropertySlot::base):
1262         * runtime/RegExpConstructor.cpp:
1263         (JSC::RegExpConstructor::RegExpConstructor):
1264         * runtime/ScopeChain.cpp:
1265         (JSC::ScopeChainNode::print):
1266         * runtime/ScopeChain.h:
1267         (JSC::ScopeChainNode::~ScopeChainNode):
1268         (JSC::ScopeChainIterator::operator*):
1269         (JSC::ScopeChainIterator::operator->):
1270         (JSC::ScopeChain::top):
1271         * runtime/ScopeChainMark.h:
1272         (JSC::ScopeChain::markAggregate):
1273         * runtime/SmallStrings.cpp:
1274         (JSC::isMarked):
1275         (JSC::SmallStrings::markChildren):
1276         * runtime/SmallStrings.h:
1277         (JSC::SmallStrings::emptyString):
1278         (JSC::SmallStrings::singleCharacterString):
1279         (JSC::SmallStrings::singleCharacterStrings):
1280         * runtime/StringConstructor.cpp:
1281         (JSC::StringConstructor::StringConstructor):
1282         * runtime/StringObject.cpp:
1283         (JSC::StringObject::StringObject):
1284         * runtime/StringObject.h:
1285         * runtime/StringPrototype.cpp:
1286         (JSC::StringPrototype::StringPrototype):
1287         * runtime/Structure.cpp:
1288         (JSC::Structure::Structure):
1289         (JSC::Structure::addPropertyTransition):
1290         (JSC::Structure::toDictionaryTransition):
1291         (JSC::Structure::flattenDictionaryStructure):
1292         * runtime/Structure.h:
1293         (JSC::Structure::storedPrototype):
1294         * runtime/WeakGCMap.h:
1295         (JSC::WeakGCMap::uncheckedGet):
1296         (JSC::WeakGCMap::isValid):
1297         (JSC::::get):
1298         (JSC::::take):
1299         (JSC::::set):
1300         (JSC::::uncheckedRemove):
1301         * runtime/WriteBarrier.h: Removed.
1302
1303 2011-01-30  Simon Fraser  <simon.fraser@apple.com>
1304
1305         Build fix the build fix. I assume Oliver meant m_cell, not m_value.
1306
1307         * runtime/WriteBarrier.h:
1308         (JSC::WriteBarrierBase::clear):
1309
1310 2011-01-30  Oliver Hunt  <oliver@apple.com>
1311
1312         More Qt build fixes
1313
1314         * runtime/WriteBarrier.h:
1315         (JSC::WriteBarrierBase::clear):
1316
1317 2011-01-30  Oliver Hunt  <oliver@apple.com>
1318
1319         Convert markstack to a slot visitor API
1320         https://bugs.webkit.org/show_bug.cgi?id=53219
1321
1322         rolling r77006 and r77020 back in.
1323
1324         * API/JSCallbackObject.h:
1325         (JSC::JSCallbackObjectData::setPrivateProperty):
1326         (JSC::JSCallbackObjectData::JSPrivatePropertyMap::getPrivateProperty):
1327         (JSC::JSCallbackObjectData::JSPrivatePropertyMap::setPrivateProperty):
1328         (JSC::JSCallbackObjectData::JSPrivatePropertyMap::markChildren):
1329         (JSC::JSCallbackObject::setPrivateProperty):
1330         * API/JSCallbackObjectFunctions.h:
1331         (JSC::::put):
1332         (JSC::::staticFunctionGetter):
1333         * API/JSObjectRef.cpp:
1334         (JSObjectMakeConstructor):
1335         (JSObjectSetPrivateProperty):
1336         * API/JSWeakObjectMapRefInternal.h:
1337         * JavaScriptCore.exp:
1338         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
1339         * JavaScriptCore.xcodeproj/project.pbxproj:
1340         * bytecode/CodeBlock.cpp:
1341         (JSC::CodeBlock::markAggregate):
1342         * bytecode/CodeBlock.h:
1343         (JSC::CodeBlock::globalObject):
1344         * bytecompiler/BytecodeGenerator.cpp:
1345         (JSC::BytecodeGenerator::BytecodeGenerator):
1346         (JSC::BytecodeGenerator::emitJumpIfNotFunctionCall):
1347         (JSC::BytecodeGenerator::emitJumpIfNotFunctionApply):
1348         (JSC::BytecodeGenerator::findScopedProperty):
1349         * debugger/Debugger.cpp:
1350         (JSC::evaluateInGlobalCallFrame):
1351         * debugger/DebuggerActivation.cpp:
1352         (JSC::DebuggerActivation::DebuggerActivation):
1353         (JSC::DebuggerActivation::markChildren):
1354         * debugger/DebuggerActivation.h:
1355         * debugger/DebuggerCallFrame.cpp:
1356         (JSC::DebuggerCallFrame::evaluate):
1357         * interpreter/CallFrame.h:
1358         (JSC::ExecState::exception):
1359         * interpreter/Interpreter.cpp:
1360         (JSC::Interpreter::resolve):
1361         (JSC::Interpreter::resolveSkip):
1362         (JSC::Interpreter::resolveGlobal):
1363         (JSC::Interpreter::resolveGlobalDynamic):
1364         (JSC::Interpreter::resolveBaseAndProperty):
1365         (JSC::Interpreter::unwindCallFrame):
1366         (JSC::appendSourceToError):
1367         (JSC::Interpreter::execute):
1368         (JSC::Interpreter::tryCacheGetByID):
1369         (JSC::Interpreter::privateExecute):
1370         * jit/JITStubs.cpp:
1371         (JSC::JITThunks::tryCacheGetByID):
1372         (JSC::DEFINE_STUB_FUNCTION):
1373         * jsc.cpp:
1374         (GlobalObject::GlobalObject):
1375         * runtime/ArgList.cpp:
1376         (JSC::MarkedArgumentBuffer::markLists):
1377         * runtime/Arguments.cpp:
1378         (JSC::Arguments::markChildren):
1379         (JSC::Arguments::getOwnPropertySlot):
1380         (JSC::Arguments::getOwnPropertyDescriptor):
1381         (JSC::Arguments::put):
1382         * runtime/Arguments.h:
1383         (JSC::Arguments::setActivation):
1384         (JSC::Arguments::Arguments):
1385         * runtime/ArrayConstructor.cpp:
1386         (JSC::ArrayConstructor::ArrayConstructor):
1387         (JSC::constructArrayWithSizeQuirk):
1388         * runtime/ArrayPrototype.cpp:
1389         (JSC::arrayProtoFuncSplice):
1390         * runtime/BatchedTransitionOptimizer.h:
1391         (JSC::BatchedTransitionOptimizer::BatchedTransitionOptimizer):
1392         (JSC::BatchedTransitionOptimizer::~BatchedTransitionOptimizer):
1393         * runtime/BooleanConstructor.cpp:
1394         (JSC::BooleanConstructor::BooleanConstructor):
1395         (JSC::constructBoolean):
1396         (JSC::constructBooleanFromImmediateBoolean):
1397         * runtime/BooleanPrototype.cpp:
1398         (JSC::BooleanPrototype::BooleanPrototype):
1399         * runtime/ConservativeSet.cpp:
1400         (JSC::ConservativeSet::grow):
1401         * runtime/ConservativeSet.h:
1402         (JSC::ConservativeSet::~ConservativeSet):
1403         (JSC::ConservativeSet::mark):
1404         * runtime/DateConstructor.cpp:
1405         (JSC::DateConstructor::DateConstructor):
1406         * runtime/DateInstance.cpp:
1407         (JSC::DateInstance::DateInstance):
1408         * runtime/DatePrototype.cpp:
1409         (JSC::dateProtoFuncSetTime):
1410         (JSC::setNewValueFromTimeArgs):
1411         (JSC::setNewValueFromDateArgs):
1412         (JSC::dateProtoFuncSetYear):
1413         * runtime/ErrorConstructor.cpp:
1414         (JSC::ErrorConstructor::ErrorConstructor):
1415         * runtime/ErrorInstance.cpp:
1416         (JSC::ErrorInstance::ErrorInstance):
1417         * runtime/ErrorPrototype.cpp:
1418         (JSC::ErrorPrototype::ErrorPrototype):
1419         * runtime/FunctionConstructor.cpp:
1420         (JSC::FunctionConstructor::FunctionConstructor):
1421         * runtime/FunctionPrototype.cpp:
1422         (JSC::FunctionPrototype::FunctionPrototype):
1423         * runtime/GetterSetter.cpp:
1424         (JSC::GetterSetter::markChildren):
1425         * runtime/GetterSetter.h:
1426         (JSC::GetterSetter::GetterSetter):
1427         (JSC::GetterSetter::getter):
1428         (JSC::GetterSetter::setGetter):
1429         (JSC::GetterSetter::setter):
1430         (JSC::GetterSetter::setSetter):
1431         * runtime/GlobalEvalFunction.cpp:
1432         (JSC::GlobalEvalFunction::GlobalEvalFunction):
1433         (JSC::GlobalEvalFunction::markChildren):
1434         * runtime/GlobalEvalFunction.h:
1435         (JSC::GlobalEvalFunction::cachedGlobalObject):
1436         * runtime/Heap.cpp:
1437         (JSC::Heap::markProtectedObjects):
1438         (JSC::Heap::markTempSortVectors):
1439         (JSC::Heap::markRoots):
1440         * runtime/InternalFunction.cpp:
1441         (JSC::InternalFunction::InternalFunction):
1442         * runtime/JSAPIValueWrapper.h:
1443         (JSC::JSAPIValueWrapper::value):
1444         (JSC::JSAPIValueWrapper::JSAPIValueWrapper):
1445         * runtime/JSActivation.cpp:
1446         (JSC::JSActivation::markChildren):
1447         (JSC::JSActivation::put):
1448         * runtime/JSArray.cpp:
1449         (JSC::JSArray::JSArray):
1450         (JSC::JSArray::getOwnPropertySlot):
1451         (JSC::JSArray::getOwnPropertyDescriptor):
1452         (JSC::JSArray::put):
1453         (JSC::JSArray::putSlowCase):
1454         (JSC::JSArray::deleteProperty):
1455         (JSC::JSArray::increaseVectorLength):
1456         (JSC::JSArray::setLength):
1457         (JSC::JSArray::pop):
1458         (JSC::JSArray::push):
1459         (JSC::JSArray::unshiftCount):
1460         (JSC::JSArray::sort):
1461         (JSC::JSArray::fillArgList):
1462         (JSC::JSArray::copyToRegisters):
1463         (JSC::JSArray::compactForSorting):
1464         * runtime/JSArray.h:
1465         (JSC::JSArray::getIndex):
1466         (JSC::JSArray::setIndex):
1467         (JSC::JSArray::uncheckedSetIndex):
1468         (JSC::JSArray::markChildrenDirect):
1469         * runtime/JSByteArray.cpp:
1470         (JSC::JSByteArray::JSByteArray):
1471         * runtime/JSCell.h:
1472         (JSC::JSCell::MarkStack::append):
1473         (JSC::JSCell::MarkStack::internalAppend):
1474         (JSC::JSCell::MarkStack::deprecatedAppend):
1475         * runtime/JSFunction.cpp:
1476         (JSC::JSFunction::JSFunction):
1477         (JSC::JSFunction::getOwnPropertySlot):
1478         * runtime/JSGlobalData.h:
1479         * runtime/JSGlobalObject.cpp:
1480         (JSC::markIfNeeded):
1481         (JSC::JSGlobalObject::reset):
1482         (JSC::JSGlobalObject::resetPrototype):
1483         (JSC::JSGlobalObject::markChildren):
1484         * runtime/JSGlobalObject.h:
1485         (JSC::JSGlobalObject::JSGlobalObjectData::JSGlobalObjectData):
1486         (JSC::JSGlobalObject::regExpConstructor):
1487         (JSC::JSGlobalObject::errorConstructor):
1488         (JSC::JSGlobalObject::evalErrorConstructor):
1489         (JSC::JSGlobalObject::rangeErrorConstructor):
1490         (JSC::JSGlobalObject::referenceErrorConstructor):
1491         (JSC::JSGlobalObject::syntaxErrorConstructor):
1492         (JSC::JSGlobalObject::typeErrorConstructor):
1493         (JSC::JSGlobalObject::URIErrorConstructor):
1494         (JSC::JSGlobalObject::evalFunction):
1495         (JSC::JSGlobalObject::objectPrototype):
1496         (JSC::JSGlobalObject::functionPrototype):
1497         (JSC::JSGlobalObject::arrayPrototype):
1498         (JSC::JSGlobalObject::booleanPrototype):
1499         (JSC::JSGlobalObject::stringPrototype):
1500         (JSC::JSGlobalObject::numberPrototype):
1501         (JSC::JSGlobalObject::datePrototype):
1502         (JSC::JSGlobalObject::regExpPrototype):
1503         (JSC::JSGlobalObject::methodCallDummy):
1504         (JSC::Structure::prototypeForLookup):
1505         (JSC::constructArray):
1506         * runtime/JSONObject.cpp:
1507         (JSC::Stringifier::Holder::object):
1508         (JSC::Stringifier::Holder::objectSlot):
1509         (JSC::Stringifier::markAggregate):
1510         (JSC::Stringifier::stringify):
1511         (JSC::Stringifier::Holder::appendNextProperty):
1512         (JSC::Walker::callReviver):
1513         (JSC::Walker::walk):
1514         * runtime/JSObject.cpp:
1515         (JSC::JSObject::defineGetter):
1516         (JSC::JSObject::defineSetter):
1517         (JSC::JSObject::removeDirect):
1518         (JSC::JSObject::putDirectFunction):
1519         (JSC::JSObject::putDirectFunctionWithoutTransition):
1520         (JSC::putDescriptor):
1521         (JSC::JSObject::defineOwnProperty):
1522         * runtime/JSObject.h:
1523         (JSC::JSObject::getDirectOffset):
1524         (JSC::JSObject::putDirectOffset):
1525         (JSC::JSObject::putUndefinedAtDirectOffset):
1526         (JSC::JSObject::flattenDictionaryObject):
1527         (JSC::JSObject::putDirectInternal):
1528         (JSC::JSObject::putDirect):
1529         (JSC::JSObject::putDirectFunction):
1530         (JSC::JSObject::putDirectWithoutTransition):
1531         (JSC::JSObject::putDirectFunctionWithoutTransition):
1532         (JSC::JSValue::putDirect):
1533         (JSC::JSObject::allocatePropertyStorageInline):
1534         (JSC::JSObject::markChildrenDirect):
1535         * runtime/JSPropertyNameIterator.cpp:
1536         (JSC::JSPropertyNameIterator::JSPropertyNameIterator):
1537         (JSC::JSPropertyNameIterator::get):
1538         * runtime/JSPropertyNameIterator.h:
1539         * runtime/JSStaticScopeObject.cpp:
1540         (JSC::JSStaticScopeObject::markChildren):
1541         * runtime/JSString.cpp:
1542         (JSC::StringObject::create):
1543         * runtime/JSValue.h:
1544         * runtime/JSWrapperObject.cpp:
1545         (JSC::JSWrapperObject::markChildren):
1546         * runtime/JSWrapperObject.h:
1547         (JSC::JSWrapperObject::internalValue):
1548         (JSC::JSWrapperObject::setInternalValue):
1549         * runtime/LiteralParser.cpp:
1550         (JSC::LiteralParser::parse):
1551         * runtime/Lookup.cpp:
1552         (JSC::setUpStaticFunctionSlot):
1553         * runtime/Lookup.h:
1554         (JSC::lookupPut):
1555         * runtime/MarkStack.h:
1556         (JSC::MarkStack::MarkStack):
1557         (JSC::MarkStack::deprecatedAppendValues):
1558         (JSC::MarkStack::appendValues):
1559         * runtime/MathObject.cpp:
1560         (JSC::MathObject::MathObject):
1561         * runtime/NativeErrorConstructor.cpp:
1562         (JSC::NativeErrorConstructor::NativeErrorConstructor):
1563         * runtime/NativeErrorPrototype.cpp:
1564         (JSC::NativeErrorPrototype::NativeErrorPrototype):
1565         * runtime/NumberConstructor.cpp:
1566         (JSC::NumberConstructor::NumberConstructor):
1567         (JSC::constructWithNumberConstructor):
1568         * runtime/NumberObject.cpp:
1569         (JSC::constructNumber):
1570         * runtime/NumberPrototype.cpp:
1571         (JSC::NumberPrototype::NumberPrototype):
1572         * runtime/ObjectConstructor.cpp:
1573         (JSC::ObjectConstructor::ObjectConstructor):
1574         (JSC::objectConstructorGetOwnPropertyDescriptor):
1575         * runtime/Operations.h:
1576         (JSC::normalizePrototypeChain):
1577         (JSC::resolveBase):
1578         * runtime/PrototypeFunction.cpp:
1579         (JSC::PrototypeFunction::PrototypeFunction):
1580         * runtime/PutPropertySlot.h:
1581         (JSC::PutPropertySlot::setExistingProperty):
1582         (JSC::PutPropertySlot::setNewProperty):
1583         (JSC::PutPropertySlot::base):
1584         * runtime/RegExpConstructor.cpp:
1585         (JSC::RegExpConstructor::RegExpConstructor):
1586         * runtime/ScopeChain.cpp:
1587         (JSC::ScopeChainNode::print):
1588         * runtime/ScopeChain.h:
1589         (JSC::ScopeChainNode::~ScopeChainNode):
1590         (JSC::ScopeChainIterator::operator*):
1591         (JSC::ScopeChainIterator::operator->):
1592         (JSC::ScopeChain::top):
1593         * runtime/ScopeChainMark.h:
1594         (JSC::ScopeChain::markAggregate):
1595         * runtime/SmallStrings.cpp:
1596         (JSC::isMarked):
1597         (JSC::SmallStrings::markChildren):
1598         * runtime/SmallStrings.h:
1599         (JSC::SmallStrings::emptyString):
1600         (JSC::SmallStrings::singleCharacterString):
1601         (JSC::SmallStrings::singleCharacterStrings):
1602         * runtime/StringConstructor.cpp:
1603         (JSC::StringConstructor::StringConstructor):
1604         * runtime/StringObject.cpp:
1605         (JSC::StringObject::StringObject):
1606         * runtime/StringObject.h:
1607         * runtime/StringPrototype.cpp:
1608         (JSC::StringPrototype::StringPrototype):
1609         * runtime/Structure.cpp:
1610         (JSC::Structure::Structure):
1611         (JSC::Structure::addPropertyTransition):
1612         (JSC::Structure::toDictionaryTransition):
1613         (JSC::Structure::flattenDictionaryStructure):
1614         * runtime/Structure.h:
1615         (JSC::Structure::storedPrototype):
1616         (JSC::Structure::storedPrototypeSlot):
1617         * runtime/WeakGCMap.h:
1618         (JSC::WeakGCMap::uncheckedGet):
1619         (JSC::WeakGCMap::uncheckedGetSlot):
1620         (JSC::WeakGCMap::isValid):
1621         (JSC::::get):
1622         (JSC::::take):
1623         (JSC::::set):
1624         (JSC::::uncheckedRemove):
1625         * runtime/WriteBarrier.h: Added.
1626         (JSC::DeprecatedPtr::DeprecatedPtr):
1627         (JSC::DeprecatedPtr::get):
1628         (JSC::DeprecatedPtr::operator*):
1629         (JSC::DeprecatedPtr::operator->):
1630         (JSC::DeprecatedPtr::slot):
1631         (JSC::DeprecatedPtr::operator UnspecifiedBoolType*):
1632         (JSC::DeprecatedPtr::operator!):
1633         (JSC::WriteBarrierBase::set):
1634         (JSC::WriteBarrierBase::get):
1635         (JSC::WriteBarrierBase::operator*):
1636         (JSC::WriteBarrierBase::operator->):
1637         (JSC::WriteBarrierBase::slot):
1638         (JSC::WriteBarrierBase::operator UnspecifiedBoolType*):
1639         (JSC::WriteBarrierBase::operator!):
1640         (JSC::WriteBarrier::WriteBarrier):
1641         (JSC::operator==):
1642
1643 2011-01-30  Geoffrey Garen  <ggaren@apple.com>
1644
1645         Reviewed by Oliver Hunt.
1646
1647         Filter all Heap collection through a common reset function, in
1648         preparation for adding features triggered by collection.
1649         https://bugs.webkit.org/show_bug.cgi?id=53396
1650         
1651         SunSpider reports no change.
1652
1653         * runtime/Heap.cpp:
1654         (JSC::Heap::reportExtraMemoryCostSlowCase): When we're over the extraCost
1655         limit, just call collectAllGarbage() instead of rolling our own special
1656         way of resetting the heap. In theory, this may be slower in some cases,
1657         but it also fixes cases of pathological heap growth that we've seen,
1658         where the only objects being allocated are temporary and huge
1659         (<rdar://problem/8885843>).
1660
1661         (JSC::Heap::allocate):
1662         (JSC::Heap::collectAllGarbage): Use the shared reset function.
1663
1664         (JSC::Heap::reset):
1665         * runtime/Heap.h: Carved a new shared reset function out of the old
1666         collectAllGarbage.
1667
1668 2011-01-30  Sheriff Bot  <webkit.review.bot@gmail.com>
1669
1670         Unreviewed, rolling out r77025.
1671         http://trac.webkit.org/changeset/77025
1672         https://bugs.webkit.org/show_bug.cgi?id=53401
1673
1674         It made js1_5/Regress/regress-159334.js fail on 64 bit Linux
1675         (Requested by Ossy on #webkit).
1676
1677         * jit/ExecutableAllocatorFixedVMPool.cpp:
1678         (JSC::FreeListEntry::FreeListEntry):
1679         (JSC::AVLTreeAbstractorForFreeList::get_less):
1680         (JSC::AVLTreeAbstractorForFreeList::set_less):
1681         (JSC::AVLTreeAbstractorForFreeList::get_greater):
1682         (JSC::AVLTreeAbstractorForFreeList::set_greater):
1683         (JSC::AVLTreeAbstractorForFreeList::get_balance_factor):
1684         (JSC::AVLTreeAbstractorForFreeList::set_balance_factor):
1685         (JSC::AVLTreeAbstractorForFreeList::null):
1686         (JSC::AVLTreeAbstractorForFreeList::compare_key_key):
1687         (JSC::AVLTreeAbstractorForFreeList::compare_key_node):
1688         (JSC::AVLTreeAbstractorForFreeList::compare_node_node):
1689         (JSC::reverseSortFreeListEntriesByPointer):
1690         (JSC::reverseSortCommonSizedAllocations):
1691         (JSC::FixedVMPoolAllocator::release):
1692         (JSC::FixedVMPoolAllocator::reuse):
1693         (JSC::FixedVMPoolAllocator::addToFreeList):
1694         (JSC::FixedVMPoolAllocator::coalesceFreeSpace):
1695         (JSC::FixedVMPoolAllocator::FixedVMPoolAllocator):
1696         (JSC::FixedVMPoolAllocator::alloc):
1697         (JSC::FixedVMPoolAllocator::free):
1698         (JSC::FixedVMPoolAllocator::isValid):
1699         (JSC::FixedVMPoolAllocator::allocInternal):
1700         (JSC::FixedVMPoolAllocator::isWithinVMPool):
1701         (JSC::FixedVMPoolAllocator::addToCommittedByteCount):
1702         (JSC::ExecutableAllocator::committedByteCount):
1703         (JSC::maybeModifyVMPoolSize):
1704         (JSC::ExecutableAllocator::isValid):
1705         (JSC::ExecutableAllocator::underMemoryPressure):
1706         (JSC::ExecutablePool::systemAlloc):
1707         (JSC::ExecutablePool::systemRelease):
1708         * wtf/PageReservation.h:
1709         (WTF::PageReservation::PageReservation):
1710         (WTF::PageReservation::commit):
1711         (WTF::PageReservation::decommit):
1712
1713 2011-01-30  Leo Yang  <leo.yang@torchmobile.com.cn>
1714
1715         Reviewed by Daniel Bates.
1716
1717         Code style issue in JavaScriptCore/wtf/CurrentTime.h
1718         https://bugs.webkit.org/show_bug.cgi?id=53394
1719
1720         According to rule #3 at http://webkit.org/coding/coding-style.html,
1721         This patch fix style issue in CurrentTime.h.
1722
1723         No functionality change, no new tests.
1724
1725         * wtf/CurrentTime.h:
1726         (WTF::currentTimeMS):
1727         (WTF::getLocalTime):
1728
1729 2011-01-30  Benjamin Poulain  <ikipou@gmail.com>
1730
1731         Reviewed by Kenneth Rohde Christiansen.
1732
1733         [Qt] JavaScriptCore does not link on Mac if building WebKit 2
1734         https://bugs.webkit.org/show_bug.cgi?id=53377
1735
1736         The option "-whole-archive" is not availabe with the libtool of Mac OS X,
1737         instead, we can use "-all_load" on Mac.
1738
1739         * JavaScriptCore.pri:
1740
1741 2011-01-29  Geoffrey Garen  <ggaren@apple.com>
1742
1743         Sorry Leopard bot -- I committed a change by accident.
1744
1745         * JavaScriptCore.exp: You may have your symbols back now.
1746
1747 2011-01-29  Geoffrey Garen  <ggaren@apple.com>
1748
1749         Reviewed by Cameron Zwarich.
1750
1751         Simplified Heap iteration
1752         https://bugs.webkit.org/show_bug.cgi?id=53393
1753
1754         * runtime/CollectorHeapIterator.h:
1755         (JSC::CollectorHeapIterator::isValid):
1756         (JSC::CollectorHeapIterator::isLive):
1757         (JSC::CollectorHeapIterator::advance): Removed "max" argument to
1758         advance because it's a constant.
1759         (JSC::LiveObjectIterator::LiveObjectIterator):
1760         (JSC::LiveObjectIterator::operator++):
1761         (JSC::DeadObjectIterator::DeadObjectIterator):
1762         (JSC::DeadObjectIterator::operator++):
1763         (JSC::ObjectIterator::ObjectIterator):
1764         (JSC::ObjectIterator::operator++): Factored out common checks into
1765         two helper functions -- isValid() for "Am I past the end?" and isLive()
1766         for "Is the cell I'm pointing to live?".
1767
1768         * runtime/MarkedSpace.cpp:
1769         (JSC::MarkedSpace::freeBlock):
1770         (JSC::MarkedSpace::sweep): Always sweep from the beginning of the heap
1771         to the end, to avoid making sweep subtly reliant on internal Heap state.
1772         (JSC::MarkedSpace::primaryHeapBegin):
1773         (JSC::MarkedSpace::primaryHeapEnd): Always be explicit about where
1774         iteration begins.
1775
1776 2011-01-29  Geoffrey Garen  <ggaren@apple.com>
1777
1778         Reviewed by Cameron Zwarich.
1779
1780         Simplified heap destruction
1781         https://bugs.webkit.org/show_bug.cgi?id=53392
1782
1783         * JavaScriptCore.exp:
1784         * runtime/Heap.cpp:
1785         (JSC::Heap::destroy):
1786         * runtime/Heap.h:
1787         * runtime/MarkedSpace.cpp:
1788         (JSC::MarkedSpace::destroy):
1789         * runtime/MarkedSpace.h: Don't go out of our way to destroy GC-protected
1790         cells last -- the difficult contortions required to do so just don't seem
1791         justified. We make no guarantees about GC protection after the client
1792         throws away JSGlobalData, and it doesn't seem like any meaningful
1793         guarantee is even possible.
1794
1795 2011-01-29  Geoffrey Garen  <ggaren@apple.com>
1796
1797         Reviewed by Maciej Stachowiak.
1798
1799         Switched heap to use the Bitmap class and removed CollectorBitmap
1800         https://bugs.webkit.org/show_bug.cgi?id=53391
1801         
1802         SunSpider says 1.005x as fast. Seems like a fluke.
1803
1804         * runtime/MarkedSpace.cpp:
1805         (JSC::MarkedSpace::allocate): Updated for rename and returning a value
1806         rather than taking a value by reference.
1807
1808         * runtime/MarkedSpace.h: Code reuse is good.
1809
1810         * wtf/Bitmap.h:
1811         (WTF::::testAndSet): Added, since this is the one thing Bitmap was missing
1812         which CollectorBitmap had. (Renamed from the less conventional "getset".)
1813
1814         (WTF::::nextPossiblyUnset): Renamed and changed to return a value for
1815         clarity. It's all the same with inlining.
1816
1817 2011-01-28  Geoffrey Garen  <ggaren@apple.com>
1818
1819         Reviewed by Maciej Stachowiak.
1820
1821         Some more Heap cleanup.
1822         https://bugs.webkit.org/show_bug.cgi?id=53357
1823         
1824         * JavaScriptCore.exp:
1825         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: Updated exported symbols.
1826
1827         * runtime/Heap.cpp:
1828         (JSC::Heap::reportExtraMemoryCostSlowCase): Renamed recordExtraCost to 
1829         reportExtraMemoryCostSlowCase to match our naming conventions.
1830
1831         (JSC::Heap::capacity): Renamed size to capacity because this function
1832         returns the capacity of the heap, including unused portions.
1833
1834         * runtime/Heap.h:
1835         (JSC::Heap::globalData):
1836         (JSC::Heap::markedSpace):
1837         (JSC::Heap::machineStackMarker):
1838         (JSC::Heap::reportExtraMemoryCost): Moved statics to the top of the file.
1839         Moved ctor and dtor to the beginning of the class definition. Grouped
1840         functions by purpose.
1841
1842         * runtime/MarkedSpace.cpp:
1843         (JSC::MarkedSpace::capacity): Renamed size to capacity because this
1844         function returns the capacity of the heap, including unused portions.
1845
1846         * runtime/MarkedSpace.h: Removed statistics and the Statistics class because
1847         the same information can be gotten just by calling size() and capacity().
1848
1849         * runtime/MemoryStatistics.cpp:
1850         * runtime/MemoryStatistics.h: Ditto.
1851
1852 2011-01-29  Daniel Bates  <dbates@rim.com>
1853
1854         Reviewed by Eric Seidel.
1855
1856         Move wince/mt19937ar.c to ThirdParty and make it a policy choice
1857         https://bugs.webkit.org/show_bug.cgi?id=53253
1858
1859         Make inclusion of MT19937 a policy decision.
1860
1861         Currently, we hardcoded to  use MT19937 when building for
1862         Windows CE. Instead, we should make this a policy decision
1863         with the Windows CE port using this by default.
1864
1865         * JavaScriptCore.pri: Append Source/ThirdParty to the end
1866         of the list include directories.
1867         * wtf/CMakeLists.txt: Ditto.
1868         * wtf/Platform.h: Defined WTF_USE_MERSENNE_TWISTER_19937 when
1869         building for Windows CE.
1870         * wtf/RandomNumber.cpp:
1871         (WTF::randomNumber): Substituted USE(MERSENNE_TWISTER_19937) for OS(WINCE).
1872
1873 2011-01-29  Cameron Zwarich  <zwarich@apple.com>
1874
1875         Reviewed by David Kilzer.
1876
1877         Bug 53374 - Remove uses of unsafe string functions in debugging code
1878         https://bugs.webkit.org/show_bug.cgi?id=53374
1879
1880         * runtime/RegExp.cpp:
1881         (JSC::RegExp::printTraceData):
1882
1883 2011-01-29  Cameron Zwarich  <zwarich@apple.com>
1884
1885         Reviewed by Oliver Hunt.
1886
1887         JavaScriptCoreUseJIT environment variable broken
1888         https://bugs.webkit.org/show_bug.cgi?id=53372
1889
1890         * runtime/JSGlobalData.cpp:
1891         (JSC::JSGlobalData::JSGlobalData): Check the actual value in the string returned
1892         by getenv() rather than just doing a NULL check on the return value.
1893
1894 2011-01-29  Patrick Gansterer  <paroga@webkit.org>
1895
1896         Reviewed by David Kilzer.
1897
1898         Move CharacterNames.h into WTF directory
1899         https://bugs.webkit.org/show_bug.cgi?id=49618
1900
1901         * GNUmakefile.am:
1902         * JavaScriptCore.gypi:
1903         * JavaScriptCore.vcproj/WTF/WTF.vcproj:
1904         * JavaScriptCore.xcodeproj/project.pbxproj:
1905         * wtf/CMakeLists.txt:
1906         * wtf/unicode/CharacterNames.h: Renamed from WebCore/platform/text/CharacterNames.h.
1907         * wtf/unicode/UTF8.cpp:
1908
1909 2011-01-28  Simon Fraser  <simon.fraser@apple.com>
1910
1911         Reviewed by Gavin Barraclough.
1912
1913         Add various clampToInt() methods to MathExtras.h
1914         https://bugs.webkit.org/show_bug.cgi?id=52910
1915         
1916         Add functions for clamping doubles and floats to valid int
1917         ranges, for signed and positive integers.
1918
1919         * wtf/MathExtras.h:
1920         (clampToInteger):
1921         (clampToPositiveInteger):
1922
1923 2011-01-28  Sheriff Bot  <webkit.review.bot@gmail.com>
1924
1925         Unreviewed, rolling out r77006 and r77020.
1926         http://trac.webkit.org/changeset/77006
1927         http://trac.webkit.org/changeset/77020
1928         https://bugs.webkit.org/show_bug.cgi?id=53360
1929
1930         "Broke Windows tests" (Requested by rniwa on #webkit).
1931
1932         * API/JSCallbackObject.h:
1933         (JSC::JSCallbackObjectData::setPrivateProperty):
1934         (JSC::JSCallbackObjectData::JSPrivatePropertyMap::getPrivateProperty):
1935         (JSC::JSCallbackObjectData::JSPrivatePropertyMap::setPrivateProperty):
1936         (JSC::JSCallbackObjectData::JSPrivatePropertyMap::markChildren):
1937         (JSC::JSCallbackObject::setPrivateProperty):
1938         * API/JSCallbackObjectFunctions.h:
1939         (JSC::::put):
1940         (JSC::::staticFunctionGetter):
1941         * API/JSObjectRef.cpp:
1942         (JSObjectMakeConstructor):
1943         (JSObjectSetPrivateProperty):
1944         * API/JSWeakObjectMapRefInternal.h:
1945         * JavaScriptCore.exp:
1946         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
1947         * JavaScriptCore.xcodeproj/project.pbxproj:
1948         * bytecode/CodeBlock.cpp:
1949         (JSC::CodeBlock::markAggregate):
1950         * bytecode/CodeBlock.h:
1951         (JSC::CodeBlock::globalObject):
1952         * bytecompiler/BytecodeGenerator.cpp:
1953         (JSC::BytecodeGenerator::BytecodeGenerator):
1954         (JSC::BytecodeGenerator::emitJumpIfNotFunctionCall):
1955         (JSC::BytecodeGenerator::emitJumpIfNotFunctionApply):
1956         (JSC::BytecodeGenerator::findScopedProperty):
1957         * debugger/Debugger.cpp:
1958         (JSC::evaluateInGlobalCallFrame):
1959         * debugger/DebuggerActivation.cpp:
1960         (JSC::DebuggerActivation::DebuggerActivation):
1961         (JSC::DebuggerActivation::markChildren):
1962         * debugger/DebuggerActivation.h:
1963         * debugger/DebuggerCallFrame.cpp:
1964         (JSC::DebuggerCallFrame::evaluate):
1965         * interpreter/CallFrame.h:
1966         (JSC::ExecState::exception):
1967         * interpreter/Interpreter.cpp:
1968         (JSC::Interpreter::resolve):
1969         (JSC::Interpreter::resolveSkip):
1970         (JSC::Interpreter::resolveGlobal):
1971         (JSC::Interpreter::resolveGlobalDynamic):
1972         (JSC::Interpreter::resolveBaseAndProperty):
1973         (JSC::Interpreter::unwindCallFrame):
1974         (JSC::appendSourceToError):
1975         (JSC::Interpreter::execute):
1976         (JSC::Interpreter::tryCacheGetByID):
1977         (JSC::Interpreter::privateExecute):
1978         * jit/JITStubs.cpp:
1979         (JSC::JITThunks::tryCacheGetByID):
1980         (JSC::DEFINE_STUB_FUNCTION):
1981         * jsc.cpp:
1982         (GlobalObject::GlobalObject):
1983         * runtime/ArgList.cpp:
1984         (JSC::MarkedArgumentBuffer::markLists):
1985         * runtime/Arguments.cpp:
1986         (JSC::Arguments::markChildren):
1987         (JSC::Arguments::getOwnPropertySlot):
1988         (JSC::Arguments::getOwnPropertyDescriptor):
1989         (JSC::Arguments::put):
1990         * runtime/Arguments.h:
1991         (JSC::Arguments::setActivation):
1992         (JSC::Arguments::Arguments):
1993         * runtime/ArrayConstructor.cpp:
1994         (JSC::ArrayConstructor::ArrayConstructor):
1995         (JSC::constructArrayWithSizeQuirk):
1996         * runtime/ArrayPrototype.cpp:
1997         (JSC::arrayProtoFuncSplice):
1998         * runtime/BatchedTransitionOptimizer.h:
1999         (JSC::BatchedTransitionOptimizer::BatchedTransitionOptimizer):
2000         (JSC::BatchedTransitionOptimizer::~BatchedTransitionOptimizer):
2001         * runtime/BooleanConstructor.cpp:
2002         (JSC::BooleanConstructor::BooleanConstructor):
2003         (JSC::constructBoolean):
2004         (JSC::constructBooleanFromImmediateBoolean):
2005         * runtime/BooleanPrototype.cpp:
2006         (JSC::BooleanPrototype::BooleanPrototype):
2007         * runtime/ConservativeSet.cpp:
2008         (JSC::ConservativeSet::grow):
2009         * runtime/ConservativeSet.h:
2010         (JSC::ConservativeSet::~ConservativeSet):
2011         (JSC::ConservativeSet::mark):
2012         * runtime/DateConstructor.cpp:
2013         (JSC::DateConstructor::DateConstructor):
2014         * runtime/DateInstance.cpp:
2015         (JSC::DateInstance::DateInstance):
2016         * runtime/DatePrototype.cpp:
2017         (JSC::dateProtoFuncSetTime):
2018         (JSC::setNewValueFromTimeArgs):
2019         (JSC::setNewValueFromDateArgs):
2020         (JSC::dateProtoFuncSetYear):
2021         * runtime/ErrorConstructor.cpp:
2022         (JSC::ErrorConstructor::ErrorConstructor):
2023         * runtime/ErrorInstance.cpp:
2024         (JSC::ErrorInstance::ErrorInstance):
2025         * runtime/ErrorPrototype.cpp:
2026         (JSC::ErrorPrototype::ErrorPrototype):
2027         * runtime/FunctionConstructor.cpp:
2028         (JSC::FunctionConstructor::FunctionConstructor):
2029         * runtime/FunctionPrototype.cpp:
2030         (JSC::FunctionPrototype::FunctionPrototype):
2031         * runtime/GetterSetter.cpp:
2032         (JSC::GetterSetter::markChildren):
2033         * runtime/GetterSetter.h:
2034         (JSC::GetterSetter::GetterSetter):
2035         (JSC::GetterSetter::getter):
2036         (JSC::GetterSetter::setGetter):
2037         (JSC::GetterSetter::setter):
2038         (JSC::GetterSetter::setSetter):
2039         * runtime/GlobalEvalFunction.cpp:
2040         (JSC::GlobalEvalFunction::GlobalEvalFunction):
2041         (JSC::GlobalEvalFunction::markChildren):
2042         * runtime/GlobalEvalFunction.h:
2043         (JSC::GlobalEvalFunction::cachedGlobalObject):
2044         * runtime/Heap.cpp:
2045         (JSC::Heap::markProtectedObjects):
2046         (JSC::Heap::markTempSortVectors):
2047         (JSC::Heap::markRoots):
2048         * runtime/InternalFunction.cpp:
2049         (JSC::InternalFunction::InternalFunction):
2050         * runtime/JSAPIValueWrapper.h:
2051         (JSC::JSAPIValueWrapper::value):
2052         (JSC::JSAPIValueWrapper::JSAPIValueWrapper):
2053         * runtime/JSActivation.cpp:
2054         (JSC::JSActivation::markChildren):
2055         (JSC::JSActivation::put):
2056         * runtime/JSArray.cpp:
2057         (JSC::JSArray::JSArray):
2058         (JSC::JSArray::getOwnPropertySlot):
2059         (JSC::JSArray::getOwnPropertyDescriptor):
2060         (JSC::JSArray::put):
2061         (JSC::JSArray::putSlowCase):
2062         (JSC::JSArray::deleteProperty):
2063         (JSC::JSArray::increaseVectorLength):
2064         (JSC::JSArray::setLength):
2065         (JSC::JSArray::pop):
2066         (JSC::JSArray::push):
2067         (JSC::JSArray::unshiftCount):
2068         (JSC::JSArray::sort):
2069         (JSC::JSArray::fillArgList):
2070         (JSC::JSArray::copyToRegisters):
2071         (JSC::JSArray::compactForSorting):
2072         * runtime/JSArray.h:
2073         (JSC::JSArray::getIndex):
2074         (JSC::JSArray::setIndex):
2075         (JSC::JSArray::uncheckedSetIndex):
2076         (JSC::JSArray::markChildrenDirect):
2077         * runtime/JSByteArray.cpp:
2078         (JSC::JSByteArray::JSByteArray):
2079         * runtime/JSCell.h:
2080         (JSC::JSCell::JSValue::toThisObject):
2081         (JSC::JSCell::MarkStack::append):
2082         * runtime/JSFunction.cpp:
2083         (JSC::JSFunction::JSFunction):
2084         (JSC::JSFunction::getOwnPropertySlot):
2085         * runtime/JSGlobalData.h:
2086         * runtime/JSGlobalObject.cpp:
2087         (JSC::markIfNeeded):
2088         (JSC::JSGlobalObject::reset):
2089         (JSC::JSGlobalObject::resetPrototype):
2090         (JSC::JSGlobalObject::markChildren):
2091         * runtime/JSGlobalObject.h:
2092         (JSC::JSGlobalObject::JSGlobalObjectData::JSGlobalObjectData):
2093         (JSC::JSGlobalObject::regExpConstructor):
2094         (JSC::JSGlobalObject::errorConstructor):
2095         (JSC::JSGlobalObject::evalErrorConstructor):
2096         (JSC::JSGlobalObject::rangeErrorConstructor):
2097         (JSC::JSGlobalObject::referenceErrorConstructor):
2098         (JSC::JSGlobalObject::syntaxErrorConstructor):
2099         (JSC::JSGlobalObject::typeErrorConstructor):
2100         (JSC::JSGlobalObject::URIErrorConstructor):
2101         (JSC::JSGlobalObject::evalFunction):
2102         (JSC::JSGlobalObject::objectPrototype):
2103         (JSC::JSGlobalObject::functionPrototype):
2104         (JSC::JSGlobalObject::arrayPrototype):
2105         (JSC::JSGlobalObject::booleanPrototype):
2106         (JSC::JSGlobalObject::stringPrototype):
2107         (JSC::JSGlobalObject::numberPrototype):
2108         (JSC::JSGlobalObject::datePrototype):
2109         (JSC::JSGlobalObject::regExpPrototype):
2110         (JSC::JSGlobalObject::methodCallDummy):
2111         (JSC::Structure::prototypeForLookup):
2112         (JSC::constructArray):
2113         * runtime/JSONObject.cpp:
2114         (JSC::Stringifier::Holder::object):
2115         (JSC::Stringifier::markAggregate):
2116         (JSC::Stringifier::stringify):
2117         (JSC::Stringifier::Holder::appendNextProperty):
2118         (JSC::Walker::callReviver):
2119         (JSC::Walker::walk):
2120         * runtime/JSObject.cpp:
2121         (JSC::JSObject::defineGetter):
2122         (JSC::JSObject::defineSetter):
2123         (JSC::JSObject::removeDirect):
2124         (JSC::JSObject::putDirectFunction):
2125         (JSC::JSObject::putDirectFunctionWithoutTransition):
2126         (JSC::putDescriptor):
2127         (JSC::JSObject::defineOwnProperty):
2128         * runtime/JSObject.h:
2129         (JSC::JSObject::getDirectOffset):
2130         (JSC::JSObject::putDirectOffset):
2131         (JSC::JSObject::flattenDictionaryObject):
2132         (JSC::JSObject::putDirectInternal):
2133         (JSC::JSObject::putDirect):
2134         (JSC::JSObject::putDirectFunction):
2135         (JSC::JSObject::putDirectWithoutTransition):
2136         (JSC::JSObject::putDirectFunctionWithoutTransition):
2137         (JSC::JSValue::putDirect):
2138         (JSC::JSObject::allocatePropertyStorageInline):
2139         (JSC::JSObject::markChildrenDirect):
2140         * runtime/JSPropertyNameIterator.cpp:
2141         (JSC::JSPropertyNameIterator::JSPropertyNameIterator):
2142         (JSC::JSPropertyNameIterator::get):
2143         * runtime/JSPropertyNameIterator.h:
2144         * runtime/JSStaticScopeObject.cpp:
2145         (JSC::JSStaticScopeObject::markChildren):
2146         * runtime/JSString.cpp:
2147         (JSC::StringObject::create):
2148         * runtime/JSValue.h:
2149         * runtime/JSWrapperObject.cpp:
2150         (JSC::JSWrapperObject::markChildren):
2151         * runtime/JSWrapperObject.h:
2152         (JSC::JSWrapperObject::internalValue):
2153         (JSC::JSWrapperObject::setInternalValue):
2154         * runtime/LiteralParser.cpp:
2155         (JSC::LiteralParser::parse):
2156         * runtime/Lookup.cpp:
2157         (JSC::setUpStaticFunctionSlot):
2158         * runtime/Lookup.h:
2159         (JSC::lookupPut):
2160         * runtime/MarkStack.h:
2161         (JSC::MarkStack::appendValues):
2162         * runtime/MathObject.cpp:
2163         (JSC::MathObject::MathObject):
2164         * runtime/NativeErrorConstructor.cpp:
2165         (JSC::NativeErrorConstructor::NativeErrorConstructor):
2166         * runtime/NativeErrorPrototype.cpp:
2167         (JSC::NativeErrorPrototype::NativeErrorPrototype):
2168         * runtime/NumberConstructor.cpp:
2169         (JSC::NumberConstructor::NumberConstructor):
2170         (JSC::constructWithNumberConstructor):
2171         * runtime/NumberObject.cpp:
2172         (JSC::constructNumber):
2173         * runtime/NumberPrototype.cpp:
2174         (JSC::NumberPrototype::NumberPrototype):
2175         * runtime/ObjectConstructor.cpp:
2176         (JSC::ObjectConstructor::ObjectConstructor):
2177         (JSC::objectConstructorGetOwnPropertyDescriptor):
2178         * runtime/Operations.h:
2179         (JSC::normalizePrototypeChain):
2180         (JSC::resolveBase):
2181         * runtime/PrototypeFunction.cpp:
2182         (JSC::PrototypeFunction::PrototypeFunction):
2183         * runtime/PutPropertySlot.h:
2184         (JSC::PutPropertySlot::setExistingProperty):
2185         (JSC::PutPropertySlot::setNewProperty):
2186         (JSC::PutPropertySlot::base):
2187         * runtime/RegExpConstructor.cpp:
2188         (JSC::RegExpConstructor::RegExpConstructor):
2189         * runtime/ScopeChain.cpp:
2190         (JSC::ScopeChainNode::print):
2191         * runtime/ScopeChain.h:
2192         (JSC::ScopeChainNode::~ScopeChainNode):
2193         (JSC::ScopeChainIterator::operator*):
2194         (JSC::ScopeChainIterator::operator->):
2195         (JSC::ScopeChain::top):
2196         * runtime/ScopeChainMark.h:
2197         (JSC::ScopeChain::markAggregate):
2198         * runtime/SmallStrings.cpp:
2199         (JSC::isMarked):
2200         (JSC::SmallStrings::markChildren):
2201         * runtime/SmallStrings.h:
2202         (JSC::SmallStrings::emptyString):
2203         (JSC::SmallStrings::singleCharacterString):
2204         (JSC::SmallStrings::singleCharacterStrings):
2205         * runtime/StringConstructor.cpp:
2206         (JSC::StringConstructor::StringConstructor):
2207         * runtime/StringObject.cpp:
2208         (JSC::StringObject::StringObject):
2209         * runtime/StringObject.h:
2210         * runtime/StringPrototype.cpp:
2211         (JSC::StringPrototype::StringPrototype):
2212         * runtime/Structure.cpp:
2213         (JSC::Structure::Structure):
2214         (JSC::Structure::addPropertyTransition):
2215         (JSC::Structure::toDictionaryTransition):
2216         (JSC::Structure::flattenDictionaryStructure):
2217         * runtime/Structure.h:
2218         (JSC::Structure::storedPrototype):
2219         * runtime/WeakGCMap.h:
2220         (JSC::WeakGCMap::uncheckedGet):
2221         (JSC::WeakGCMap::isValid):
2222         (JSC::::get):
2223         (JSC::::take):
2224         (JSC::::set):
2225         (JSC::::uncheckedRemove):
2226         * runtime/WriteBarrier.h: Removed.
2227
2228 2011-01-28  Gavin Barraclough  <barraclough@apple.com>
2229
2230         Reviewed by Geoff Garen.
2231
2232         https://bugs.webkit.org/show_bug.cgi?id=53352
2233         Heavy external fragmentation in FixedVMPoolAllocator can lead to a CRASH().
2234
2235         The FixedVMPoolAllocator currently uses a best fix policy -
2236         switch to first fit, this is less prone to external fragmentation.
2237
2238         * jit/ExecutableAllocatorFixedVMPool.cpp:
2239         (JSC::AllocationTableSizeClass::AllocationTableSizeClass):
2240         (JSC::AllocationTableSizeClass::blockSize):
2241         (JSC::AllocationTableSizeClass::blockCount):
2242         (JSC::AllocationTableSizeClass::blockAlignment):
2243         (JSC::AllocationTableSizeClass::size):
2244         (JSC::AllocationTableLeaf::AllocationTableLeaf):
2245         (JSC::AllocationTableLeaf::~AllocationTableLeaf):
2246         (JSC::AllocationTableLeaf::allocate):
2247         (JSC::AllocationTableLeaf::free):
2248         (JSC::AllocationTableLeaf::isEmpty):
2249         (JSC::AllocationTableLeaf::isFull):
2250         (JSC::AllocationTableLeaf::size):
2251         (JSC::AllocationTableLeaf::classForSize):
2252         (JSC::AllocationTableLeaf::dump):
2253         (JSC::LazyAllocationTable::LazyAllocationTable):
2254         (JSC::LazyAllocationTable::~LazyAllocationTable):
2255         (JSC::LazyAllocationTable::allocate):
2256         (JSC::LazyAllocationTable::free):
2257         (JSC::LazyAllocationTable::isEmpty):
2258         (JSC::LazyAllocationTable::isFull):
2259         (JSC::LazyAllocationTable::size):
2260         (JSC::LazyAllocationTable::dump):
2261         (JSC::LazyAllocationTable::classForSize):
2262         (JSC::AllocationTableDirectory::AllocationTableDirectory):
2263         (JSC::AllocationTableDirectory::~AllocationTableDirectory):
2264         (JSC::AllocationTableDirectory::allocate):
2265         (JSC::AllocationTableDirectory::free):
2266         (JSC::AllocationTableDirectory::isEmpty):
2267         (JSC::AllocationTableDirectory::isFull):
2268         (JSC::AllocationTableDirectory::size):
2269         (JSC::AllocationTableDirectory::classForSize):
2270         (JSC::AllocationTableDirectory::dump):
2271         (JSC::FixedVMPoolAllocator::FixedVMPoolAllocator):
2272         (JSC::FixedVMPoolAllocator::alloc):
2273         (JSC::FixedVMPoolAllocator::free):
2274         (JSC::FixedVMPoolAllocator::allocated):
2275         (JSC::FixedVMPoolAllocator::isValid):
2276         (JSC::FixedVMPoolAllocator::classForSize):
2277         (JSC::FixedVMPoolAllocator::offsetToPointer):
2278         (JSC::FixedVMPoolAllocator::pointerToOffset):
2279         (JSC::ExecutableAllocator::committedByteCount):
2280         (JSC::ExecutableAllocator::isValid):
2281         (JSC::ExecutableAllocator::underMemoryPressure):
2282         (JSC::ExecutablePool::systemAlloc):
2283         (JSC::ExecutablePool::systemRelease):
2284         * wtf/PageReservation.h:
2285         (WTF::PageReservation::PageReservation):
2286         (WTF::PageReservation::commit):
2287         (WTF::PageReservation::decommit):
2288         (WTF::PageReservation::committed):
2289
2290 2011-01-27  Oliver Hunt  <oliver@apple.com>
2291
2292         Reviewed by Geoffrey Garen.
2293
2294         Convert markstack to a slot visitor API
2295         https://bugs.webkit.org/show_bug.cgi?id=53219
2296
2297         Move the MarkStack over to a slot based marking API.
2298
2299         In order to avoiding aliasing concerns there are two new types
2300         that need to be used when holding on to JSValues and JSCell that
2301         need to be marked: WriteBarrier and DeprecatedPtr.  WriteBarrier
2302         is expected to be used for any JSValue or Cell that's lifetime and
2303         marking is controlled by another GC object.  DeprecatedPtr is used
2304         for any value that we need to rework ownership for.
2305
2306         The change over to this model has produced a large amount of
2307         code changes, but they are mostly mechanical (forwarding JSGlobalData,
2308         etc).
2309
2310         * API/JSCallbackObject.h:
2311         (JSC::JSCallbackObjectData::setPrivateProperty):
2312         (JSC::JSCallbackObjectData::JSPrivatePropertyMap::getPrivateProperty):
2313         (JSC::JSCallbackObjectData::JSPrivatePropertyMap::setPrivateProperty):
2314         (JSC::JSCallbackObjectData::JSPrivatePropertyMap::markChildren):
2315         (JSC::JSCallbackObject::setPrivateProperty):
2316         * API/JSCallbackObjectFunctions.h:
2317         (JSC::::put):
2318         (JSC::::staticFunctionGetter):
2319         * API/JSObjectRef.cpp:
2320         (JSObjectMakeConstructor):
2321         (JSObjectSetPrivateProperty):
2322         * API/JSWeakObjectMapRefInternal.h:
2323         * JavaScriptCore.exp:
2324         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
2325         * JavaScriptCore.xcodeproj/project.pbxproj:
2326         * bytecode/CodeBlock.cpp:
2327         (JSC::CodeBlock::markAggregate):
2328         * bytecode/CodeBlock.h:
2329         (JSC::CodeBlock::globalObject):
2330         * bytecompiler/BytecodeGenerator.cpp:
2331         (JSC::BytecodeGenerator::BytecodeGenerator):
2332         (JSC::BytecodeGenerator::emitJumpIfNotFunctionCall):
2333         (JSC::BytecodeGenerator::emitJumpIfNotFunctionApply):
2334         (JSC::BytecodeGenerator::findScopedProperty):
2335         * debugger/DebuggerActivation.cpp:
2336         (JSC::DebuggerActivation::DebuggerActivation):
2337         (JSC::DebuggerActivation::markChildren):
2338         * debugger/DebuggerActivation.h:
2339         * interpreter/Interpreter.cpp:
2340         (JSC::Interpreter::resolve):
2341         (JSC::Interpreter::resolveSkip):
2342         (JSC::Interpreter::resolveGlobalDynamic):
2343         (JSC::Interpreter::resolveBaseAndProperty):
2344         (JSC::Interpreter::unwindCallFrame):
2345         (JSC::appendSourceToError):
2346         (JSC::Interpreter::execute):
2347         (JSC::Interpreter::privateExecute):
2348         * interpreter/Register.h:
2349         (JSC::Register::jsValueSlot):
2350         * jit/JITStubs.cpp:
2351         (JSC::JITThunks::tryCacheGetByID):
2352         (JSC::DEFINE_STUB_FUNCTION):
2353         * jsc.cpp:
2354         (GlobalObject::GlobalObject):
2355         * runtime/Arguments.cpp:
2356         (JSC::Arguments::markChildren):
2357         (JSC::Arguments::getOwnPropertySlot):
2358         (JSC::Arguments::getOwnPropertyDescriptor):
2359         (JSC::Arguments::put):
2360         * runtime/Arguments.h:
2361         (JSC::Arguments::setActivation):
2362         (JSC::Arguments::Arguments):
2363         * runtime/ArrayConstructor.cpp:
2364         (JSC::ArrayConstructor::ArrayConstructor):
2365         (JSC::constructArrayWithSizeQuirk):
2366         * runtime/ArrayPrototype.cpp:
2367         (JSC::arrayProtoFuncSplice):
2368         * runtime/BatchedTransitionOptimizer.h:
2369         (JSC::BatchedTransitionOptimizer::BatchedTransitionOptimizer):
2370         (JSC::BatchedTransitionOptimizer::~BatchedTransitionOptimizer):
2371         * runtime/BooleanConstructor.cpp:
2372         (JSC::BooleanConstructor::BooleanConstructor):
2373         (JSC::constructBoolean):
2374         (JSC::constructBooleanFromImmediateBoolean):
2375         * runtime/BooleanPrototype.cpp:
2376         (JSC::BooleanPrototype::BooleanPrototype):
2377         * runtime/ConservativeSet.h:
2378         (JSC::ConservativeSet::mark):
2379         * runtime/DateConstructor.cpp:
2380         (JSC::DateConstructor::DateConstructor):
2381         * runtime/DateInstance.cpp:
2382         (JSC::DateInstance::DateInstance):
2383         * runtime/DatePrototype.cpp:
2384         (JSC::dateProtoFuncSetTime):
2385         (JSC::setNewValueFromTimeArgs):
2386         (JSC::setNewValueFromDateArgs):
2387         (JSC::dateProtoFuncSetYear):
2388         * runtime/ErrorConstructor.cpp:
2389         (JSC::ErrorConstructor::ErrorConstructor):
2390         * runtime/ErrorInstance.cpp:
2391         (JSC::ErrorInstance::ErrorInstance):
2392         * runtime/ErrorPrototype.cpp:
2393         (JSC::ErrorPrototype::ErrorPrototype):
2394         * runtime/FunctionConstructor.cpp:
2395         (JSC::FunctionConstructor::FunctionConstructor):
2396         * runtime/FunctionPrototype.cpp:
2397         (JSC::FunctionPrototype::FunctionPrototype):
2398         * runtime/GetterSetter.cpp:
2399         (JSC::GetterSetter::markChildren):
2400         * runtime/GetterSetter.h:
2401         (JSC::GetterSetter::GetterSetter):
2402         (JSC::GetterSetter::getter):
2403         (JSC::GetterSetter::setGetter):
2404         (JSC::GetterSetter::setter):
2405         (JSC::GetterSetter::setSetter):
2406         * runtime/GlobalEvalFunction.cpp:
2407         (JSC::GlobalEvalFunction::GlobalEvalFunction):
2408         (JSC::GlobalEvalFunction::markChildren):
2409         * runtime/GlobalEvalFunction.h:
2410         (JSC::GlobalEvalFunction::cachedGlobalObject):
2411         * runtime/Heap.cpp:
2412         (JSC::Heap::markProtectedObjects):
2413         (JSC::Heap::markTempSortVectors):
2414         (JSC::Heap::markRoots):
2415         * runtime/InternalFunction.cpp:
2416         (JSC::InternalFunction::InternalFunction):
2417         * runtime/JSAPIValueWrapper.h:
2418         (JSC::JSAPIValueWrapper::value):
2419         (JSC::JSAPIValueWrapper::JSAPIValueWrapper):
2420         * runtime/JSActivation.cpp:
2421         (JSC::JSActivation::put):
2422         * runtime/JSArray.cpp:
2423         (JSC::JSArray::JSArray):
2424         (JSC::JSArray::getOwnPropertySlot):
2425         (JSC::JSArray::getOwnPropertyDescriptor):
2426         (JSC::JSArray::put):
2427         (JSC::JSArray::putSlowCase):
2428         (JSC::JSArray::deleteProperty):
2429         (JSC::JSArray::increaseVectorLength):
2430         (JSC::JSArray::setLength):
2431         (JSC::JSArray::pop):
2432         (JSC::JSArray::push):
2433         (JSC::JSArray::unshiftCount):
2434         (JSC::JSArray::sort):
2435         (JSC::JSArray::fillArgList):
2436         (JSC::JSArray::copyToRegisters):
2437         (JSC::JSArray::compactForSorting):
2438         * runtime/JSArray.h:
2439         (JSC::JSArray::getIndex):
2440         (JSC::JSArray::setIndex):
2441         (JSC::JSArray::uncheckedSetIndex):
2442         (JSC::JSArray::markChildrenDirect):
2443         * runtime/JSByteArray.cpp:
2444         (JSC::JSByteArray::JSByteArray):
2445         * runtime/JSCell.h:
2446         (JSC::JSCell::MarkStack::append):
2447         (JSC::JSCell::MarkStack::appendCell):
2448         * runtime/JSFunction.cpp:
2449         (JSC::JSFunction::JSFunction):
2450         (JSC::JSFunction::getOwnPropertySlot):
2451         * runtime/JSGlobalObject.cpp:
2452         (JSC::markIfNeeded):
2453         (JSC::JSGlobalObject::reset):
2454         (JSC::JSGlobalObject::resetPrototype):
2455         (JSC::JSGlobalObject::markChildren):
2456         * runtime/JSGlobalObject.h:
2457         (JSC::JSGlobalObject::JSGlobalObjectData::JSGlobalObjectData):
2458         (JSC::JSGlobalObject::regExpConstructor):
2459         (JSC::JSGlobalObject::errorConstructor):
2460         (JSC::JSGlobalObject::evalErrorConstructor):
2461         (JSC::JSGlobalObject::rangeErrorConstructor):
2462         (JSC::JSGlobalObject::referenceErrorConstructor):
2463         (JSC::JSGlobalObject::syntaxErrorConstructor):
2464         (JSC::JSGlobalObject::typeErrorConstructor):
2465         (JSC::JSGlobalObject::URIErrorConstructor):
2466         (JSC::JSGlobalObject::evalFunction):
2467         (JSC::JSGlobalObject::objectPrototype):
2468         (JSC::JSGlobalObject::functionPrototype):
2469         (JSC::JSGlobalObject::arrayPrototype):
2470         (JSC::JSGlobalObject::booleanPrototype):
2471         (JSC::JSGlobalObject::stringPrototype):
2472         (JSC::JSGlobalObject::numberPrototype):
2473         (JSC::JSGlobalObject::datePrototype):
2474         (JSC::JSGlobalObject::regExpPrototype):
2475         (JSC::JSGlobalObject::methodCallDummy):
2476         (JSC::constructArray):
2477         * runtime/JSONObject.cpp:
2478         (JSC::Stringifier::Holder::object):
2479         (JSC::Stringifier::Holder::objectSlot):
2480         (JSC::Stringifier::markAggregate):
2481         (JSC::Stringifier::stringify):
2482         (JSC::Stringifier::Holder::appendNextProperty):
2483         (JSC::Walker::callReviver):
2484         (JSC::Walker::walk):
2485         * runtime/JSObject.cpp:
2486         (JSC::JSObject::defineGetter):
2487         (JSC::JSObject::defineSetter):
2488         (JSC::JSObject::removeDirect):
2489         (JSC::JSObject::putDirectFunction):
2490         (JSC::JSObject::putDirectFunctionWithoutTransition):
2491         (JSC::putDescriptor):
2492         (JSC::JSObject::defineOwnProperty):
2493         * runtime/JSObject.h:
2494         (JSC::JSObject::putDirectOffset):
2495         (JSC::JSObject::putUndefinedAtDirectOffset):
2496         (JSC::JSObject::flattenDictionaryObject):
2497         (JSC::JSObject::putDirectInternal):
2498         (JSC::JSObject::putDirect):
2499         (JSC::JSObject::putDirectFunction):
2500         (JSC::JSObject::putDirectWithoutTransition):
2501         (JSC::JSObject::putDirectFunctionWithoutTransition):
2502         (JSC::JSValue::putDirect):
2503         (JSC::JSObject::allocatePropertyStorageInline):
2504         (JSC::JSObject::markChildrenDirect):
2505         * runtime/JSStaticScopeObject.cpp:
2506         (JSC::JSStaticScopeObject::markChildren):
2507         * runtime/JSString.cpp:
2508         (JSC::StringObject::create):
2509         * runtime/JSValue.h:
2510         * runtime/JSWrapperObject.cpp:
2511         (JSC::JSWrapperObject::markChildren):
2512         * runtime/JSWrapperObject.h:
2513         (JSC::JSWrapperObject::internalValue):
2514         (JSC::JSWrapperObject::setInternalValue):
2515         * runtime/LiteralParser.cpp:
2516         (JSC::LiteralParser::parse):
2517         * runtime/Lookup.cpp:
2518         (JSC::setUpStaticFunctionSlot):
2519         * runtime/Lookup.h:
2520         (JSC::lookupPut):
2521         * runtime/MarkStack.h:
2522         * runtime/MathObject.cpp:
2523         (JSC::MathObject::MathObject):
2524         * runtime/NativeErrorConstructor.cpp:
2525         (JSC::NativeErrorConstructor::NativeErrorConstructor):
2526         * runtime/NativeErrorPrototype.cpp:
2527         (JSC::NativeErrorPrototype::NativeErrorPrototype):
2528         * runtime/NumberConstructor.cpp:
2529         (JSC::NumberConstructor::NumberConstructor):
2530         (JSC::constructWithNumberConstructor):
2531         * runtime/NumberObject.cpp:
2532         (JSC::constructNumber):
2533         * runtime/NumberPrototype.cpp:
2534         (JSC::NumberPrototype::NumberPrototype):
2535         * runtime/ObjectConstructor.cpp:
2536         (JSC::ObjectConstructor::ObjectConstructor):
2537         (JSC::objectConstructorGetOwnPropertyDescriptor):
2538         * runtime/Operations.h:
2539         (JSC::normalizePrototypeChain):
2540         (JSC::resolveBase):
2541         * runtime/PrototypeFunction.cpp:
2542         (JSC::PrototypeFunction::PrototypeFunction):
2543         * runtime/PutPropertySlot.h:
2544         (JSC::PutPropertySlot::setExistingProperty):
2545         (JSC::PutPropertySlot::setNewProperty):
2546         (JSC::PutPropertySlot::base):
2547         * runtime/RegExpConstructor.cpp:
2548         (JSC::RegExpConstructor::RegExpConstructor):
2549         * runtime/ScopeChain.cpp:
2550         (JSC::ScopeChainNode::print):
2551         * runtime/ScopeChain.h:
2552         (JSC::ScopeChainNode::~ScopeChainNode):
2553         (JSC::ScopeChainIterator::operator*):
2554         (JSC::ScopeChainIterator::operator->):
2555         (JSC::ScopeChain::top):
2556         * runtime/ScopeChainMark.h:
2557         (JSC::ScopeChain::markAggregate):
2558         * runtime/SmallStrings.cpp:
2559         (JSC::isMarked):
2560         (JSC::SmallStrings::markChildren):
2561         * runtime/SmallStrings.h:
2562         (JSC::SmallStrings::emptyString):
2563         (JSC::SmallStrings::singleCharacterString):
2564         (JSC::SmallStrings::singleCharacterStrings):
2565         * runtime/StringConstructor.cpp:
2566         (JSC::StringConstructor::StringConstructor):
2567         * runtime/StringObject.cpp:
2568         (JSC::StringObject::StringObject):
2569         * runtime/StringObject.h:
2570         * runtime/StringPrototype.cpp:
2571         (JSC::StringPrototype::StringPrototype):
2572         * runtime/Structure.cpp:
2573         (JSC::Structure::flattenDictionaryStructure):
2574         * runtime/Structure.h:
2575         (JSC::Structure::storedPrototypeSlot):
2576         * runtime/WeakGCMap.h:
2577         (JSC::WeakGCMap::uncheckedGet):
2578         (JSC::WeakGCMap::uncheckedGetSlot):
2579         (JSC::::get):
2580         (JSC::::take):
2581         (JSC::::set):
2582         (JSC::::uncheckedRemove):
2583         * runtime/WriteBarrier.h: Added.
2584         (JSC::DeprecatedPtr::DeprecatedPtr):
2585         (JSC::DeprecatedPtr::get):
2586         (JSC::DeprecatedPtr::operator*):
2587         (JSC::DeprecatedPtr::operator->):
2588         (JSC::DeprecatedPtr::slot):
2589         (JSC::DeprecatedPtr::operator UnspecifiedBoolType*):
2590         (JSC::DeprecatedPtr::operator!):
2591         (JSC::WriteBarrierBase::set):
2592         (JSC::WriteBarrierBase::get):
2593         (JSC::WriteBarrierBase::operator*):
2594         (JSC::WriteBarrierBase::operator->):
2595         (JSC::WriteBarrierBase::slot):
2596         (JSC::WriteBarrierBase::operator UnspecifiedBoolType*):
2597         (JSC::WriteBarrierBase::operator!):
2598         (JSC::WriteBarrier::WriteBarrier):
2599         (JSC::operator==):
2600
2601 2011-01-28  Adam Roben  <aroben@apple.com>
2602
2603         Chromium build fix after r76967
2604
2605         * wtf/ThreadingPrimitives.h: Use OS(WINDOWS) instead of PLATFORM(WIN), to match other
2606         similar macros in this file.
2607
2608 2011-01-28  Michael Saboff  <msaboff@apple.com>
2609
2610         Potentially Unsafe HashSet of RuntimeObject* in RootObject definition
2611         https://bugs.webkit.org/show_bug.cgi?id=53271
2612
2613         Reapplying this this change.  No change from prior patch in
2614         JavaScriptCore.
2615
2616         Added new isValid() methods to check if a contained object in
2617         a WeakGCMap is valid when using an unchecked iterator.
2618
2619         * runtime/WeakGCMap.h:
2620         (JSC::WeakGCMap::isValid):
2621
2622 2011-01-27  Adam Roben  <aroben@apple.com>
2623
2624         Extract code to convert a WTF absolute time to a Win32 wait interval into a separate
2625         function
2626
2627         Fixes <http://webkit.org/b/53208> <rdar://problem/8922490> BinarySemaphore should wrap a
2628         Win32 event
2629
2630         Reviewed by Dave Hyatt.
2631
2632         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: Export the new function.
2633
2634         * wtf/ThreadingPrimitives.h: Declare the new function.
2635
2636         * wtf/ThreadingWin.cpp:
2637         (WTF::ThreadCondition::timedWait): Moved code to convert the absolute time to a wait
2638         interval from here...
2639         (WTF::absoluteTimeToWaitTimeoutInterval): ...to here.
2640
2641 2011-01-28  Sam Weinig  <sam@webkit.org>
2642
2643         Reviewed by Maciej Stachowiak.
2644
2645         Add basic rubber banding support
2646         <rdar://problem/8219429>
2647         https://bugs.webkit.org/show_bug.cgi?id=53277
2648
2649         * wtf/Platform.h: Add ENABLE for rubber banding.
2650
2651 2011-01-28  Sheriff Bot  <webkit.review.bot@gmail.com>
2652
2653         Unreviewed, rolling out r76893.
2654         http://trac.webkit.org/changeset/76893
2655         https://bugs.webkit.org/show_bug.cgi?id=53287
2656
2657         It made some tests crash on GTK and Qt debug bots (Requested
2658         by Ossy on #webkit).
2659
2660         * runtime/WeakGCMap.h:
2661
2662 2011-01-27  Adam Barth  <abarth@webkit.org>
2663
2664         Reviewed by Eric Seidel.
2665
2666         Add WTFString method to compare equality with Vector<UChar>
2667         https://bugs.webkit.org/show_bug.cgi?id=53266
2668
2669         I'm planning to use this method in the new XSS filter implementation,
2670         but it seems generally useful.
2671
2672         * wtf/text/StringImpl.h:
2673         (WTF::equalIgnoringNullity):
2674         * wtf/text/WTFString.h:
2675         (WTF::equalIgnoringNullity):
2676
2677 2011-01-27  Michael Saboff  <msaboff@apple.com>
2678
2679         Potentially Unsafe HashSet of RuntimeObject* in RootObject definition
2680         https://bugs.webkit.org/show_bug.cgi?id=53271
2681
2682         Added new isValid() methods to check if a contained object in
2683         a WeakGCMap is valid when using an unchecked iterator.
2684
2685         * runtime/WeakGCMap.h:
2686         (JSC::WeakGCMap::isValid):
2687
2688 2011-01-26  Sam Weinig  <sam@webkit.org>
2689
2690         Reviewed by Maciej Stachowiak.
2691
2692         Add events to represent the start/end of a gesture scroll
2693         https://bugs.webkit.org/show_bug.cgi?id=53215
2694
2695         * wtf/Platform.h: Add ENABLE for gesture events. 
2696
2697 2011-01-26  Yael Aharon  <yael.aharon@nokia.com>
2698
2699         Reviewed by Laszlo Gombos.
2700
2701         [Qt][Symbian] Fix --minimal build
2702         https://bugs.webkit.org/show_bug.cgi?id=52839
2703
2704         Move definition of USE_SYSTEM_MALLOC out of pri file.
2705         Put it in platform.h instead.
2706
2707         * wtf/Platform.h:
2708         * wtf/TCSystemAlloc.cpp:
2709         * wtf/wtf.pri:
2710
2711 2011-01-26  Patrick Gansterer  <paroga@webkit.org>
2712
2713         Reviewed by Andreas Kling.
2714
2715         [WINCE] Add JIT support to build system
2716         https://bugs.webkit.org/show_bug.cgi?id=53079
2717
2718         * CMakeListsWinCE.txt:
2719
2720 2011-01-25  Adam Roben  <aroben@apple.com>
2721
2722         Windows Production build fix
2723
2724         Reviewed by Steve Falkenburg.
2725
2726         * JavaScriptCore.vcproj/JavaScriptCore.make: Set BUILDSTYLE to Release_PGO at the very start
2727         of the file so that ConfigurationBuildDir takes that into account. Also set it the right way
2728         (by redefining the macro) rather than the wrong way (by modifying the environment variable).
2729
2730 2011-01-25  Steve Falkenburg  <sfalken@apple.com>
2731
2732         Rubber-stamped by Adam Roben.
2733
2734         Windows production build fix.
2735         Use correct environment variable escaping
2736
2737         * JavaScriptCore.vcproj/JavaScriptCore.make:
2738         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreGenerated.make:
2739
2740 2011-01-25  Oliver Hunt  <oliver@apple.com>
2741
2742         Reviewed by Gavin Barraclough.
2743
2744         JSON.stringify processing time exponentially grows with size of object
2745         https://bugs.webkit.org/show_bug.cgi?id=51922
2746
2747         Remove last use of reserveCapacity from JSON stringification, as it results
2748         in appalling append behaviour when there are a large number of property names
2749         and nothing else.
2750
2751         * runtime/JSONObject.cpp:
2752         (JSC::Stringifier::appendQuotedString):
2753
2754 2011-01-25  Antti Koivisto  <antti@apple.com>
2755
2756         Not reviewed.
2757         
2758         Try to fix windows build.
2759
2760         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
2761
2762 2011-01-25  Antti Koivisto  <antti@apple.com>
2763
2764         Reviewed by Oliver Hunt.
2765
2766         REGRESSION: Leak in JSParser::Scope::copyCapturedVariablesToVector()
2767         https://bugs.webkit.org/show_bug.cgi?id=53061
2768          
2769         Cache did not know about the subclass so failed to fully delete the items. 
2770         Got rid of the subclass and moved the classes to separate files.
2771
2772         * CMakeLists.txt:
2773         * GNUmakefile.am:
2774         * JavaScriptCore.exp:
2775         * JavaScriptCore.gypi:
2776         * JavaScriptCore.pro:
2777         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
2778         * JavaScriptCore.xcodeproj/project.pbxproj:
2779         * parser/JSParser.cpp:
2780         (JSC::JSParser::Scope::saveFunctionInfo):
2781         (JSC::JSParser::Scope::restoreFunctionInfo):
2782         (JSC::JSParser::findCachedFunctionInfo):
2783         (JSC::JSParser::parseFunctionInfo):
2784         * parser/SourceProvider.h:
2785         * parser/SourceProviderCache.cpp: Added.
2786         (JSC::SourceProviderCache::~SourceProviderCache):
2787         (JSC::SourceProviderCache::byteSize):
2788         * parser/SourceProviderCache.h: Added.
2789         (JSC::SourceProviderCache::SourceProviderCache):
2790         (JSC::SourceProviderCache::add):
2791         (JSC::SourceProviderCache::get):
2792         * parser/SourceProviderCacheItem.h: Added.
2793         (JSC::SourceProviderCacheItem::SourceProviderCacheItem):
2794         (JSC::SourceProviderCacheItem::approximateByteSize):
2795         (JSC::SourceProviderCacheItem::closeBraceToken):
2796
2797 2011-01-25  Marcilio Mendonca  <mamendonca@rim.com>
2798
2799         Reviewed by Darin Adler.
2800
2801         Bug 53087: Refactoring: replaced a hanging "else" with a "return"
2802         statement
2803         https://bugs.webkit.org/show_bug.cgi?id=53087.
2804
2805         Refactoring work: Replaced a hanging "else" within an #if PLATFORM(M
2806         with a "return" so that the code is more readable and less error pro
2807         (e.g., "else" doesn't use braces so adding extra lines to the else
2808         block won't have any effect; even worse, code still compiles
2809         successfully.
2810
2811         * wtf/Assertions.cpp:
2812
2813 2011-01-24  Chris Marrin  <cmarrin@apple.com>
2814
2815         Reviewed by Eric Seidel.
2816
2817         Change ENABLE_3D_CANVAS to ENABLE_WEBGL
2818         https://bugs.webkit.org/show_bug.cgi?id=53041
2819
2820         * Configurations/FeatureDefines.xcconfig:
2821
2822 2011-01-25  Adam Roben  <aroben@apple.com>
2823
2824         Windows Production build fix
2825
2826         * JavaScriptCore.vcproj/JavaScriptCore.make: Added a missing "set".
2827
2828 2011-01-25  Patrick Gansterer  <paroga@webkit.org>
2829
2830         Reviewed by Eric Seidel.
2831
2832         Add missing defines for COMPILER(RVCT) && CPU(ARM_THUMB2)
2833         https://bugs.webkit.org/show_bug.cgi?id=52949
2834
2835         * jit/JITStubs.cpp:
2836
2837 2011-01-24  Adam Roben  <aroben@apple.com>
2838
2839         Windows Production build fix
2840
2841         * JavaScriptCore.vcproj/JavaScriptCore.make: Update for move of JavaScriptCore into Source.
2842
2843 2011-01-24  Peter Varga  <pvarga@webkit.org>
2844
2845         Reviewed by Oliver Hunt.
2846
2847         Optimize regex patterns which contain empty alternatives
2848         https://bugs.webkit.org/show_bug.cgi?id=51395
2849
2850         Eliminate the empty alternatives from the regex pattern and convert it to do
2851         the matching in an easier way.
2852
2853         * yarr/YarrPattern.cpp:
2854         (JSC::Yarr::YarrPatternConstructor::atomParenthesesEnd):
2855
2856 2011-01-24  Andras Becsi  <abecsi@webkit.org>
2857
2858         Reviewed by Csaba Osztrogonác.
2859
2860         [Qt] Move project files into Source
2861         https://bugs.webkit.org/show_bug.cgi?id=52891
2862
2863         * JavaScriptCore.pri:
2864         * JavaScriptCore.pro:
2865         * jsc.pro:
2866
2867 2011-01-23  Mark Rowe  <mrowe@apple.com>
2868
2869         Follow-up to r76477.
2870
2871         Fix the scripts that detect problematic code such as static initializers
2872         and destructors, weak vtables, inappropriate files in the framework wrappers,
2873         and public headers including private headers. These had all been broken
2874         since the projects were moved in to the Source directory as the paths to the
2875         scripts were not updated at that time.
2876
2877         * JavaScriptCore.xcodeproj/project.pbxproj:
2878
2879 2011-01-23  Patrick Gansterer  <paroga@webkit.org>
2880
2881         Reviewed by Darin Adler.
2882
2883         Use WTF::StringHasher in WebCore
2884         https://bugs.webkit.org/show_bug.cgi?id=52934
2885
2886         Add an additional function to calculate the hash
2887         of data with a runtimedependent size.
2888
2889         * wtf/StringHasher.h:
2890         (WTF::StringHasher::createBlobHash):
2891
2892 2011-01-23  Patrick Gansterer  <paroga@webkit.org>
2893
2894         Reviewed by David Kilzer.
2895
2896         Fix comment in String::ascii()
2897         https://bugs.webkit.org/show_bug.cgi?id=52980
2898
2899         * wtf/text/WTFString.cpp:
2900         (WTF::String::ascii):
2901
2902 2011-01-23  Patrick Gansterer  <paroga@webkit.org>
2903
2904         Reviewed by David Kilzer.
2905
2906         Add String::containsOnlyLatin1()
2907         https://bugs.webkit.org/show_bug.cgi?id=52979
2908
2909         * wtf/text/WTFString.h:
2910         (WTF::String::containsOnlyLatin1):
2911         (WTF::charactersAreAllLatin1):
2912
2913 2011-01-23  Patrick Gansterer  <paroga@webkit.org>
2914
2915         Reviewed by Oliver Hunt.
2916
2917         Remove obsolete JSVALUE32 code
2918         https://bugs.webkit.org/show_bug.cgi?id=52948
2919
2920         r70111 removed support for JSVALUE32.
2921         ARM, MIPS and X86 support JSVALUE32_64 only.
2922
2923         * jit/JITStubs.cpp:
2924
2925 2011-01-22  Geoffrey Garen  <ggaren@apple.com>
2926
2927         Reviewed by Dan Bernstein.
2928
2929         ASSERT running run-webkit-tests --threaded.
2930         https://bugs.webkit.org/show_bug.cgi?id=52971
2931         
2932         SunSpider and v8 report no change.
2933
2934         * runtime/ConservativeSet.cpp:
2935         (JSC::ConservativeSet::grow):
2936         (JSC::ConservativeSet::add):
2937         * runtime/ConservativeSet.h: Tweaked the inline capacity to 128, and
2938         the growth policy to 2X, to make SunSpider and v8 happy.
2939         (JSC::ConservativeSet::ConservativeSet):
2940         (JSC::ConservativeSet::~ConservativeSet):
2941         (JSC::ConservativeSet::mark): Use OSAllocator directly, instead of malloc.
2942         Malloc is forbidden during a multi-threaded mark phase because it can
2943         cause deadlock.
2944
2945 2011-01-22  Geoffrey Garen  <ggaren@apple.com>
2946
2947         Reviewed by Geoffrey Garen.
2948
2949         Rubber-stamped by Maciej Stachowiak.
2950
2951         A few of Maciej's review suggestions for my last patch.
2952         https://bugs.webkit.org/show_bug.cgi?id=52946        
2953
2954         SunSpider reports no change.
2955
2956         * Android.mk:
2957         * CMakeLists.txt:
2958         * GNUmakefile.am:
2959         * JavaScriptCore.gypi:
2960         * JavaScriptCore.pro:
2961         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
2962         * JavaScriptCore.xcodeproj/project.pbxproj: Updated build systems.
2963
2964         * runtime/ConservativeSet.cpp: Added.
2965         (JSC::isPointerAligned):
2966         (JSC::ConservativeSet::add):
2967         * runtime/ConservativeSet.h: Added.
2968         (JSC::ConservativeSet::ConservativeSet):
2969         (JSC::ConservativeSet::mark): Split ConservativeSet out into its own
2970         file, and moved the conservative check into ConservativeSet::add, making
2971         ConservativeSet's responsibility clearer.
2972
2973         * runtime/Heap.cpp:
2974         (JSC::Heap::markRoots):
2975         * runtime/MachineStackMarker.cpp:
2976         (JSC::MachineStackMarker::markCurrentThreadConservativelyInternal):
2977         (JSC::MachineStackMarker::markOtherThreadConservatively):
2978         * runtime/MachineStackMarker.h:
2979         * runtime/MarkStack.h: Updated for changes above.
2980
2981 2011-01-22  Patrick Gansterer  <paroga@webkit.org>
2982
2983         Unreviewed WinCE build fix for r76430.
2984
2985         * runtime/MachineStackMarker.cpp:
2986         (JSC::swapIfBackwards):
2987
2988 2011-01-21  Geoffrey Garen  <ggaren@apple.com>
2989
2990         Reviewed by Beth Dakin.
2991
2992         Reorganized MarkedSpace, making many of its functions private.
2993
2994         * runtime/JSCell.h:
2995         (JSC::JSCell::Heap::heap):
2996         * runtime/MarkedSpace.h:
2997         (JSC::MarkedSpace::globalData):
2998         (JSC::MarkedSpace::heap):
2999
3000 2011-01-21  Geoffrey Garen  <ggaren@apple.com>
3001
3002         Try to fix build: moved helper function out of #ifdef.
3003
3004         * runtime/MachineStackMarker.cpp:
3005         (JSC::swapIfBackwards):
3006
3007 2011-01-21  Geoffrey Garen  <ggaren@apple.com>
3008
3009         Rubber-stamped by Maciej Stachowiak.
3010
3011         A few of Maciej's review suggestions for my last patch.
3012         https://bugs.webkit.org/show_bug.cgi?id=52946        
3013
3014         SunSpider reports no change.
3015
3016         * runtime/MachineStackMarker.cpp:
3017         (JSC::swapIfBackwards): Added a helper function for handling platforms
3018         where the stack can grow in any direction.
3019
3020         (JSC::MachineStackMarker::markCurrentThreadConservativelyInternal):
3021         (JSC::MachineStackMarker::markOtherThreadConservatively): Use the helper
3022         function.
3023
3024         (JSC::isPointerAligned): Use "!" instead of "==0" because a robot told me to.
3025
3026         (JSC::MachineStackMarker::markConservatively): Changed to use a more
3027         standard looping idiom, and to use the helper function above.
3028
3029         * runtime/MarkedSpace.h:
3030         (JSC::MarkedSpace::isCellAligned): Use "!" instead of "==0" because a robot told me to.
3031
3032 2011-01-21  Geoffrey Garen  <ggaren@apple.com>
3033
3034         Reviewed by Maciej Stachowiak.
3035
3036         Cleaned up some conservative marking code.
3037         https://bugs.webkit.org/show_bug.cgi?id=52946
3038         
3039         SunSpider reports no change.
3040
3041         * interpreter/RegisterFile.h: No need for a special marking function,
3042         since we already expose a start() and end().
3043
3044         * runtime/Heap.cpp:
3045         (JSC::Heap::registerFile):
3046         (JSC::Heap::markRoots):
3047         * runtime/Heap.h:
3048         (JSC::Heap::contains): Migrated markConservatively() to the machine stack
3049         marker class. Now, Heap just provides a contains() function, which the
3050         machine stack marker uses for checking whether a pointer points into the heap.
3051
3052         * runtime/MachineStackMarker.cpp:
3053         (JSC::MachineStackMarker::markCurrentThreadConservativelyInternal):
3054         (JSC::MachineStackMarker::markOtherThreadConservatively):
3055         (JSC::isPointerAligned):
3056         (JSC::MachineStackMarker::markConservatively):
3057         * runtime/MachineStackMarker.h: Move the conservative marking code here.
3058
3059         * runtime/MarkStack.h:
3060         (JSC::ConservativeSet::add):
3061         (JSC::ConservativeSet::mark): Changed to using a vector instead of hash
3062         set. Vector seems to be a bit faster, and it generates smaller code.
3063
3064         * runtime/MarkedSpace.cpp:
3065         (JSC::MarkedSpace::containsSlowCase):
3066         * runtime/MarkedSpace.h:
3067         (JSC::MarkedSpace::isCellAligned):
3068         (JSC::MarkedSpace::isPossibleCell):
3069         (JSC::MarkedSpace::contains): Kept the code for determining whether a
3070         pointer pointed into marked space, and moved the code for marking
3071         a set of conservative pointers into the machine stack marker.
3072
3073         * wtf/HashSet.h:
3074         (WTF::::add): Added two missing inlines that I noticed while testing
3075         vector vs hash set.
3076
3077 2011-01-21  Mark Rowe  <mrowe@apple.com>
3078
3079         Reviewed by Sam Weinig.
3080
3081         Work around a Clang bug <rdar://problem/8876150> that leads to it incorrectly emitting an access
3082         control warning when a client tries to use operator bool exposed above via "using PageBlock::operator bool".
3083
3084         * wtf/PageAllocation.h:
3085         (WTF::PageAllocation::operator bool):
3086         * wtf/PageReservation.h:
3087         (WTF::PageReservation::operator bool):
3088
3089 2011-01-21  Michael Saboff  <msaboff@apple.com>
3090
3091         Reviewed by Oliver Hunt.
3092
3093         [RegexFuzz] Hang with forward assertion
3094         https://bugs.webkit.org/show_bug.cgi?id=52825
3095         <rdar://problem/8894332>
3096
3097         The backtrackTo label from the first term in a list of terms is
3098         being overwritten by processing of subsequent terms.  Changed
3099         copyBacktrackToLabel() to check for an existing bcaktrackTo label
3100         before copying and renamed it to propagateBacktrackToLabel() since
3101         it no longer copies.
3102
3103         * yarr/YarrJIT.cpp:
3104         (JSC::Yarr::YarrGenerator::BacktrackDestination::propagateBacktrackToLabel):
3105         (JSC::Yarr::YarrGenerator::generateParenthesesSingle):
3106
3107 2011-01-21  Geoffrey Garen  <ggaren@apple.com>
3108
3109         Reviewed by Sam Weinig.
3110
3111         Moved the mark stack from global data to the heap, since it pertains
3112         to the heap, and not the virtual machine as a whole.
3113         https://bugs.webkit.org/show_bug.cgi?id=52930
3114         
3115         SunSpider reports no change.
3116
3117         * runtime/Heap.cpp:
3118         (JSC::Heap::Heap):
3119         (JSC::Heap::markRoots):
3120         * runtime/Heap.h:
3121         * runtime/JSGlobalData.cpp:
3122         (JSC::JSGlobalData::JSGlobalData):
3123         * runtime/JSGlobalData.h:
3124
3125 2011-01-21  Peter Gal  <galpeter@inf.u-szeged.hu>
3126
3127         Reviewed by Darin Adler.
3128
3129         REGRESSION(r76177): All JavaScriptCore tests fail on ARM
3130         https://bugs.webkit.org/show_bug.cgi?id=52814
3131
3132         Get the approximateByteSize value before releasing the OwnPtr.
3133
3134         * parser/JSParser.cpp:
3135         (JSC::JSParser::parseFunctionInfo):
3136
3137 2011-01-21  Xan Lopez  <xlopez@igalia.com>
3138
3139         Reviewed by Martin Robinson.
3140
3141         Remove unnecessary <stdio.h> include
3142         https://bugs.webkit.org/show_bug.cgi?id=52884
3143
3144         * jit/JIT.cpp: remove unnecessary include.
3145
3146 2011-01-20  Ryosuke Niwa  <rniwa@webkit.org>
3147
3148         Reviewed by Maciej Stachowiak.
3149
3150         Added OwnPtrCommon.h because OwnArrayPtr::set calls deleteOwnedPtr.
3151
3152         * wtf/OwnArrayPtr.h:
3153
3154 2011-01-20  Patrick Gansterer  <paroga@webkit.org>
3155
3156         Reviewed by Oliver Hunt.
3157
3158         [WINCE] Remove obsolete JSVALUE32 code
3159         https://bugs.webkit.org/show_bug.cgi?id=52450
3160
3161         Remove the "offset hack" in create_jit_stubs, since we
3162         only support JSVALUE32_64 in the meantime.
3163
3164         * create_jit_stubs: Removed offset argument
3165         * jit/JITStubs.cpp:
3166
3167 2011-01-20  Geoffrey Garen  <ggaren@apple.com>
3168
3169         Reviewed by Oliver Hunt.
3170
3171         When marking conservatively, guard against reviving dead objects.
3172         https://bugs.webkit.org/show_bug.cgi?id=52840
3173         
3174         SunSpider and v8 say no change.
3175
3176         * interpreter/RegisterFile.h:
3177         (JSC::RegisterFile::markCallFrames): Updated to use the ConservativeSet API.
3178
3179         * runtime/Heap.cpp:
3180         (JSC::Heap::recordExtraCost): No need to guard against conservative
3181         marking reviving dead objects anymore, since the conservative marking
3182         mechanism guards against this now.
3183
3184         (JSC::Heap::markConservatively):
3185         (JSC::Heap::markProtectedObjects):
3186         (JSC::Heap::markTempSortVectors): Don't drain the mark stack inside a
3187         marking function. We want to establish a separation of concerns between
3188         visiting roots and draining the mark stack.
3189
3190         (JSC::Heap::markRoots): Gather the set of conservative references before
3191         clearning mark bits, because conservative marking now uses the mark bits
3192         to determine if a reference is valid, and avoid reviving dead objects.
3193
3194         (JSC::Heap::collectAllGarbage): No need to guard against conservative
3195         marking reviving dead objects anymore, since the conservative marking
3196         mechanism guards against this now.
3197
3198         * runtime/Heap.h: Updated to use the ConservativeSet API.
3199
3200         * runtime/MachineStackMarker.cpp:
3201         (JSC::MachineStackMarker::markCurrentThreadConservativelyInternal):
3202         (JSC::MachineStackMarker::markCurrentThreadConservatively):
3203         (JSC::MachineStackMarker::markOtherThreadConservatively):
3204         (JSC::MachineStackMarker::markMachineStackConservatively):
3205         * runtime/MachineStackMarker.h: Ditto.
3206
3207         * runtime/MarkStack.h:
3208         (JSC::ConservativeSet::add):
3209         (JSC::ConservativeSet::mark): Added ConservativeSet, for gathering the
3210         set of conservative references. This is different from MarkStack, since
3211         we don't mark the set until it is completely gathered.
3212
3213         * runtime/MarkedSpace.cpp:
3214         (JSC::MarkedSpace::freeBlock):
3215         (JSC::MarkedSpace::resizeBlocks):
3216         (JSC::MarkedSpace::markConservatively):
3217         * runtime/MarkedSpace.h: When marking conservatively, guard against
3218         reviving dead objects.
3219
3220 2011-01-20  Siddharth Mathur  <siddharth.mathur@nokia.com>
3221
3222         Reviewed by Geoffrey Garen.
3223
3224         [Symbian] Fix StackBounds::initialize()
3225         https://bugs.webkit.org/show_bug.cgi?id=52842
3226
3227         * wtf/StackBounds.cpp:
3228         (WTF::StackBounds::initialize): Use TThreadStackInfo.iLimit for stack limit
3229
3230 2011-01-20  Michael Saboff  <msaboff@apple.com>
3231
3232         Reviewed by Oliver Hunt.
3233
3234         <rdar://problem/8890203> [RegexFuzz] Crash in generated code (52773)
3235         https://bugs.webkit.org/show_bug.cgi?id=52773
3236
3237         Fixed case where an existing DataLabelPtr is overwritten.  The
3238         replacing DataLabelPtr is now resolved immediately in
3239         linkDataLabelToBacktrackIfExists().  Cleanup - eliminated bool
3240         return value for the routine as it was never used.
3241
3242         * yarr/YarrJIT.cpp:
3243         (JSC::Yarr::YarrGenerator::TermGenerationState::linkDataLabelToBacktrackIfExists):
3244
3245 2011-01-20  Andras Becsi  <abecsi@webkit.org>
3246
3247         Reviewed by Csaba Osztrogonác.
3248
3249         [Qt][WK2] WebKit2 enabled build fails to link
3250
3251         Work around undefined reference linking issues until the buildsystem gets redesigned.
3252         These issues first occured in minimal builds (see BUG 50519).
3253
3254         * JavaScriptCore.pri: link as whole-archive for WebKit2 builds
3255
3256 2011-01-20  Zoltan Horvath  <zoltan@webkit.org>
3257
3258         Reviewed by Csaba Osztrogonác.
3259
3260         Refactoring of the custom allocation framework
3261         https://bugs.webkit.org/show_bug.cgi?id=49897
3262
3263         Inheriting from FastAllocBase can result in objects getting larger (bug #33896, #46589).
3264         The modification replaces Noncopyable and FastAllocBase classes and these inherits with their
3265         equivalent macro implementation at the necessary places.
3266
3267         * wtf/FastAllocBase.h: Turn FastAllocBase's implementation into a macro.
3268
3269 2011-01-20  Mark Rowe  <mrowe@apple.com>
3270
3271         Reviewed by Maciej Stachowiak.
3272
3273         Follow-up to r75766 / <rdar://problem/5469576>.
3274
3275         We were failing to initialize the key, causing all sorts of unexpected behavior.
3276
3277         * wtf/FastMalloc.cpp:
3278         (WTF::setThreadHeap):
3279         (WTF::TCMalloc_ThreadCache::GetThreadHeap):
3280         (WTF::TCMalloc_ThreadCache::InitTSD): Ensure that the key is initialized.
3281
3282 2011-01-18  Geoffrey Garen  <ggaren@apple.com>
3283
3284         Reviewed by Darin Adler.
3285
3286         Rolled back in r76078, with crash fixed.
3287         https://bugs.webkit.org/show_bug.cgi?id=52668
3288         
3289         * runtime/JSGlobalObject.cpp:
3290         (JSC::JSGlobalObject::markChildren): Account for the fact that the global
3291         object moves its variables into and out of the register file. While out
3292         of the register file, the symbol table's size is not an accurate count
3293         for the size of the register array, since the BytecodeGenerator might
3294         be compiling, adding items to the symbol table.
3295         
3296 2011-01-18  Darin Adler  <darin@apple.com>
3297
3298         Reviewed by Geoffrey Garen.
3299
3300         Stack overflow when converting an Error object to string
3301         https://bugs.webkit.org/show_bug.cgi?id=46410
3302
3303         * Android.mk: Added StringRecursionChecker.cpp and
3304         StringRecursionChecker.h.
3305         * CMakeLists.txt: Ditto.
3306         * GNUmakefile.am: Ditto.
3307         * JavaScriptCore.gypi: Ditto.
3308         * JavaScriptCore.pro: Ditto.
3309         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj: Ditto.
3310         * JavaScriptCore.xcodeproj/project.pbxproj: Ditto.
3311
3312         * runtime/ArrayPrototype.cpp:
3313         (JSC::arrayProtoFuncToString): Use StringRecursionChecker instead
3314         of the older hand-written code to do the same thing.
3315         (JSC::arrayProtoFuncToLocaleString): Ditto.
3316         (JSC::arrayProtoFuncJoin): Ditto.
3317
3318         * runtime/ErrorPrototype.cpp:
3319         (JSC::errorProtoFuncToString): Use StringRecursionChecker.
3320
3321         * runtime/JSGlobalData.h: Renamed arrayVisitedElements to
3322         stringRecursionCheckVisitedObjects.
3323
3324         * runtime/RegExpPrototype.cpp:
3325         (JSC::regExpProtoFuncToString): Use StringRecursionChecker.
3326
3327         * runtime/StringRecursionChecker.cpp: Added.
3328         * runtime/StringRecursionChecker.h: Added.
3329
3330 2011-01-19  Oliver Hunt  <oliver@apple.com>
3331
3332         Reviewed by Gavin Barraclough.
3333
3334         Remove non-spec support for callable RegExp
3335         https://bugs.webkit.org/show_bug.cgi?id=28285
3336
3337         Remove support for callable regexps.  If it breaks sites we can
3338         just roll this out.
3339
3340         * runtime/RegExpObject.cpp:
3341         * runtime/RegExpObject.h:
3342         * tests/mozilla/expected.html: update results.
3343
3344 2011-01-19  Antti Koivisto  <antti@apple.com>
3345
3346         Reviewed by Oliver Hunt.
3347
3348         Cache function offsets to speed up javascript parsing
3349         https://bugs.webkit.org/show_bug.cgi?id=52622
3350         
3351         Use cache to save function offsets and some other info.
3352         This avoids quite a bit of work when reparsing the source.
3353
3354         * parser/ASTBuilder.h:
3355         * parser/JSParser.cpp:
3356         (JSC::JSParser::CachedFunctionInfo::CachedFunctionInfo):
3357         (JSC::JSParser::CachedFunctionInfo::approximateByteSize):
3358         (JSC::JSParser::CachedFunctionInfo::closeBraceToken):
3359         (JSC::JSParser::Scope::copyCapturedVariablesToVector):
3360         (JSC::JSParser::Scope::saveFunctionInfo):
3361         (JSC::JSParser::Scope::restoreFunctionInfo):
3362         (JSC::JSParser::findCachedFunctionInfo):
3363         (JSC::JSParser::JSParser):
3364         (JSC::JSParser::parseProgram):
3365         (JSC::JSParser::parseFunctionInfo):
3366         * parser/Lexer.h:
3367         (JSC::Lexer::setOffset):
3368         (JSC::Lexer::setLineNumber):
3369         (JSC::Lexer::sourceProvider):
3370         * parser/SourceProvider.h:
3371         (JSC::SourceProviderCache::SourceProviderCache):
3372         (JSC::SourceProviderCache::~SourceProviderCache):
3373         (JSC::SourceProviderCache::byteSize):
3374         (JSC::SourceProviderCache::add):
3375         (JSC::SourceProviderCache::get):
3376         (JSC::SourceProvider::SourceProvider):
3377         (JSC::SourceProvider::~SourceProvider):
3378         (JSC::SourceProvider::cache):
3379         (JSC::SourceProvider::notifyCacheSizeChanged):
3380         (JSC::SourceProvider::cacheSizeChanged):
3381         * parser/SyntaxChecker.h:
3382
3383 2011-01-19  Mark Rowe  <mrowe@apple.com>
3384
3385         Reviewed by Darin Adler.
3386
3387         Follow-up to r75766 / <rdar://problem/5469576>.
3388
3389         * DerivedSources.make: Evaluate the SDKROOT variable correctly.
3390
3391 2011-01-19  Oliver Hunt  <oliver@apple.com>
3392
3393         Reviewed by Gavin Barraclough.
3394
3395         [jsfunfuzz] Defining a function called __proto__ inside an eval triggers an assertion
3396         https://bugs.webkit.org/show_bug.cgi?id=52672
3397
3398         Rather than coming up with a somewhat convoluted mechanism to ensure that
3399         developers can override the global objects prototype with a function named
3400         __proto__ and expect it to work, we just disallow it at the syntax level.
3401
3402         * parser/JSParser.cpp:
3403         (JSC::JSParser::parseFunctionInfo):
3404
3405 2011-01-19  Michael Saboff  <msaboff@apple.com>
3406
3407         Reviewed by Darin Adler.
3408
3409         <rdar://problem/8882994> Regression: Simple nested backtrack hangs
3410         https://bugs.webkit.org/show_bug.cgi?id=52675
3411
3412         The changeset (r76076) for https://bugs.webkit.org/show_bug.cgi?id=52540
3413         broke simple backtracking in some cases.  Reworked that change to 
3414         link both jumps and labels.
3415
3416         * yarr/YarrJIT.cpp:
3417         (JSC::Yarr::YarrGenerator::BacktrackDestination::hasBacktrackToLabel):
3418         (JSC::Yarr::YarrGenerator::TermGenerationState::propagateBacktrackingFrom):
3419         (JSC::Yarr::YarrGenerator::generateParenthesesSingle):
3420
3421 2011-01-19  Pavel Podivilov  <podivilov@chromium.org>
3422
3423         Reviewed by Yury Semikhatsky.
3424
3425         Web Inspector: [JSC] scripts have incorrect starting line (always 1).
3426         https://bugs.webkit.org/show_bug.cgi?id=52721
3427
3428         * debugger/Debugger.cpp:
3429         (JSC::Debugger::recompileAllJSFunctions):
3430         * debugger/Debugger.h:
3431         * parser/Parser.h:
3432         (JSC::Parser::parse):
3433         * parser/SourceCode.h:
3434         (JSC::SourceCode::SourceCode):
3435         * parser/SourceProvider.h:
3436         (JSC::SourceProvider::startPosition):
3437
3438 2011-01-19  Csaba Osztrogonác  <ossy@webkit.org>
3439
3440         Reviewed by Laszlo Gombos and Tor Arne Vestbø.
3441
3442         [Qt] Remove unnecessary "../Source" from paths
3443         after moving source files into Source is finished.
3444
3445         * JavaScriptCore.pri:
3446
3447 2011-01-19  Benjamin Kalman  <kalman@chromium.org>
3448
3449         Reviewed by Darin Adler.
3450
3451         Don't return void from void function String::split
3452         https://bugs.webkit.org/show_bug.cgi?id=52684
3453
3454         * wtf/text/WTFString.cpp:
3455         (WTF::String::split):
3456
3457 2011-01-18  Kenneth Russell  <kbr@google.com>
3458
3459         Unreviewed, rolling out r76078.
3460         http://trac.webkit.org/changeset/76078
3461         https://bugs.webkit.org/show_bug.cgi?id=52668
3462
3463         Caused crashes of fast/canvas/webgl/constants.html,
3464         fast/canvas/webgl/gl-enum-tests.html, and possibly other layout
3465         test crashes in Release mode. WebGL crashes were observed with
3466         "run-webkit-tests fast/canvas/webgl". It was necessary to run
3467         multiple tests to provoke the crash.
3468
3469         * interpreter/RegisterFile.h:
3470         (JSC::RegisterFile::markGlobals):
3471         * runtime/JSActivation.cpp:
3472         (JSC::JSActivation::markChildren):
3473         * runtime/JSGlobalObject.cpp:
3474         (JSC::JSGlobalObject::markChildren):
3475
3476 2011-01-18  Oliver Hunt  <oliver@apple.com>
3477
3478         Reviewed by Gavin Barraclough.
3479
3480         [jsfunfuzz] Assertion asking activation for arguments when arguments is overridden
3481         https://bugs.webkit.org/show_bug.cgi?id=52690
3482
3483         Clean up code to retrieve arguments from activation and function objects.
3484         Remove the incorrect assertion from JSActivation's argumentsGetter.
3485
3486         * interpreter/Interpreter.cpp:
3487         (JSC::Interpreter::retrieveArguments):
3488         * runtime/JSActivation.cpp:
3489         (JSC::JSActivation::argumentsGetter):
3490
3491 2011-01-18  Geoffrey Garen  <ggaren@apple.com>
3492
3493         Reviewed by Darin Adler.
3494
3495         Removed RegisterFile::markGlobals because it was obtuse, and it
3496         unnecessarily relied on conservative marking.
3497         https://bugs.webkit.org/show_bug.cgi?id=52668
3498
3499         * interpreter/RegisterFile.h: Removed markGlobals.
3500
3501         * runtime/JSActivation.cpp:
3502         (JSC::JSActivation::markChildren): Added a comment explaning why some
3503         JSActivations don't always mark their registers arrays.
3504
3505         * runtime/JSGlobalObject.cpp:
3506         (JSC::JSGlobalObject::markChildren): Instead of calling markGlobals, mark
3507         the registers array directly.
3508
3509 2011-01-18  Michael Saboff  <msaboff@apple.com>
3510
3511         Reviewed by Oliver Hunt.
3512
3513         <rdar://problem/8875432> Regression: Some text-only e-mails cause hang beneath RegExp::match (52540)
3514         https://bugs.webkit.org/show_bug.cgi?id=52540
3515         https://bugs.webkit.org/show_bug.cgi?id=52662
3516
3517         Directly use backtrack label with parentheses nested under a
3518         non-capturing parentheses.  Also linked current parentheses
3519         tail code object for possible parens nested within a non-capturing
3520         parentheses.
3521
3522         * yarr/YarrJIT.cpp:
3523         (JSC::Yarr::YarrGenerator::BacktrackDestination::linkBacktrackToLabel):
3524         (JSC::Yarr::YarrGenerator::generateParenthesesSingle):
3525
3526 2011-01-18  Daniel Bates  <dbates@rim.com>
3527
3528         Reviewed by Gavin Barraclough.
3529
3530         Only use moving memory model assumption in ExecutableAllocator::intializePageSize() for Symbian OS
3531         https://bugs.webkit.org/show_bug.cgi?id=52517
3532
3533         Patch by David Tapuska
3534
3535         Currently, we compile code with respect to the Symbian-specific moving memory model
3536         assumption for all ARMv5 or lower architectures. Instead, we should only compile
3537         such code when building for Symbian OS on those architectures because this model
3538         is Symbian-specific.
3539
3540    &n