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