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