2011-04-17 Patrick Gansterer <paroga@webkit.org>
[WebKit.git] / Source / JavaScriptCore / ChangeLog
1 2011-04-17  Patrick Gansterer  <paroga@webkit.org>
2
3         Reviewed by Adam Barth.
4
5         Remove WTF_PLATFORM_SGL
6         https://bugs.webkit.org/show_bug.cgi?id=58743
7
8         WTF_PLATFORM_SGL and PLATFORM(SGL) are not used in the code anywhere.
9
10         * wtf/Platform.h:
11
12 2011-04-17  Patrick Gansterer  <paroga@webkit.org>
13
14         Reviewed by Adam Barth.
15
16         Rename PLATFORM(CA) to USE(CA)
17         https://bugs.webkit.org/show_bug.cgi?id=58742
18
19         * wtf/Platform.h:
20
21 2011-04-17  Patrick Gansterer  <paroga@webkit.org>
22
23         Reviewed by Adam Barth.
24
25         Rename PLATFORM(CG) to USE(CG)
26         https://bugs.webkit.org/show_bug.cgi?id=58729
27
28         * wtf/Platform.h:
29
30 2011-04-16  Patrick Gansterer  <paroga@webkit.org>
31
32         Reviewed by Eric Seidel.
33
34         Rename PLATFORM(CAIRO) to USE(CAIRO)
35         https://bugs.webkit.org/show_bug.cgi?id=55192
36
37         * wtf/Platform.h:
38         * wtf/gobject/GTypedefs.h:
39
40 2011-04-15  Sheriff Bot  <webkit.review.bot@gmail.com>
41
42         Unreviewed, rolling out r84067.
43         http://trac.webkit.org/changeset/84067
44         https://bugs.webkit.org/show_bug.cgi?id=58724
45
46         qt build are failing. (Requested by loislo2 on #webkit).
47
48         * heap/MarkStack.h:
49         (JSC::MarkStack::append):
50         * runtime/JSValue.h:
51         * runtime/WriteBarrier.h:
52         (JSC::DeprecatedPtr::DeprecatedPtr):
53         (JSC::DeprecatedPtr::get):
54         (JSC::DeprecatedPtr::operator*):
55         (JSC::DeprecatedPtr::operator->):
56         (JSC::DeprecatedPtr::slot):
57         (JSC::DeprecatedPtr::operator UnspecifiedBoolType*):
58         (JSC::DeprecatedPtr::operator!):
59         (JSC::operator==):
60
61 2011-04-15  Shishir Agrawal  <shishir@chromium.org>
62
63         Reviewed by James Robinson.
64
65         Add a flag to guard Page Visibility API changes.
66         https://bugs.webkit.org/show_bug.cgi?id=58464
67
68         * Configurations/FeatureDefines.xcconfig:
69
70 2011-04-15  Gavin Barraclough  <barraclough@apple.com>
71
72         Errrk! - build fix from !x86-64.
73
74         * dfg/DFGNode.h:
75
76 2011-04-15  David Levin  <levin@chromium.org>
77
78         Revert of r83974.
79
80         JavaScriptCore shouldn't depend on ../ThirdParty/gtest/xcode/gtest.xcodeproj
81         https://bugs.webkit.org/show_bug.cgi?id=58716
82
83         * JavaScriptCore.xcodeproj/project.pbxproj:
84         * wtf/tests/RunAllWtfTests.cpp: Removed.
85         * wtf/tests/StringTests.cpp: Removed.
86
87 2011-04-15  Oliver Hunt  <oliver@apple.com>
88
89         Reviewed by Gavin Barraclough.
90
91         Remove DeprecatedPtr
92         https://bugs.webkit.org/show_bug.cgi?id=58718
93
94         As simple as it sounds.
95
96         * heap/MarkStack.h:
97         (JSC::MarkStack::append):
98         * runtime/JSValue.h:
99         * runtime/WriteBarrier.h:
100
101 2011-04-15  Gavin Barraclough  <barraclough@apple.com>
102
103         Reviewed by Oliver Hunt.
104
105         Add a simple tool to gather statistics on whether functions
106         are completed through the new or old JIT.
107
108         * dfg/DFGNode.h:
109         * dfg/DFGNonSpeculativeJIT.cpp:
110         (JSC::DFG::NonSpeculativeJIT::compile):
111         * dfg/DFGSpeculativeJIT.cpp:
112         (JSC::DFG::SpeculativeJIT::compile):
113         * jit/JIT.cpp:
114         (JSC::JIT::privateCompile):
115
116 2011-04-15  Oliver Hunt  <oliver@apple.com>
117
118         GC allocate Structure
119         https://bugs.webkit.org/show_bug.cgi?id=58483
120
121         Rolling r83894 r83827 r83810 r83809 r83808 back in with
122         a workaround for the gcc bug seen by the gtk bots
123
124         * API/JSCallbackConstructor.cpp:
125         (JSC::JSCallbackConstructor::JSCallbackConstructor):
126         * API/JSCallbackConstructor.h:
127         (JSC::JSCallbackConstructor::createStructure):
128         * API/JSCallbackFunction.h:
129         (JSC::JSCallbackFunction::createStructure):
130         * API/JSCallbackObject.h:
131         (JSC::JSCallbackObject::createStructure):
132         * API/JSCallbackObjectFunctions.h:
133         (JSC::::JSCallbackObject):
134         * API/JSContextRef.cpp:
135         * JavaScriptCore.JSVALUE32_64only.exp:
136         * JavaScriptCore.JSVALUE64only.exp:
137         * JavaScriptCore.exp:
138         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
139         * bytecode/CodeBlock.cpp:
140         (JSC::CodeBlock::~CodeBlock):
141         (JSC::CodeBlock::markStructures):
142         (JSC::CodeBlock::markAggregate):
143         * bytecode/CodeBlock.h:
144         (JSC::MethodCallLinkInfo::setSeen):
145         (JSC::GlobalResolveInfo::GlobalResolveInfo):
146         * bytecode/Instruction.h:
147         (JSC::PolymorphicAccessStructureList::PolymorphicStubInfo::set):
148         (JSC::PolymorphicAccessStructureList::PolymorphicAccessStructureList):
149         (JSC::PolymorphicAccessStructureList::markAggregate):
150         (JSC::Instruction::Instruction):
151         * bytecode/StructureStubInfo.cpp:
152         (JSC::StructureStubInfo::deref):
153         (JSC::StructureStubInfo::markAggregate):
154         * bytecode/StructureStubInfo.h:
155         (JSC::StructureStubInfo::initGetByIdSelf):
156         (JSC::StructureStubInfo::initGetByIdProto):
157         (JSC::StructureStubInfo::initGetByIdChain):
158         (JSC::StructureStubInfo::initPutByIdTransition):
159         (JSC::StructureStubInfo::initPutByIdReplace):
160         * debugger/DebuggerActivation.cpp:
161         (JSC::DebuggerActivation::DebuggerActivation):
162         * debugger/DebuggerActivation.h:
163         (JSC::DebuggerActivation::createStructure):
164         * heap/Handle.h:
165         * heap/MarkStack.cpp:
166         (JSC::MarkStack::markChildren):
167         (JSC::MarkStack::drain):
168         * heap/MarkedBlock.cpp:
169         (JSC::MarkedBlock::MarkedBlock):
170         (JSC::MarkedBlock::sweep):
171         * heap/Strong.h:
172         (JSC::Strong::Strong):
173         (JSC::Strong::set):
174         * interpreter/Interpreter.cpp:
175         (JSC::Interpreter::resolveGlobal):
176         (JSC::Interpreter::resolveGlobalDynamic):
177         (JSC::Interpreter::tryCachePutByID):
178         (JSC::Interpreter::uncachePutByID):
179         (JSC::Interpreter::tryCacheGetByID):
180         (JSC::Interpreter::uncacheGetByID):
181         (JSC::Interpreter::privateExecute):
182         * jit/JIT.h:
183         * jit/JITPropertyAccess.cpp:
184         (JSC::JIT::privateCompilePutByIdTransition):
185         (JSC::JIT::patchMethodCallProto):
186         (JSC::JIT::privateCompileGetByIdProto):
187         (JSC::JIT::privateCompileGetByIdSelfList):
188         (JSC::JIT::privateCompileGetByIdProtoList):
189         (JSC::JIT::privateCompileGetByIdChainList):
190         (JSC::JIT::privateCompileGetByIdChain):
191         * jit/JITPropertyAccess32_64.cpp:
192         (JSC::JIT::privateCompilePutByIdTransition):
193         (JSC::JIT::patchMethodCallProto):
194         (JSC::JIT::privateCompileGetByIdProto):
195         (JSC::JIT::privateCompileGetByIdSelfList):
196         (JSC::JIT::privateCompileGetByIdProtoList):
197         (JSC::JIT::privateCompileGetByIdChainList):
198         (JSC::JIT::privateCompileGetByIdChain):
199         * jit/JITStubs.cpp:
200         (JSC::JITThunks::tryCachePutByID):
201         (JSC::JITThunks::tryCacheGetByID):
202         (JSC::DEFINE_STUB_FUNCTION):
203         (JSC::getPolymorphicAccessStructureListSlot):
204         * jit/JSInterfaceJIT.h:
205         (JSC::JSInterfaceJIT::storePtrWithWriteBarrier):
206         * jsc.cpp:
207         (cleanupGlobalData):
208         * runtime/Arguments.h:
209         (JSC::Arguments::createStructure):
210         (JSC::Arguments::Arguments):
211         (JSC::JSActivation::copyRegisters):
212         * runtime/ArrayConstructor.cpp:
213         (JSC::ArrayConstructor::ArrayConstructor):
214         (JSC::constructArrayWithSizeQuirk):
215         * runtime/ArrayConstructor.h:
216         * runtime/ArrayPrototype.cpp:
217         (JSC::ArrayPrototype::ArrayPrototype):
218         (JSC::arrayProtoFuncSplice):
219         * runtime/ArrayPrototype.h:
220         (JSC::ArrayPrototype::createStructure):
221         * runtime/BatchedTransitionOptimizer.h:
222         (JSC::BatchedTransitionOptimizer::BatchedTransitionOptimizer):
223         * runtime/BooleanConstructor.cpp:
224         (JSC::BooleanConstructor::BooleanConstructor):
225         * runtime/BooleanConstructor.h:
226         * runtime/BooleanObject.cpp:
227         (JSC::BooleanObject::BooleanObject):
228         * runtime/BooleanObject.h:
229         (JSC::BooleanObject::createStructure):
230         * runtime/BooleanPrototype.cpp:
231         (JSC::BooleanPrototype::BooleanPrototype):
232         * runtime/BooleanPrototype.h:
233         * runtime/DateConstructor.cpp:
234         (JSC::DateConstructor::DateConstructor):
235         * runtime/DateConstructor.h:
236         * runtime/DateInstance.cpp:
237         (JSC::DateInstance::DateInstance):
238         * runtime/DateInstance.h:
239         (JSC::DateInstance::createStructure):
240         * runtime/DatePrototype.cpp:
241         (JSC::DatePrototype::DatePrototype):
242         * runtime/DatePrototype.h:
243         (JSC::DatePrototype::createStructure):
244         * runtime/Error.cpp:
245         (JSC::StrictModeTypeErrorFunction::StrictModeTypeErrorFunction):
246         * runtime/ErrorConstructor.cpp:
247         (JSC::ErrorConstructor::ErrorConstructor):
248         * runtime/ErrorConstructor.h:
249         * runtime/ErrorInstance.cpp:
250         (JSC::ErrorInstance::ErrorInstance):
251         (JSC::ErrorInstance::create):
252         * runtime/ErrorInstance.h:
253         (JSC::ErrorInstance::createStructure):
254         * runtime/ErrorPrototype.cpp:
255         (JSC::ErrorPrototype::ErrorPrototype):
256         * runtime/ErrorPrototype.h:
257         * runtime/ExceptionHelpers.cpp:
258         (JSC::InterruptedExecutionError::InterruptedExecutionError):
259         (JSC::TerminatedExecutionError::TerminatedExecutionError):
260         * runtime/Executable.cpp:
261         * runtime/Executable.h:
262         (JSC::ExecutableBase::ExecutableBase):
263         (JSC::ExecutableBase::createStructure):
264         (JSC::NativeExecutable::createStructure):
265         (JSC::NativeExecutable::NativeExecutable):
266         (JSC::ScriptExecutable::ScriptExecutable):
267         (JSC::EvalExecutable::createStructure):
268         (JSC::ProgramExecutable::createStructure):
269         (JSC::FunctionExecutable::createStructure):
270         * runtime/FunctionConstructor.cpp:
271         (JSC::FunctionConstructor::FunctionConstructor):
272         * runtime/FunctionConstructor.h:
273         * runtime/FunctionPrototype.cpp:
274         (JSC::FunctionPrototype::FunctionPrototype):
275         * runtime/FunctionPrototype.h:
276         (JSC::FunctionPrototype::createStructure):
277         * runtime/GetterSetter.h:
278         (JSC::GetterSetter::GetterSetter):
279         (JSC::GetterSetter::createStructure):
280         * runtime/InitializeThreading.cpp:
281         (JSC::initializeThreadingOnce):
282         * runtime/InternalFunction.cpp:
283         (JSC::InternalFunction::InternalFunction):
284         * runtime/InternalFunction.h:
285         (JSC::InternalFunction::createStructure):
286         * runtime/JSAPIValueWrapper.h:
287         (JSC::JSAPIValueWrapper::createStructure):
288         (JSC::JSAPIValueWrapper::JSAPIValueWrapper):
289         * runtime/JSActivation.cpp:
290         (JSC::JSActivation::JSActivation):
291         * runtime/JSActivation.h:
292         (JSC::JSActivation::createStructure):
293         * runtime/JSArray.cpp:
294         (JSC::JSArray::JSArray):
295         * runtime/JSArray.h:
296         (JSC::JSArray::createStructure):
297         * runtime/JSByteArray.cpp:
298         (JSC::JSByteArray::JSByteArray):
299         (JSC::JSByteArray::createStructure):
300         * runtime/JSByteArray.h:
301         (JSC::JSByteArray::JSByteArray):
302         * runtime/JSCell.cpp:
303         (JSC::isZombie):
304         * runtime/JSCell.h:
305         (JSC::JSCell::JSCell::JSCell):
306         (JSC::JSCell::JSCell::addressOfStructure):
307         (JSC::JSCell::JSCell::structure):
308         (JSC::JSCell::JSCell::markChildren):
309         (JSC::JSCell::JSValue::isZombie):
310         * runtime/JSFunction.cpp:
311         (JSC::JSFunction::JSFunction):
312         * runtime/JSFunction.h:
313         (JSC::JSFunction::createStructure):
314         * runtime/JSGlobalData.cpp:
315         (JSC::JSGlobalData::storeVPtrs):
316         (JSC::JSGlobalData::JSGlobalData):
317         (JSC::JSGlobalData::clearBuiltinStructures):
318         (JSC::JSGlobalData::createLeaked):
319         * runtime/JSGlobalData.h:
320         (JSC::allocateGlobalHandle):
321         * runtime/JSGlobalObject.cpp:
322         (JSC::JSGlobalObject::reset):
323         (JSC::JSGlobalObject::markChildren):
324         (JSC::JSGlobalObject::copyGlobalsFrom):
325         * runtime/JSGlobalObject.h:
326         (JSC::JSGlobalObject::JSGlobalObject):
327         (JSC::JSGlobalObject::createStructure):
328         (JSC::Structure::prototypeChain):
329         (JSC::Structure::isValid):
330         (JSC::constructEmptyArray):
331         * runtime/JSNotAnObject.h:
332         (JSC::JSNotAnObject::JSNotAnObject):
333         (JSC::JSNotAnObject::createStructure):
334         * runtime/JSONObject.cpp:
335         (JSC::JSONObject::JSONObject):
336         * runtime/JSONObject.h:
337         (JSC::JSONObject::createStructure):
338         * runtime/JSObject.cpp:
339         (JSC::JSObject::defineGetter):
340         (JSC::JSObject::defineSetter):
341         (JSC::JSObject::seal):
342         (JSC::JSObject::freeze):
343         (JSC::JSObject::preventExtensions):
344         (JSC::JSObject::removeDirect):
345         (JSC::JSObject::createInheritorID):
346         * runtime/JSObject.h:
347         (JSC::JSObject::createStructure):
348         (JSC::JSObject::JSObject):
349         (JSC::JSNonFinalObject::createStructure):
350         (JSC::JSNonFinalObject::JSNonFinalObject):
351         (JSC::JSFinalObject::create):
352         (JSC::JSFinalObject::createStructure):
353         (JSC::JSFinalObject::JSFinalObject):
354         (JSC::constructEmptyObject):
355         (JSC::createEmptyObjectStructure):
356         (JSC::JSObject::~JSObject):
357         (JSC::JSObject::setPrototype):
358         (JSC::JSObject::setStructure):
359         (JSC::JSObject::inheritorID):
360         (JSC::JSObject::putDirectInternal):
361         (JSC::JSObject::transitionTo):
362         (JSC::JSObject::markChildrenDirect):
363         * runtime/JSObjectWithGlobalObject.cpp:
364         (JSC::JSObjectWithGlobalObject::JSObjectWithGlobalObject):
365         * runtime/JSObjectWithGlobalObject.h:
366         (JSC::JSObjectWithGlobalObject::createStructure):
367         (JSC::JSObjectWithGlobalObject::JSObjectWithGlobalObject):
368         * runtime/JSPropertyNameIterator.cpp:
369         (JSC::JSPropertyNameIterator::JSPropertyNameIterator):
370         (JSC::JSPropertyNameIterator::create):
371         (JSC::JSPropertyNameIterator::get):
372         * runtime/JSPropertyNameIterator.h:
373         (JSC::JSPropertyNameIterator::createStructure):
374         (JSC::JSPropertyNameIterator::setCachedStructure):
375         (JSC::Structure::setEnumerationCache):
376         * runtime/JSStaticScopeObject.h:
377         (JSC::JSStaticScopeObject::JSStaticScopeObject):
378         (JSC::JSStaticScopeObject::createStructure):
379         * runtime/JSString.h:
380         (JSC::RopeBuilder::JSString):
381         (JSC::RopeBuilder::createStructure):
382         * runtime/JSType.h:
383         * runtime/JSTypeInfo.h:
384         (JSC::TypeInfo::TypeInfo):
385         * runtime/JSValue.h:
386         * runtime/JSVariableObject.h:
387         (JSC::JSVariableObject::createStructure):
388         (JSC::JSVariableObject::JSVariableObject):
389         (JSC::JSVariableObject::copyRegisterArray):
390         * runtime/JSWrapperObject.h:
391         (JSC::JSWrapperObject::createStructure):
392         (JSC::JSWrapperObject::JSWrapperObject):
393         * runtime/JSZombie.cpp:
394         * runtime/JSZombie.h:
395         (JSC::JSZombie::JSZombie):
396         (JSC::JSZombie::createStructure):
397         * runtime/MathObject.cpp:
398         (JSC::MathObject::MathObject):
399         * runtime/MathObject.h:
400         (JSC::MathObject::createStructure):
401         * runtime/NativeErrorConstructor.cpp:
402         (JSC::NativeErrorConstructor::NativeErrorConstructor):
403         (JSC::NativeErrorConstructor::markChildren):
404         (JSC::constructWithNativeErrorConstructor):
405         * runtime/NativeErrorConstructor.h:
406         (JSC::NativeErrorConstructor::createStructure):
407         * runtime/NativeErrorPrototype.cpp:
408         (JSC::NativeErrorPrototype::NativeErrorPrototype):
409         * runtime/NativeErrorPrototype.h:
410         * runtime/NumberConstructor.cpp:
411         (JSC::NumberConstructor::NumberConstructor):
412         * runtime/NumberConstructor.h:
413         (JSC::NumberConstructor::createStructure):
414         * runtime/NumberObject.cpp:
415         (JSC::NumberObject::NumberObject):
416         * runtime/NumberObject.h:
417         (JSC::NumberObject::createStructure):
418         * runtime/NumberPrototype.cpp:
419         (JSC::NumberPrototype::NumberPrototype):
420         * runtime/NumberPrototype.h:
421         * runtime/ObjectConstructor.cpp:
422         (JSC::ObjectConstructor::ObjectConstructor):
423         * runtime/ObjectConstructor.h:
424         (JSC::ObjectConstructor::createStructure):
425         * runtime/ObjectPrototype.cpp:
426         (JSC::ObjectPrototype::ObjectPrototype):
427         * runtime/ObjectPrototype.h:
428         * runtime/PropertyMapHashTable.h:
429         (JSC::PropertyTable::PropertyTable):
430         * runtime/RegExpConstructor.cpp:
431         (JSC::RegExpConstructor::RegExpConstructor):
432         (JSC::RegExpMatchesArray::RegExpMatchesArray):
433         * runtime/RegExpConstructor.h:
434         (JSC::RegExpConstructor::createStructure):
435         * runtime/RegExpObject.cpp:
436         (JSC::RegExpObject::RegExpObject):
437         * runtime/RegExpObject.h:
438         (JSC::RegExpObject::createStructure):
439         * runtime/RegExpPrototype.cpp:
440         (JSC::RegExpPrototype::RegExpPrototype):
441         * runtime/RegExpPrototype.h:
442         * runtime/ScopeChain.h:
443         (JSC::ScopeChainNode::ScopeChainNode):
444         (JSC::ScopeChainNode::createStructure):
445         * runtime/StrictEvalActivation.cpp:
446         (JSC::StrictEvalActivation::StrictEvalActivation):
447         * runtime/StringConstructor.cpp:
448         (JSC::StringConstructor::StringConstructor):
449         * runtime/StringConstructor.h:
450         * runtime/StringObject.cpp:
451         (JSC::StringObject::StringObject):
452         * runtime/StringObject.h:
453         (JSC::StringObject::createStructure):
454         * runtime/StringObjectThatMasqueradesAsUndefined.h:
455         (JSC::StringObjectThatMasqueradesAsUndefined::StringObjectThatMasqueradesAsUndefined):
456         (JSC::StringObjectThatMasqueradesAsUndefined::createStructure):
457         * runtime/StringPrototype.cpp:
458         (JSC::StringPrototype::StringPrototype):
459         * runtime/StringPrototype.h:
460         (JSC::StringPrototype::createStructure):
461         * runtime/Structure.cpp:
462         (JSC::StructureTransitionTable::remove):
463         (JSC::StructureTransitionTable::add):
464         (JSC::Structure::Structure):
465         (JSC::Structure::~Structure):
466         (JSC::Structure::materializePropertyMap):
467         (JSC::Structure::addPropertyTransitionToExistingStructure):
468         (JSC::Structure::addPropertyTransition):
469         (JSC::Structure::removePropertyTransition):
470         (JSC::Structure::changePrototypeTransition):
471         (JSC::Structure::despecifyFunctionTransition):
472         (JSC::Structure::getterSetterTransition):
473         (JSC::Structure::toDictionaryTransition):
474         (JSC::Structure::toCacheableDictionaryTransition):
475         (JSC::Structure::toUncacheableDictionaryTransition):
476         (JSC::Structure::sealTransition):
477         (JSC::Structure::freezeTransition):
478         (JSC::Structure::preventExtensionsTransition):
479         (JSC::Structure::flattenDictionaryStructure):
480         (JSC::Structure::copyPropertyTable):
481         (JSC::Structure::put):
482         (JSC::Structure::markChildren):
483         * runtime/Structure.h:
484         (JSC::Structure::create):
485         (JSC::Structure::setPrototypeWithoutTransition):
486         (JSC::Structure::createStructure):
487         (JSC::JSCell::createDummyStructure):
488         (JSC::StructureTransitionTable::keyForWeakGCMapFinalizer):
489         * runtime/StructureChain.cpp:
490         (JSC::StructureChain::StructureChain):
491         (JSC::StructureChain::markChildren):
492         * runtime/StructureChain.h:
493         (JSC::StructureChain::create):
494         (JSC::StructureChain::head):
495         (JSC::StructureChain::createStructure):
496         * runtime/StructureTransitionTable.h:
497         (JSC::StructureTransitionTable::WeakGCMapFinalizerCallback::finalizerContextFor):
498         (JSC::StructureTransitionTable::WeakGCMapFinalizerCallback::keyForFinalizer):
499         (JSC::StructureTransitionTable::~StructureTransitionTable):
500         (JSC::StructureTransitionTable::slot):
501         (JSC::StructureTransitionTable::setMap):
502         (JSC::StructureTransitionTable::singleTransition):
503         (JSC::StructureTransitionTable::clearSingleTransition):
504         (JSC::StructureTransitionTable::setSingleTransition):
505         * runtime/WeakGCMap.h:
506         (JSC::DefaultWeakGCMapFinalizerCallback::finalizerContextFor):
507         (JSC::DefaultWeakGCMapFinalizerCallback::keyForFinalizer):
508         (JSC::WeakGCMap::contains):
509         (JSC::WeakGCMap::find):
510         (JSC::WeakGCMap::remove):
511         (JSC::WeakGCMap::add):
512         (JSC::WeakGCMap::set):
513         (JSC::WeakGCMap::finalize):
514         * runtime/WriteBarrier.h:
515         (JSC::writeBarrier):
516         (JSC::WriteBarrierBase::set):
517         (JSC::WriteBarrierBase::operator*):
518         (JSC::WriteBarrierBase::operator->):
519         (JSC::WriteBarrierBase::setWithoutWriteBarrier):
520
521 2011-04-15  Fridrich Strba  <fridrich.strba@bluewin.ch>
522
523         Reviewed by Gavin Barraclough.
524
525         Correctly prefix symbols. Since gcc 4.5.0, Windows x64 symbols
526         are not prefixed by underscore anymore. This is consistent with
527         what MSVC does.
528         https://bugs.webkit.org/show_bug.cgi?id=58573
529
530         * jit/JITStubs.cpp:
531
532 2011-04-15  Gavin Barraclough  <barraclough@apple.com>
533
534         Reviewed by Geoff Garen.
535
536         Bug 58705 - DFG JIT Add support for flow control (branch, jump).
537
538         Add support for control flow by breaking the CodeBlock up into multiple
539         basic blocks, generating code for each basic block in turn through the
540         speculative JIT & then the non-speculative JIT.
541
542         * dfg/DFGByteCodeParser.cpp:
543         (JSC::DFG::ByteCodeParser::setTemporary):
544         (JSC::DFG::ByteCodeParser::addToGraph):
545         (JSC::DFG::ByteCodeParser::parseBlock):
546         (JSC::DFG::ByteCodeParser::parse):
547         * dfg/DFGGraph.cpp:
548         (JSC::DFG::Graph::dump):
549         * dfg/DFGGraph.h:
550         (JSC::DFG::BasicBlock::BasicBlock):
551         (JSC::DFG::BasicBlock::getBytecodeOffset):
552         (JSC::DFG::Graph::blockIndexForBytecodeOffset):
553         * dfg/DFGJITCodeGenerator.h:
554         (JSC::DFG::JITCodeGenerator::JITCodeGenerator):
555         (JSC::DFG::JITCodeGenerator::addBranch):
556         (JSC::DFG::JITCodeGenerator::linkBranches):
557         (JSC::DFG::JITCodeGenerator::BranchRecord::BranchRecord):
558         * dfg/DFGNode.h:
559         (JSC::DFG::Node::Node):
560         (JSC::DFG::Node::isJump):
561         (JSC::DFG::Node::isBranch):
562         (JSC::DFG::Node::takenBytecodeOffset):
563         (JSC::DFG::Node::notTakenBytecodeOffset):
564         * dfg/DFGNonSpeculativeJIT.cpp:
565         (JSC::DFG::NonSpeculativeJIT::compile):
566         * dfg/DFGNonSpeculativeJIT.h:
567         * dfg/DFGSpeculativeJIT.cpp:
568         (JSC::DFG::SpeculativeJIT::compile):
569         * dfg/DFGSpeculativeJIT.h:
570
571 2011-04-15  Gavin Barraclough  <barraclough@apple.com>
572
573         Reviewed by Geoff Garen.
574
575         Bug 58701 - DFG JIT - add GetLocal/SetLocal nodes
576
577         Use these for both access to arguments & local variables, adds ability
578         to set locals, such that values will persist between basic blocks.
579
580         * dfg/DFGByteCodeParser.cpp:
581         (JSC::DFG::ByteCodeParser::ByteCodeParser):
582         (JSC::DFG::ByteCodeParser::get):
583         (JSC::DFG::ByteCodeParser::set):
584         (JSC::DFG::ByteCodeParser::getVariable):
585         (JSC::DFG::ByteCodeParser::setVariable):
586         (JSC::DFG::ByteCodeParser::getArgument):
587         (JSC::DFG::ByteCodeParser::setArgument):
588         (JSC::DFG::ByteCodeParser::getThis):
589         (JSC::DFG::ByteCodeParser::setThis):
590         (JSC::DFG::ByteCodeParser::VariableRecord::VariableRecord):
591         (JSC::DFG::ByteCodeParser::parseBlock):
592         * dfg/DFGGraph.cpp:
593         (JSC::DFG::Graph::dump):
594         (JSC::DFG::Graph::derefChildren):
595         * dfg/DFGGraph.h:
596         (JSC::DFG::Graph::ref):
597         (JSC::DFG::Graph::deref):
598         * dfg/DFGNode.h:
599         (JSC::DFG::Node::hasLocal):
600         (JSC::DFG::Node::local):
601         * dfg/DFGNonSpeculativeJIT.cpp:
602         (JSC::DFG::NonSpeculativeJIT::compile):
603         * dfg/DFGSpeculativeJIT.cpp:
604         (JSC::DFG::SpeculativeJIT::compile):
605
606 2011-04-15  Gavin Barraclough  <barraclough@apple.com>
607
608         Reviewed by Sam Weinig.
609
610         Bug 58696 - DFG JIT split handling of vars/temporaries
611
612         Presently all callee registers are treated as having single block scope,
613         since the DFG JIT can only compile single block functions. In order to
614         expand the JIT to support control flow we will need to change to retaining
615         locals (but not temporaries) across basic block boundaries.
616
617         * dfg/DFGByteCodeParser.cpp:
618         (JSC::DFG::ByteCodeParser::ByteCodeParser):
619         (JSC::DFG::ByteCodeParser::get):
620         (JSC::DFG::ByteCodeParser::set):
621         (JSC::DFG::ByteCodeParser::getVariable):
622         (JSC::DFG::ByteCodeParser::setVariable):
623         (JSC::DFG::ByteCodeParser::getTemporary):
624         (JSC::DFG::ByteCodeParser::setTemporary):
625         (JSC::DFG::ByteCodeParser::getArgument):
626         (JSC::DFG::ByteCodeParser::getInt32Constant):
627         (JSC::DFG::ByteCodeParser::getDoubleConstant):
628         (JSC::DFG::ByteCodeParser::getJSConstant):
629         (JSC::DFG::ByteCodeParser::constantUndefined):
630         (JSC::DFG::ByteCodeParser::constantNull):
631         (JSC::DFG::ByteCodeParser::one):
632         (JSC::DFG::ByteCodeParser::parseBlock):
633         (JSC::DFG::ByteCodeParser::parse):
634         (JSC::DFG::parse):
635         * dfg/DFGNode.h:
636         * dfg/DFGScoreBoard.h:
637         (JSC::DFG::ScoreBoard::ScoreBoard):
638         (JSC::DFG::ScoreBoard::~ScoreBoard):
639         (JSC::DFG::ScoreBoard::allocate):
640         (JSC::DFG::ScoreBoard::use):
641
642 2011-04-15  Michael Saboff  <msaboff@apple.com>
643
644         Reviewed by Oliver Hunt.
645
646         globalObject moved to JSObjectWithGlobalObject.cpp inhibits inlining
647         https://bugs.webkit.org/show_bug.cgi?id=58677
648
649         Moved JSObjectWithGlobalObject::globalObject() to 
650         runtime/JSObjectWithGlobalObject.h to allow the compiler to inline
651         it for a performance benefit.  An equivalent instance had been in
652         a header file before r60057.
653
654         * JavaScriptCore.exp:
655         * runtime/JSObjectWithGlobalObject.cpp:
656         * runtime/JSObjectWithGlobalObject.h:
657         (JSC::JSObjectWithGlobalObject::globalObject):
658
659 2011-04-14  Oliver Hunt  <oliver@apple.com>
660
661         Reviewed by Geoffrey Garen.
662
663         Make JSNodeFilterCondition handle its lifetime correctly
664         https://bugs.webkit.org/show_bug.cgi?id=58622
665
666         Add export
667
668         * JavaScriptCore.exp:
669
670 2011-04-14  Alexey Proskuryakov  <ap@apple.com>
671
672         Reviewed by Dan Bernstein.
673
674         WebKit2: Password field input does not switch to ASCII-compatible source
675         https://bugs.webkit.org/show_bug.cgi?id=58583
676         <rdar://problem/9059651>
677
678         * wtf/Platform.h: Removed WTF_USE_CARBON_SECURE_INPUT_MODE. It's now only used by Chromium,
679         and shouldn't be enabled on any other platforms, so there is no reason to make it
680         configurable via Platform.h.
681
682 2011-04-15  Dmitry Lomov  <dslomov@google.com>
683
684         Reviewed by David Levin.
685
686         Add a sample test case for GTest framework
687         https://bugs.webkit.org/show_bug.cgi?id=58509
688
689         Add an example of GTest testcase, complete with a runner, to JavaScriptCore.
690
691         * JavaScriptCore.xcodeproj/project.pbxproj:
692         * wtf/tests/RunAllWtfTests.cpp: Added.
693         (main):
694         * wtf/tests/StringTests.cpp: Added.
695
696 2011-04-15  Anna Cavender  <annacc@chromium.org>
697
698         Reviewed by Eric Carlson.
699
700         Renaming TRACK feature define to VIDEO_TRACK
701         https://bugs.webkit.org/show_bug.cgi?id=53556
702
703         * Configurations/FeatureDefines.xcconfig:
704
705 2011-04-14  Gavin Barraclough  <barraclough@apple.com>
706
707         Rubber stamped by Geoffrey Garen.
708
709         Hide DFG_JIT_RESTRICTIONS behind ARITHMETIC_OP() macro, and rename
710         m_regressionGuard to m_parseFailed, such that it can be reused for
711         other failure cases.
712
713         * dfg/DFGByteCodeParser.cpp:
714         (JSC::DFG::ByteCodeParser::ByteCodeParser):
715         (JSC::DFG::ByteCodeParser::parse):
716
717 2011-04-14  Gavin Barraclough  <barraclough@apple.com>
718
719         Reviewed by Geoffrey Garen.
720
721         Bug 58620 - DFG JIT - loading of arguments should not be lazy
722
723         This optimization is overly simplistic. It only works because we never
724         write out definitions to arguments (since we currently only compile
725         single block functions). Revert this for now, we may want to reintroduce
726         something like this again in the future, but it will need to be aware
727         how to schedule definitions to arguments versus lazy loads that have not
728         yet been performed.
729
730         * dfg/DFGGenerationInfo.h:
731         (JSC::DFG::GenerationInfo::needsSpill):
732         * dfg/DFGGraph.cpp:
733         (JSC::DFG::Graph::dump):
734         * dfg/DFGGraph.h:
735         * dfg/DFGJITCodeGenerator.cpp:
736         (JSC::DFG::JITCodeGenerator::fillInteger):
737         (JSC::DFG::JITCodeGenerator::fillDouble):
738         (JSC::DFG::JITCodeGenerator::fillJSValue):
739         * dfg/DFGJITCodeGenerator.h:
740         (JSC::DFG::JITCodeGenerator::initConstantInfo):
741         * dfg/DFGJITCompiler.cpp:
742         (JSC::DFG::JITCompiler::fillNumericToDouble):
743         (JSC::DFG::JITCompiler::fillInt32ToInteger):
744         (JSC::DFG::JITCompiler::fillToJS):
745         * dfg/DFGNonSpeculativeJIT.cpp:
746         (JSC::DFG::NonSpeculativeJIT::isKnownInteger):
747         (JSC::DFG::NonSpeculativeJIT::isKnownNumeric):
748         (JSC::DFG::NonSpeculativeJIT::compile):
749         * dfg/DFGSpeculativeJIT.cpp:
750         (JSC::DFG::SpeculativeJIT::fillSpeculateIntInternal):
751         (JSC::DFG::SpeculativeJIT::fillSpeculateCell):
752         (JSC::DFG::SpeculativeJIT::compile):
753
754 2011-04-14  Gavin Barraclough  <barraclough@apple.com>
755
756         Reviewed by Geoffrey Garen.
757
758         Bug 58600 - DFG JIT bugs in ValueToInt, PutByVal
759
760         The bug in PutByVal is that an operand is in JSValueOperand - when this
761         locks an integer into a register it will always retag the value without
762         checking if the register is already locked. This is a problem where the
763         value being stored by a PutByVal is the same as the subscript.
764         The subscript is locked into a register first, as a strict integer.
765         Locking the value results in the subscript being modified.
766
767         The bug in ValueToInt related to the function of sillentFillAllRegisters.
768         The problem is that this method will restore all register values from
769         prior to the call, overwriting the result of the call out. Allow a
770         register to be passed to specifically be excluded from being preserved.
771
772         * assembler/ARMAssembler.h:
773         (JSC::ARMAssembler::debugOffset):
774         * assembler/ARMv7Assembler.h:
775         (JSC::ARMv7Assembler::ARMInstructionFormatter::debugOffset):
776         * assembler/AbstractMacroAssembler.h:
777         (JSC::AbstractMacroAssembler::debugOffset):
778         * assembler/AssemblerBuffer.h:
779         (JSC::AssemblerBuffer::debugOffset):
780         * assembler/LinkBuffer.h:
781         (JSC::LinkBuffer::debugAddress):
782         * assembler/MIPSAssembler.h:
783         (JSC::MIPSAssembler::debugOffset):
784         * assembler/MacroAssemblerX86_64.h:
785         (JSC::MacroAssemblerX86_64::orPtr):
786         * assembler/X86Assembler.h:
787         (JSC::X86Assembler::debugOffset):
788         (JSC::X86Assembler::X86InstructionFormatter::debugOffset):
789         * dfg/DFGByteCodeParser.cpp:
790         (JSC::DFG::ByteCodeParser::parse):
791         * dfg/DFGGenerationInfo.h:
792         * dfg/DFGJITCodeGenerator.cpp:
793         (JSC::DFG::JITCodeGenerator::fillJSValue):
794         * dfg/DFGJITCodeGenerator.h:
795         (JSC::DFG::JITCodeGenerator::isConstant):
796         * dfg/DFGJITCompiler.cpp:
797         (JSC::DFG::JITCompiler::compileFunction):
798         * dfg/DFGJITCompiler.h:
799         (JSC::DFG::JITCompiler::isConstant):
800         * dfg/DFGNonSpeculativeJIT.cpp:
801         (JSC::DFG::NonSpeculativeJIT::valueToNumber):
802         (JSC::DFG::NonSpeculativeJIT::valueToInt32):
803         (JSC::DFG::NonSpeculativeJIT::numberToInt32):
804         (JSC::DFG::NonSpeculativeJIT::isKnownInteger):
805         (JSC::DFG::NonSpeculativeJIT::isKnownNumeric):
806         (JSC::DFG::NonSpeculativeJIT::compile):
807         * dfg/DFGNonSpeculativeJIT.h:
808         (JSC::DFG::NonSpeculativeJIT::silentSpillGPR):
809         (JSC::DFG::NonSpeculativeJIT::silentSpillFPR):
810         (JSC::DFG::NonSpeculativeJIT::silentFillGPR):
811         (JSC::DFG::NonSpeculativeJIT::silentFillFPR):
812         (JSC::DFG::NonSpeculativeJIT::silentSpillAllRegisters):
813         (JSC::DFG::NonSpeculativeJIT::silentFillAllRegisters):
814         * dfg/DFGSpeculativeJIT.cpp:
815         (JSC::DFG::SpeculativeJIT::compile):
816
817 2011-04-14  Geoffrey Garen  <ggaren@apple.com>
818
819         Reviewed by Oliver Hunt.
820
821         Drain the mark stack while marking weak handles, not after.
822         https://bugs.webkit.org/show_bug.cgi?id=58574
823
824         Otherwise, items that would have caused more weak handle marking are
825         processed after all weak handle marking has finished, and referenced
826         weak handles get recycled.
827
828         * heap/HandleHeap.cpp:
829         (JSC::HandleHeap::markWeakHandles): Removed looping from here, since we
830         want Heap::markRoots to be responsible for draining the mark stack.
831
832         * heap/Heap.cpp:
833         (JSC::Heap::markRoots): Moved looping to here, as explained above.
834         
835         For efficiency's sake, drain the mark stack before starting to mark weak
836         handles. Otherwise, items drained while marking weak handles may force
837         an extra trip through the weak handle list.
838
839         For correctness's sake, drain the mark stack each time through the weak
840         handle list. Otherwise, opaque roots that would make weak handles reachable
841         are not discovered until after weak handle marking is over.
842
843 2011-04-14  Oliver Hunt  <oliver@apple.com>
844
845         Reviewed by Geoffrey Garen.
846
847         Make protected object list in caches window reflect reality
848         https://bugs.webkit.org/show_bug.cgi?id=58565
849
850         Make sure the heap includes objects protected by Strong handles
851         in its list of protected objects.
852
853         * heap/HandleHeap.h:
854         * heap/Heap.cpp:
855         (JSC::HandleHeap::protectedObjectTypeCounts):
856
857 2011-04-14  Satish Sampath  <satish@chromium.org>
858
859         Reviewed by Anders Carlsson.
860
861         Don't emit RegExp tables for chromium where they are not used
862         https://bugs.webkit.org/show_bug.cgi?id=58544
863
864         * JavaScriptCore.gyp/JavaScriptCore.gyp:
865         * create_regex_tables: Added the "--notables" command line argument.
866
867 2011-04-13  Geoffrey Garen  <ggaren@apple.com>
868
869         Try to fix ASSERTs seen on Windows bots.
870
871         * wtf/HashTable.h:
872         (WTF::hashTableSwap): Force MSVC to use the right version of swap.
873
874 2011-04-13  Ryuan Choi  <ryuan.choi@samsung.com>
875
876         Reviewed by Kenneth Rohde Christiansen.
877
878         [CMAKE] Separate DerivedSources.
879         https://bugs.webkit.org/show_bug.cgi?id=58427
880
881         * CMakeLists.txt: Change DERIVED_SOURCES_DIR to DERIVED_SOURCES_JAVASCRIPTCORE_DIR.
882
883 2011-04-13  Geoffrey Garen  <ggaren@apple.com>
884
885         Reviewed by Oliver Hunt.
886
887         Switched DOM wrappers to use HashMap of Weak<T> instead of WeakGCMap<T>
888         https://bugs.webkit.org/show_bug.cgi?id=58482
889         
890         This will allow wrappers to make individual decisions about their lifetimes.
891
892         * heap/HandleHeap.h:
893         (JSC::HandleHeap::copyWeak): New function for copying a weak handle.
894         It's wasn't previously possible to perform this operation using HandleHeap
895         API because the HandleHeap doesn't expose its underlying Node structure.
896
897         * heap/Local.h:
898         (JSC::::set):
899         * heap/Strong.h:
900         (JSC::Strong::set): Added ASSERTs to verify that dead objects are not
901         resurrected by placement into handles.
902
903         (JSC::swap): Added a swap helper, so use of Strong<T> inside a hash table
904         is efficient.
905
906         * heap/Weak.h:
907         (JSC::Weak::Weak): Fixed a bug where copying a weak pointer would not
908         copy its weak callback and context.
909
910         (JSC::Weak::operator=): Added an assignment operator, since the default
911         C++ assignment operator did the wrong thing.
912
913         (JSC::Weak::set): Added ASSERTs to verify that dead objects are not
914         resurrected by placement into handles.
915
916         (JSC::swap): Added a swap helper, so use of Strong<T> inside a hash table
917         is efficient, and can be done without copying, which is illegal during
918         the handle finalization phase.
919
920 2011-04-13  Oliver Hunt  <oliver@apple.com>
921
922         Reviewed by Gavin Barraclough.
923
924         Make PropertyMapEntry use a WriteBarrier for specificValue
925         https://bugs.webkit.org/show_bug.cgi?id=58407
926
927         Make PropertyMapEntry use a WriteBarrier for specificValue, and then
928         propagate the required JSGlobalData through all the methods it ends
929         up being needed.
930
931         * API/JSClassRef.cpp:
932         (OpaqueJSClass::prototype):
933         * API/JSContextRef.cpp:
934         * API/JSObjectRef.cpp:
935         (JSObjectMake):
936         (JSObjectSetPrototype):
937         * JavaScriptCore.exp:
938         * bytecompiler/BytecodeGenerator.cpp:
939         (JSC::BytecodeGenerator::BytecodeGenerator):
940         * interpreter/Interpreter.cpp:
941         (JSC::appendSourceToError):
942         (JSC::Interpreter::tryCacheGetByID):
943         (JSC::Interpreter::privateExecute):
944         * jit/JITStubs.cpp:
945         (JSC::JITThunks::tryCacheGetByID):
946         (JSC::DEFINE_STUB_FUNCTION):
947         * runtime/BatchedTransitionOptimizer.h:
948         (JSC::BatchedTransitionOptimizer::BatchedTransitionOptimizer):
949         * runtime/InternalFunction.cpp:
950         (JSC::InternalFunction::name):
951         (JSC::InternalFunction::displayName):
952         * runtime/JSActivation.cpp:
953         (JSC::JSActivation::getOwnPropertySlot):
954         * runtime/JSFunction.cpp:
955         (JSC::JSFunction::name):
956         (JSC::JSFunction::displayName):
957         (JSC::JSFunction::getOwnPropertySlot):
958         * runtime/JSGlobalObject.cpp:
959         (JSC::JSGlobalObject::putWithAttributes):
960         (JSC::JSGlobalObject::reset):
961         (JSC::JSGlobalObject::resetPrototype):
962         * runtime/JSGlobalObject.h:
963         * runtime/JSObject.cpp:
964         (JSC::JSObject::put):
965         (JSC::JSObject::deleteProperty):
966         (JSC::JSObject::defineGetter):
967         (JSC::JSObject::defineSetter):
968         (JSC::JSObject::lookupGetter):
969         (JSC::JSObject::lookupSetter):
970         (JSC::JSObject::getPropertySpecificValue):
971         (JSC::JSObject::getOwnPropertyNames):
972         (JSC::JSObject::seal):
973         (JSC::JSObject::freeze):
974         (JSC::JSObject::preventExtensions):
975         (JSC::JSObject::removeDirect):
976         (JSC::JSObject::getOwnPropertyDescriptor):
977         (JSC::JSObject::defineOwnProperty):
978         * runtime/JSObject.h:
979         (JSC::JSObject::getDirect):
980         (JSC::JSObject::getDirectLocation):
981         (JSC::JSObject::isSealed):
982         (JSC::JSObject::isFrozen):
983         (JSC::JSObject::setPrototypeWithCycleCheck):
984         (JSC::JSObject::setPrototype):
985         (JSC::JSObject::inlineGetOwnPropertySlot):
986         (JSC::JSObject::putDirectInternal):
987         (JSC::JSObject::putDirectWithoutTransition):
988         (JSC::JSObject::putDirectFunctionWithoutTransition):
989         * runtime/Lookup.cpp:
990         (JSC::setUpStaticFunctionSlot):
991         * runtime/ObjectConstructor.cpp:
992         (JSC::objectConstructorCreate):
993         (JSC::objectConstructorSeal):
994         (JSC::objectConstructorFreeze):
995         (JSC::objectConstructorPreventExtensions):
996         (JSC::objectConstructorIsSealed):
997         (JSC::objectConstructorIsFrozen):
998         * runtime/Operations.h:
999         (JSC::normalizePrototypeChain):
1000         * runtime/PropertyMapHashTable.h:
1001         (JSC::PropertyMapEntry::PropertyMapEntry):
1002         (JSC::PropertyTable::PropertyTable):
1003         (JSC::PropertyTable::copy):
1004         * runtime/Structure.cpp:
1005         (JSC::Structure::materializePropertyMap):
1006         (JSC::Structure::despecifyDictionaryFunction):
1007         (JSC::Structure::addPropertyTransition):
1008         (JSC::Structure::removePropertyTransition):
1009         (JSC::Structure::changePrototypeTransition):
1010         (JSC::Structure::despecifyFunctionTransition):
1011         (JSC::Structure::getterSetterTransition):
1012         (JSC::Structure::toDictionaryTransition):
1013         (JSC::Structure::toCacheableDictionaryTransition):
1014         (JSC::Structure::toUncacheableDictionaryTransition):
1015         (JSC::Structure::sealTransition):
1016         (JSC::Structure::freezeTransition):
1017         (JSC::Structure::preventExtensionsTransition):
1018         (JSC::Structure::isSealed):
1019         (JSC::Structure::isFrozen):
1020         (JSC::Structure::addPropertyWithoutTransition):
1021         (JSC::Structure::removePropertyWithoutTransition):
1022         (JSC::Structure::copyPropertyTable):
1023         (JSC::Structure::get):
1024         (JSC::Structure::despecifyFunction):
1025         (JSC::Structure::despecifyAllFunctions):
1026         (JSC::Structure::put):
1027         (JSC::Structure::getPropertyNames):
1028         * runtime/Structure.h:
1029         (JSC::Structure::get):
1030         (JSC::Structure::materializePropertyMapIfNecessary):
1031
1032 2011-04-13  Paul Knight  <pknight@apple.com>
1033
1034         Reviewed by Gavin Barraclough.
1035
1036         BACKTRACE() macro should check for Debug configuration in macro, not WTFReportBacktrace definition
1037         https://bugs.webkit.org/show_bug.cgi?id=58405
1038
1039         The BACKTRACE() macro requires JavaScriptCore be built with a Debug
1040         configuration in order for it to be enabled. Move the NDEBUG check to
1041         the header so it will be enabled when the calling framework or
1042         application is built with a Debug configuration, similar to how
1043         ASSERT() and friends work.
1044
1045         * wtf/Assertions.cpp:
1046         * wtf/Assertions.h:
1047
1048 2011-04-12  Ben Taylor  <bentaylor.solx86@gmail.com>
1049
1050         Reviewed by Alexey Proskuryakov.
1051
1052         https://bugs.webkit.org/show_bug.cgi?id=58131
1053
1054         Provide a workaround for an obscure Studio 12 compiler bug, which
1055         couldn't call src->~T() on a const T *src.
1056
1057         * wtf/Vector.h:
1058
1059 2011-04-12  Gavin Barraclough  <barraclough@apple.com>
1060
1061         Reviewed by Oliver Hunt.
1062
1063         https://bugs.webkit.org/show_bug.cgi?id=58395
1064         Exceptions thrown from property getters called from Array prototype functions can be missed
1065
1066         This is caught by an ASSERT in the top of Interpreter::executeCall.
1067         Check for exceptions after accessing properties that could be getters.
1068
1069         * runtime/ArrayPrototype.cpp:
1070         (JSC::arrayProtoFuncSort):
1071         (JSC::arrayProtoFuncFilter):
1072         (JSC::arrayProtoFuncMap):
1073         (JSC::arrayProtoFuncEvery):
1074         (JSC::arrayProtoFuncForEach):
1075         (JSC::arrayProtoFuncSome):
1076         (JSC::arrayProtoFuncReduce):
1077         (JSC::arrayProtoFuncReduceRight):
1078             - Add exception checks.
1079
1080 2011-04-12  Oliver Hunt  <oliver@apple.com>
1081
1082         Reviewed by Geoffrey Garen.
1083
1084         Make API callback objects use weak handles to run their finalizers
1085         https://bugs.webkit.org/show_bug.cgi?id=58389
1086
1087         Make the API object's private data struct act as a finalizer for
1088         an api object if the callback object has a API defined finalizer.
1089
1090         * API/JSCallbackObject.cpp:
1091         (JSC::JSCallbackObjectData::finalize):
1092         * API/JSCallbackObject.h:
1093         * API/JSCallbackObjectFunctions.h:
1094         (JSC::::init):
1095         * heap/Handle.h:
1096
1097 2011-04-12  Geoffrey Garen  <ggaren@apple.com>
1098
1099         Reviewed by Geoffrey Garen.
1100
1101         Cleaned up hash traits, and added hash traits for handles
1102         https://bugs.webkit.org/show_bug.cgi?id=58381
1103
1104         * heap/Handle.h:
1105         (JSC::HandleBase::swap):
1106         (JSC::Handle::Handle):
1107         (JSC::Handle::swap): Implemented swap, so we can rehash efficiently, and
1108         without creating new handles (which is not allowed during handle finalization).
1109
1110         * heap/Strong.h:
1111         (JSC::Strong::swap): Use new SimpleClassHashTraits to avoid duplication.
1112
1113         * heap/Weak.h:
1114         (JSC::Weak::isHashTableDeletedValue):
1115         (JSC::Weak::Weak):
1116         (JSC::Weak::swap):
1117         (JSC::Weak::hashTableDeletedValue): Ditto.
1118
1119         * wtf/HashTraits.h:
1120         (WTF::SimpleClassHashTraits::constructDeletedValue):
1121         (WTF::SimpleClassHashTraits::isDeletedValue): Added SimpleClassHashTraits,
1122         which are analogous to SimpleClassVectorTraits, since they are used in a
1123         bunch of places.
1124
1125         * wtf/RetainPtr.h: Use new SimpleClassHashTraits to avoid duplication.
1126
1127         * wtf/text/StringHash.h: Use new SimpleClassHashTraits to avoid duplication.
1128
1129 2011-04-12  Geoffrey Garen  <ggaren@apple.com>
1130
1131         Reviewed by Sam Weinig.
1132
1133         Cleaned up some Vector traits, and added missing Vector traits for handles
1134         https://bugs.webkit.org/show_bug.cgi?id=58372
1135
1136         * heap/Local.h: Inherit from SimpleClassVectorTraits to avoid duplication.
1137
1138         * heap/Strong.h: Ditto.
1139
1140         * heap/Weak.h: Ditto.
1141
1142         * parser/JSParser.cpp: Fixed a traits error. No test case because this
1143         particular trait is not currently exercised by the parser.
1144
1145         * runtime/UString.h: No need to override canInitializeWithMemset, since
1146         our base class sets it to true.
1147
1148         * wtf/VectorTraits.h: Inherit from VectorTraitsBase to avoid duplication.
1149
1150         * wtf/text/WTFString.h: No need to override canInitializeWithMemset, since
1151         our base class sets it to true.
1152
1153 2011-04-12  Thouraya ANDOLSI  <thouraya.andolsi@st.com>
1154
1155         Reviewed by Eric Seidel.
1156
1157         [Qt] Enable JIT build for SH4 platforms.
1158         https://bugs.webkit.org/show_bug.cgi?id=58317
1159         enable JIT build for QT backend  for SH4 platforms.
1160
1161         * JavaScriptCore.pro:
1162         * wtf/Platform.h:
1163
1164 2011-04-11  Ben Taylor  <bentaylor.solx86@gmail.com>
1165
1166         Reviewed by Alexey Proskuryakov.
1167
1168         https://bugs.webkit.org/show_bug.cgi?id=58289
1169
1170         Fix compilation on Solaris/Studio 12 C++ in wtf/FastMalloc.cpp,
1171         WTF::TCMalloc_PageHeap::runScavengerThread(void*) expected to return a value.
1172
1173         * wtf/FastMalloc.cpp:
1174         (WTF::TCMalloc_PageHeap::runScavengerThread):
1175
1176 2011-04-11  Mark Rowe  <mrowe@apple.com>
1177
1178         Fix the build.
1179
1180         * JavaScriptCore.xcodeproj/project.pbxproj: Headers used outside of JavaScriptCore need to be marked as private.
1181
1182 2011-04-11  Anna Cavender  <annacc@chromium.org>
1183
1184         Reviewed by Eric Carlson.
1185
1186         Setup ENABLE(TRACK) feature define
1187         https://bugs.webkit.org/show_bug.cgi?id=53556
1188
1189
1190         * Configurations/FeatureDefines.xcconfig:
1191
1192 2011-04-11  Geoffrey Garen  <ggaren@apple.com>
1193
1194         Try to fix a few builds.
1195         
1196         Updated a few more build configurations for file moves.
1197
1198         * CMakeListsWinCE.txt:
1199
1200 2011-04-11  Gavin Barraclough  <barraclough@apple.com>
1201
1202         Reviewed by Sam Weinig.
1203
1204         Bug 58263 - Use EncodedValueDescriptor on both JSVALUE32_64, JSVALUE64
1205
1206         The JSJITInterface already uses EncodedValueDescriptor to access the tag/payload
1207         separately on JSVALUE64, even though EncodedValueDescriptor is not used in
1208         JSVALUE64's implementation of JSValue. Remove the separate definition for m_ptr
1209         on X86_64. Using the union allows us to remove a layer of makeImmediate()/
1210         immedaiteValue() methods.
1211
1212         * dfg/DFGNonSpeculativeJIT.cpp:
1213         (JSC::DFG::NonSpeculativeJIT::compile):
1214         * dfg/DFGSpeculativeJIT.cpp:
1215         (JSC::DFG::SpeculativeJIT::compile):
1216         * jit/JITInlineMethods.h:
1217         (JSC::JIT::emitTagAsBoolImmediate):
1218         * jit/JITOpcodes.cpp:
1219         (JSC::JIT::emit_op_not):
1220         (JSC::JIT::emit_op_jeq_null):
1221         (JSC::JIT::emit_op_jneq_null):
1222         (JSC::JIT::emit_op_get_pnames):
1223         (JSC::JIT::emit_op_eq_null):
1224         (JSC::JIT::emit_op_neq_null):
1225         (JSC::JIT::emitSlow_op_not):
1226         * runtime/JSCell.h:
1227         * runtime/JSValue.h:
1228         * runtime/JSValueInlineMethods.h:
1229         (JSC::JSValue::encode):
1230         (JSC::JSValue::decode):
1231         (JSC::JSValue::operator==):
1232         (JSC::JSValue::operator!=):
1233         (JSC::JSValue::JSValue):
1234         (JSC::JSValue::operator bool):
1235         (JSC::JSValue::asInt32):
1236         (JSC::JSValue::isUndefinedOrNull):
1237         (JSC::JSValue::isBoolean):
1238         (JSC::JSValue::isCell):
1239         (JSC::JSValue::isInt32):
1240         (JSC::JSValue::asDouble):
1241         (JSC::JSValue::isNumber):
1242         (JSC::JSValue::asCell):
1243
1244 2011-04-11  Geoffrey Garen  <ggaren@apple.com>
1245
1246         Try to fix a few builds.
1247         
1248         Updated a few more build configurations for file moves.
1249
1250         * CMakeListsEfl.txt:
1251         * wscript:
1252
1253 2011-04-11  Geoffrey Garen  <ggaren@apple.com>
1254
1255         Build fix: Updated a file name.
1256
1257         * CMakeLists.txt:
1258
1259 2011-04-11  Geoffrey Garen  <ggaren@apple.com>
1260
1261         Rubber-stamped by Sam Weinig.
1262         
1263         Moved remaining heap implementation files to the heap folder.
1264
1265         * Android.mk:
1266         * CMakeLists.txt:
1267         * GNUmakefile.list.am:
1268         * JavaScriptCore.gypi:
1269         * JavaScriptCore.pro:
1270         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
1271         * JavaScriptCore.xcodeproj/project.pbxproj:
1272         * heap/ConservativeRoots.cpp: Copied from runtime/ConservativeSet.cpp.
1273         * heap/ConservativeRoots.h: Copied from runtime/ConservativeSet.h.
1274         * heap/Handle.h:
1275         * heap/Heap.cpp:
1276         * heap/MachineStackMarker.cpp: Copied from runtime/MachineStackMarker.cpp.
1277         * heap/MachineStackMarker.h: Copied from runtime/MachineStackMarker.h.
1278         * heap/MarkStack.cpp: Copied from runtime/MarkStack.cpp.
1279         * heap/MarkStack.h: Copied from runtime/MarkStack.h.
1280         * heap/MarkStackPosix.cpp: Copied from runtime/MarkStackPosix.cpp.
1281         * heap/MarkStackSymbian.cpp: Copied from runtime/MarkStackSymbian.cpp.
1282         * heap/MarkStackWin.cpp: Copied from runtime/MarkStackWin.cpp.
1283         * heap/MarkedBlock.cpp: Copied from runtime/MarkedBlock.cpp.
1284         * heap/MarkedBlock.h: Copied from runtime/MarkedBlock.h.
1285         * heap/MarkedSpace.cpp: Copied from runtime/MarkedSpace.cpp.
1286         * heap/MarkedSpace.h: Copied from runtime/MarkedSpace.h.
1287         * interpreter/RegisterFile.cpp:
1288         * runtime/ConservativeSet.cpp: Removed.
1289         * runtime/ConservativeSet.h: Removed.
1290         * runtime/MachineStackMarker.cpp: Removed.
1291         * runtime/MachineStackMarker.h: Removed.
1292         * runtime/MarkStack.cpp: Removed.
1293         * runtime/MarkStack.h: Removed.
1294         * runtime/MarkStackPosix.cpp: Removed.
1295         * runtime/MarkStackSymbian.cpp: Removed.
1296         * runtime/MarkStackWin.cpp: Removed.
1297         * runtime/MarkedBlock.cpp: Removed.
1298         * runtime/MarkedBlock.h: Removed.
1299         * runtime/MarkedSpace.cpp: Removed.
1300         * runtime/MarkedSpace.h: Removed.
1301
1302 2011-04-11  Gavin Barraclough  <barraclough@apple.com>
1303
1304         Windows build fix.
1305
1306         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
1307
1308 2011-04-09  Gavin Barraclough  <barraclough@apple.com>
1309
1310         Reviewed by Sam Weinig.
1311
1312         Bug 58198 - Clean up JSValue implementation for JSVALUE64
1313
1314         Remove JSNumberCell, JSImmediate, unify some methods between JSVALUE32_64/JSVALUE64
1315
1316         JSNumberCell.h largely just contained the constructors for JSValue on JSVALUE64,
1317         which should not have been here.  JSImmediate mostly contained uncalled methods,
1318         along with the internal implementation of the JSValue constructors split unnecessarily
1319         across a number of layers of function calls. These could largely be merged back
1320         together. Many methods and constructors from JSVALUE32_64 and JSVALUE64 can by unified.
1321
1322         The .cpp files were empty.
1323
1324         Moving all these methods into JSValue.h seems to be a repro measurable regression, so
1325         I have kept these methods in a separate JSValueInlineMethods.h. Adding the 64-bit tag
1326         values as static const members of JSValue also measures as a repro regression, so I
1327         have made these #defines.
1328
1329         * Android.mk:
1330         * CMakeLists.txt:
1331         * GNUmakefile.list.am:
1332         * JavaScriptCore.exp:
1333         * JavaScriptCore.gypi:
1334         * JavaScriptCore.pro:
1335         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
1336         * JavaScriptCore.xcodeproj/project.pbxproj:
1337             - Removed JSImmediate.h, JSNumberCell.h.
1338         * bytecompiler/BytecodeGenerator.cpp:
1339         (JSC::BytecodeGenerator::emitLoad):
1340             - Removed class JSImmediate.
1341         * dfg/DFGNonSpeculativeJIT.cpp:
1342         (JSC::DFG::NonSpeculativeJIT::compile):
1343             - Removed class JSImmediate.
1344         * dfg/DFGSpeculativeJIT.cpp:
1345         (JSC::DFG::SpeculativeJIT::compile):
1346             - Removed class JSImmediate.
1347         * jit/JITArithmetic.cpp:
1348         (JSC::JIT::compileBinaryArithOpSlowCase):
1349             - Removed class JSImmediate.
1350         * jit/JITInlineMethods.h:
1351         (JSC::JIT::emitJumpIfJSCell):
1352         (JSC::JIT::emitJumpIfNotJSCell):
1353         (JSC::JIT::emitJumpIfImmediateInteger):
1354         (JSC::JIT::emitJumpIfNotImmediateInteger):
1355         (JSC::JIT::emitFastArithDeTagImmediate):
1356         (JSC::JIT::emitFastArithDeTagImmediateJumpIfZero):
1357         (JSC::JIT::emitFastArithReTagImmediate):
1358         (JSC::JIT::emitTagAsBoolImmediate):
1359             - Removed class JSImmediate.
1360         * jit/JITOpcodes.cpp:
1361         (JSC::JIT::emit_op_not):
1362         (JSC::JIT::emit_op_jeq_null):
1363         (JSC::JIT::emit_op_jneq_null):
1364         (JSC::JIT::emit_op_get_pnames):
1365         (JSC::JIT::emit_op_eq_null):
1366         (JSC::JIT::emit_op_neq_null):
1367         (JSC::JIT::emitSlow_op_not):
1368             - Removed class JSImmediate.
1369         * jit/JSInterfaceJIT.h:
1370             - Removed class JSImmediate.
1371         * runtime/JSCell.h:
1372             - Removed JSImmediate.h, JSNumberCell.h.
1373         * runtime/JSImmediate.cpp: Removed.
1374         * runtime/JSImmediate.h: Removed.
1375         * runtime/JSNumberCell.cpp: Removed.
1376         * runtime/JSNumberCell.h: Removed.
1377             - Removed.
1378         * runtime/JSObject.h:
1379             - Removed JSImmediate.h, JSNumberCell.h.
1380         * runtime/JSString.h:
1381             - Removed JSImmediate.h, JSNumberCell.h.
1382         * runtime/JSValue.h:
1383             - Added tags for JSVALUE64, moved out some JSVALUE32_64 methods, unified with JSVALUE64.
1384         * runtime/JSValueInlineMethods.h: Added.
1385         (JSC::JSValue::toInt32):
1386         (JSC::JSValue::toUInt32):
1387         (JSC::JSValue::isUInt32):
1388         (JSC::JSValue::asUInt32):
1389         (JSC::JSValue::uncheckedGetNumber):
1390         (JSC::JSValue::toJSNumber):
1391         (JSC::jsNaN):
1392         (JSC::JSValue::getNumber):
1393         (JSC::JSValue::getBoolean):
1394         (JSC::JSValue::JSValue):
1395         (JSC::JSValue::encode):
1396         (JSC::JSValue::decode):
1397         (JSC::JSValue::operator bool):
1398         (JSC::JSValue::operator==):
1399         (JSC::JSValue::operator!=):
1400         (JSC::JSValue::isUndefined):
1401         (JSC::JSValue::isNull):
1402         (JSC::JSValue::isUndefinedOrNull):
1403         (JSC::JSValue::isCell):
1404         (JSC::JSValue::isInt32):
1405         (JSC::JSValue::isDouble):
1406         (JSC::JSValue::isTrue):
1407         (JSC::JSValue::isFalse):
1408         (JSC::JSValue::tag):
1409         (JSC::JSValue::payload):
1410         (JSC::JSValue::asInt32):
1411         (JSC::JSValue::asDouble):
1412         (JSC::JSValue::asCell):
1413         (JSC::JSValue::isNumber):
1414         (JSC::JSValue::isBoolean):
1415         (JSC::JSValue::makeImmediate):
1416         (JSC::JSValue::immediateValue):
1417         (JSC::reinterpretDoubleToIntptr):
1418         (JSC::reinterpretIntptrToDouble):
1419             - Methods moved here from JSImmediate.h/JSNumberCell.h/JSValue.h.
1420         * runtime/Operations.h:
1421             - Removed JSImmediate.h, JSNumberCell.h.
1422         * wtf/StdLibExtras.h:
1423             - Export bitwise_cast.
1424
1425 2011-04-11  Thouraya ANDOLSI  <thouraya.andolsi@st.com>
1426
1427         Reviewed by Oliver Hunt.
1428
1429         SH4 JIT SUPPORT.
1430         https://bugs.webkit.org/show_bug.cgi?id=44329
1431
1432         Add JIT remaining part for SH4 platforms.
1433
1434         * assembler/MacroAssemblerSH4.h:
1435         * jit/JIT.h:
1436         * jit/JITInlineMethods.h:
1437         * jit/JITOpcodes32_64.cpp:
1438         * jit/JITPropertyAccess32_64.cpp:
1439         * jit/JITStubs.cpp:
1440         * jit/JITStubs.h:
1441         * jit/JSInterfaceJIT.h:
1442
1443 2011-04-10  Geoffrey Garen  <ggaren@apple.com>
1444
1445         Rubber-stamped by Beth Dakin.
1446
1447         Moved Heap.h and Heap.cpp to the heap folder, because anything less 
1448         would be uncivilized.
1449
1450         * Android.mk:
1451         * CMakeLists.txt:
1452         * GNUmakefile.list.am:
1453         * JavaScriptCore.gypi:
1454         * JavaScriptCore.pro:
1455         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
1456         * JavaScriptCore.xcodeproj/project.pbxproj:
1457         * heap/Heap.cpp: Copied from JavaScriptCore/runtime/Heap.cpp.
1458         * heap/Heap.h: Copied from JavaScriptCore/runtime/Heap.h.
1459         * runtime/Heap.cpp: Removed.
1460         * runtime/Heap.h: Removed.
1461
1462 2011-04-10  Patrick Gansterer  <paroga@webkit.org>
1463
1464         Reviewed by Darin Adler.
1465
1466         Remove duplicated code from AtomicString::fromUTF8()
1467         https://bugs.webkit.org/show_bug.cgi?id=53711
1468
1469         * JavaScriptCore.exp:
1470         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
1471         * wtf/text/AtomicString.cpp:
1472         (WTF::AtomicString::fromUTF8Internal):
1473         * wtf/text/AtomicString.h:
1474         (WTF::AtomicString::fromUTF8):
1475         * wtf/unicode/UTF8.cpp:
1476         (WTF::Unicode::calculateStringHashAndLengthFromUTF8):
1477         * wtf/unicode/UTF8.h:
1478
1479 2011-04-10  Maciej Stachowiak  <mjs@apple.com>
1480
1481         Not reviewed.
1482
1483         Fix build (at least on Lion) by adding some newish header files to
1484         PrivateHeaders.
1485
1486         * JavaScriptCore.xcodeproj/project.pbxproj:
1487
1488 2011-04-09  Geoffrey Garen  <ggaren@apple.com>
1489
1490         Not reviewed.
1491
1492         Try recommitting some things svn left out of its last commit.
1493
1494         * heap/Handle.h:
1495         (JSC::HandleBase::operator!):
1496         (JSC::HandleBase::HandleBase):
1497         (JSC::HandleBase::slot):
1498         (JSC::HandleBase::setSlot):
1499         (JSC::Handle::Handle):
1500         * heap/HandleHeap.cpp:
1501         (JSC::HandleHeap::markWeakHandles):
1502         (JSC::HandleHeap::finalizeWeakHandles):
1503         (JSC::HandleHeap::isValidWeakNode):
1504         * heap/HandleHeap.h:
1505         (JSC::HandleHeap::globalData):
1506
1507 2011-04-08  Geoffrey Garen  <ggaren@apple.com>
1508
1509         Reviewed by Oliver Hunt.
1510
1511         A few heap-related renames and file moves.
1512         
1513         WeakGCPtr<T> => Weak<T>
1514         Global<T> => Strong<T>
1515         collector/ => heap/
1516         collector/* => heap/*
1517         runtime/WeakGCPtr.h => heap/Weak.h
1518         
1519         (Eventually, even more files should move into the heap directory. Like
1520         Heap.h and Heap.cpp, for example.)
1521
1522         * API/JSClassRef.h:
1523         * CMakeLists.txt:
1524         * GNUmakefile.am:
1525         * GNUmakefile.list.am:
1526         * JavaScriptCore.gypi:
1527         * JavaScriptCore.pri:
1528         * JavaScriptCore.pro:
1529         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
1530         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreCommon.vsprops:
1531         * JavaScriptCore.vcproj/JavaScriptCore/copy-files.cmd:
1532         * JavaScriptCore.vcproj/jsc/jscCommon.vsprops:
1533         * JavaScriptCore.xcodeproj/project.pbxproj:
1534         * bytecode/SamplingTool.h:
1535         * bytecompiler/BytecodeGenerator.h:
1536         * collector: Removed.
1537         * collector/handles: Removed.
1538         * collector/handles/Global.h: Removed.
1539         * collector/handles/Handle.h: Removed.
1540         * collector/handles/HandleHeap.cpp: Removed.
1541         * collector/handles/HandleHeap.h: Removed.
1542         * collector/handles/HandleStack.cpp: Removed.
1543         * collector/handles/HandleStack.h: Removed.
1544         * collector/handles/Local.h: Removed.
1545         * collector/handles/LocalScope.h: Removed.
1546         * heap: Copied from collector.
1547         * heap/Handle.h: Copied from collector/handles/Handle.h.
1548         * heap/HandleHeap.cpp: Copied from collector/handles/HandleHeap.cpp.
1549         * heap/HandleHeap.h: Copied from collector/handles/HandleHeap.h.
1550         * heap/HandleStack.cpp: Copied from collector/handles/HandleStack.cpp.
1551         * heap/HandleStack.h: Copied from collector/handles/HandleStack.h.
1552         * heap/Local.h: Copied from collector/handles/Local.h.
1553         * heap/LocalScope.h: Copied from collector/handles/LocalScope.h.
1554         * heap/Strong.h: Copied from collector/handles/Global.h.
1555         (JSC::Strong::Strong):
1556         (JSC::Strong::~Strong):
1557         (JSC::Strong::operator=):
1558         * heap/Weak.h: Copied from runtime/WeakGCPtr.h.
1559         (JSC::Weak::Weak):
1560         (JSC::Weak::~Weak):
1561         * heap/handles: Removed.
1562         * interpreter/RegisterFile.h:
1563         * jit/JITStubs.cpp:
1564         (JSC::JITThunks::hostFunctionStub):
1565         * jit/JITStubs.h:
1566         * runtime/Structure.h:
1567         * runtime/WeakGCPtr.h: Removed.
1568
1569 2011-04-08  Alpha Lam  <hclam@chromium.org>
1570
1571         Unreviewed, rolling out r83335.
1572         http://trac.webkit.org/changeset/83335
1573         https://bugs.webkit.org/show_bug.cgi?id=53556
1574
1575         GTK and QT bots are broken
1576
1577         * Configurations/FeatureDefines.xcconfig:
1578
1579 2011-04-08  Gavin Barraclough  <barraclough@apple.com>
1580
1581         Ooops, typo, build fix.
1582
1583         * dfg/DFGByteCodeParser.cpp:
1584         (JSC::DFG::ByteCodeParser::parse):
1585
1586 2011-04-08  Gavin Barraclough  <barraclough@apple.com>
1587
1588         Reviewed by Oliver Hunt.
1589
1590         Bug 58154 - Add support for comparison operators to the DFG JIT.
1591
1592         Add support for <, <=, ==, ===, and also !.  Add support for all corresponding
1593         bytecode ops, including the not- and -null forms.  Initially add functionally
1594         correct support, we'll revisit the performance.
1595
1596         * dfg/DFGByteCodeParser.cpp:
1597         (JSC::DFG::ByteCodeParser::ByteCodeParser):
1598         (JSC::DFG::ByteCodeParser::constantNull):
1599         (JSC::DFG::ByteCodeParser::parse):
1600             - Add support for parsing of bytecode opcodes, 
1601         * dfg/DFGJITCodeGenerator.h:
1602         (JSC::DFG::JITCodeGenerator::callOperation):
1603             - Add new operation call types, return bool values.
1604         * dfg/DFGNode.h:
1605             - Add new node types.
1606         * dfg/DFGNonSpeculativeJIT.cpp:
1607         (JSC::DFG::NonSpeculativeJIT::compile):
1608             - Add code generation for new nodes.
1609         * dfg/DFGOperations.cpp:
1610         (JSC::DFG::operationCompareLess):
1611         (JSC::DFG::operationCompareLessEq):
1612         (JSC::DFG::operationCompareEq):
1613         (JSC::DFG::operationCompareStrictEq):
1614         (JSC::DFG::dfgConvertJSValueToBoolean):
1615         * dfg/DFGOperations.h:
1616             - Add operation callbacks to implement new ops.
1617         * dfg/DFGSpeculativeJIT.cpp:
1618         (JSC::DFG::SpeculativeJIT::compile):
1619             - Add code generation for new nodes.
1620         * jit/JITOpcodes.cpp:
1621         (JSC::JIT::privateCompileCTIMachineTrampolines):
1622             - Switched to a simpler <0 check, rather than relying on an internal value in JSImmediate.
1623         * jit/JITPropertyAccess.cpp:
1624         (JSC::JIT::privateCompilePatchGetArrayLength):
1625             - Switched to a simpler <0 check, rather than relying on an internal value in JSImmediate.
1626         * runtime/JSImmediate.h:
1627             - Make tag values public, rather than relying on a friend - this matches JSVALUE32_64.
1628
1629 2011-04-07  Anna Cavender  <annacc@chromium.org>
1630
1631         Reviewed by Eric Carlson.
1632
1633         Setup ENABLE(TRACK) feature define
1634         https://bugs.webkit.org/show_bug.cgi?id=53556
1635
1636
1637         * Configurations/FeatureDefines.xcconfig:
1638
1639 2011-04-07  Balazs Kelemen  <kbalazs@webkit.org>
1640
1641         Reviewed by Kenneth Rohde Christiansen.
1642
1643         [WK2][Qt][GTK] Introduce common use flag for the shared UNIX domain socket IPC implementation
1644         https://bugs.webkit.org/show_bug.cgi?id=58030
1645
1646         * wtf/Platform.h: Introduce USE(UNIX_DOMAIN_SOCKETS) for WebKit2.
1647
1648 2011-04-08  Adam Roben  <aroben@apple.com>
1649
1650         Clean build fix
1651
1652         * JavaScriptCore.vcproj/JavaScriptCore/copy-files.cmd: Don't try to delete directories that
1653         don't exist. Also switched from del /s to rmdir /s, which has the benefit of deleting the
1654         directory itself in addition to the files it contains.
1655
1656 2011-04-07  Geoffrey Garen  <ggaren@apple.com>
1657
1658         Reviewed by Maciej Stachowiak.
1659
1660         Some Handle<T> cleanup
1661         https://bugs.webkit.org/show_bug.cgi?id=58109
1662
1663         * bytecode/SamplingTool.h: Sorted alphabetically because that's the
1664         WebKit style. Added a Global.h #include that was previously missing
1665         but harmless.
1666
1667         * collector/handles/Global.h:
1668         (JSC::Global::Global): Added a null constructor. No need for a special
1669         tag, and the tag is incompatible with some data structures.
1670         
1671         (JSC::Global::isHashTableDeletedValue):
1672         (JSC::Global::~Global):
1673         (JSC::Global::set):
1674         (JSC::Global::operator=):
1675         (JSC::Global::clear):
1676         (JSC::Global::hashTableDeletedValue): Reordered constructors to be near
1677         each other.
1678
1679         (JSC::Global::setWithWriteBarrier): Renamed internalSet to
1680         setWithWriteBarrier for clarity, and funneled more code into using set
1681         and setWithWriteBarrier to reduce duplication.
1682
1683         * collector/handles/Handle.h:
1684         (JSC::HandleBase::operator!):
1685         (JSC::HandleBase::HandleBase): Removed isEmpty(), since we already have
1686         boolean and ! operators.
1687
1688         (JSC::HandleBase::slot):
1689         (JSC::HandleBase::setSlot):
1690         (JSC::Handle::Handle): Added general support for null Handles. This was
1691         previously outlawed by ASSERTs, but our code has grown to support and
1692         rely on null Handles.
1693         
1694         * collector/handles/HandleHeap.cpp:
1695         (JSC::HandleHeap::markWeakHandles):
1696         (JSC::HandleHeap::finalizeWeakHandles):
1697         (JSC::HandleHeap::isValidWeakNode): Migrated from isValidWeakHandle,
1698         and beefed this up a bit.
1699
1700         * collector/handles/HandleHeap.h:
1701         (JSC::HandleHeap::globalData): Added accessor, used by some new set functions.
1702
1703         * collector/handles/Local.h: Moved hash traits to the bottom of the file,
1704         since this file is about the Local class, not the traits.
1705
1706         (JSC::::Local): Updated for removal of invalidate().
1707
1708         (JSC::::operator): Deployed "using" to avoid a lot of this->
1709         template funny business.
1710
1711         (JSC::::setWithSlotCheck): Renamed from internalSet, more specific now.
1712
1713         * interpreter/RegisterFile.h:
1714         (JSC::RegisterFile::RegisterFile): Updated to use null constructor.
1715
1716         * jit/JITStubs.cpp:
1717         (JSC::JITThunks::hostFunctionStub):
1718
1719         * runtime/JSPropertyNameIterator.h:
1720         (JSC::Structure::setEnumerationCache):
1721         * runtime/Structure.h: Removed clearEnumerationCache
1722         because it was an unused holdover from when the enumeration cache was
1723         not a handle.
1724
1725         * runtime/WeakGCMap.h:
1726         (JSC::WeakGCMap::set): Finish initializing our handle before putting it
1727         in the table. This seemed more logical, and at one point was required
1728         to avoid triggering an ASSERT.
1729
1730         * runtime/WeakGCPtr.h: Inherit from Handle instead of rolling our own
1731         handle-like behavior, to avoid duplication.
1732
1733         (JSC::WeakGCPtr::WeakGCPtr):
1734         (JSC::WeakGCPtr::~WeakGCPtr):
1735         (JSC::WeakGCPtr::get):
1736         (JSC::WeakGCPtr::clear):
1737         (JSC::WeakGCPtr::set):
1738         (JSC::WeakGCPtr::setWithWriteBarrier): Removed duplicate code and
1739         standardized on Handle idioms.
1740
1741 2011-04-07  Adam Barth  <abarth@webkit.org>
1742
1743         Reviewed by Martin Robinson.
1744
1745         Refactor Gtk build system to separate list of files
1746         https://bugs.webkit.org/show_bug.cgi?id=58090
1747
1748         This is the first step towards generating part of the GTK build system
1749         using GYP.  In the first iteration, our plan is to just generate the
1750         list of files.  This patch is the first step, which is to separate out
1751         the part of JavaScriptCore build system that we intend to generate from
1752         the rest of the build system.
1753
1754         * GNUmakefile.am:
1755         * GNUmakefile.list.am: Added.
1756
1757 2011-04-07  Zoltan Herczeg  <zherczeg@webkit.org>
1758
1759         Reviewed by Gavin Barraclough.
1760
1761         Mapping booleans the same way as integers
1762         https://bugs.webkit.org/show_bug.cgi?id=56913
1763
1764         Instead of having a seperate tag field for booleans,
1765         the logical values are stored in the payload field
1766         (for JSValue32_64 representation).
1767
1768         1.007x speedup on SunSpider.
1769
1770         * jit/JIT.h:
1771         * jit/JITInlineMethods.h:
1772         (JSC::JIT::emitStoreBool):
1773         * jit/JITOpcodes32_64.cpp:
1774         (JSC::JIT::emit_op_instanceof):
1775         (JSC::JIT::emit_op_not):
1776         (JSC::JIT::emit_op_jfalse):
1777         (JSC::JIT::emitSlow_op_jfalse):
1778         (JSC::JIT::emit_op_jtrue):
1779         (JSC::JIT::emitSlow_op_jtrue):
1780         (JSC::JIT::emit_op_jeq_null):
1781         (JSC::JIT::emit_op_jneq_null):
1782         (JSC::JIT::emit_op_eq):
1783         (JSC::JIT::emitSlow_op_eq):
1784         (JSC::JIT::emit_op_neq):
1785         (JSC::JIT::emitSlow_op_neq):
1786         (JSC::JIT::compileOpStrictEq):
1787         (JSC::JIT::emit_op_eq_null):
1788         (JSC::JIT::emit_op_neq_null):
1789         * jit/JSInterfaceJIT.h:
1790         * runtime/JSValue.h:
1791         (JSC::JSValue::JSValue):
1792         (JSC::JSValue::isTrue):
1793         (JSC::JSValue::isFalse):
1794         (JSC::JSValue::getBoolean):
1795
1796 2011-04-07  Eric Seidel  <eric@webkit.org>
1797
1798         Reviewed by Adam Barth.
1799
1800         Add stub support for generating Gtk build system from gyp
1801         https://bugs.webkit.org/show_bug.cgi?id=58086
1802
1803         This does not produce a buildable JavaScriptCore, but it
1804         does allow running gyp/configure --port=gtk and having
1805         it generate a gtk.Makefile which we can use for testing
1806         the rest of the plumbing.
1807
1808         * gyp/gtk.gyp: Added.
1809
1810 2011-04-07  Andrew Scherkus  <scherkus@chromium.org>
1811
1812         Revert ENABLE_TRACK patch due to compile failures.
1813
1814         * Configurations/FeatureDefines.xcconfig:
1815
1816 2011-04-07  Adam Barth  <abarth@webkit.org>
1817
1818         Fix whitespace in GNUmakefile.am.
1819
1820         * GNUmakefile.am:
1821
1822 2011-04-07  Gavin Barraclough  <barraclough@apple.com>
1823
1824         Fix a couple of typos in comments that Darin spotted.
1825
1826         * jit/JITOpcodes.cpp:
1827         (JSC::JIT::emit_op_not):
1828         * runtime/JSImmediate.h:
1829
1830 2011-04-06  Gavin Barraclough  <barraclough@apple.com>
1831
1832         Reviewed by Geoff Garen.
1833         Bug 58057 - Store boolean payload in low bit of JSImmediate
1834
1835         And remove some uncalled functions from JSImmediate.h
1836
1837         * jit/JITInlineMethods.h:
1838         (JSC::JIT::emitTagAsBoolImmediate):
1839         * jit/JITOpcodes.cpp:
1840         (JSC::JIT::emit_op_not):
1841         * runtime/JSImmediate.h:
1842         (JSC::JSImmediate::makeInt):
1843         (JSC::JSImmediate::makeBool):
1844         (JSC::JSImmediate::intValue):
1845         (JSC::JSImmediate::boolValue):
1846         (JSC::JSImmediate::asInt32):
1847         (JSC::JSImmediate::toDouble):
1848         (JSC::JSValue::asInt32):
1849         (JSC::JSValue::isUInt32):
1850         (JSC::JSValue::asUInt32):
1851
1852 2011-04-07  Liang Qi  <liang.qi@nokia.com>
1853
1854         Reviewed by Laszlo Gombos.
1855
1856         [Qt][Symbian] Enable webkit build with GCCE on Symbian.
1857         https://bugs.webkit.org/show_bug.cgi?id=57841
1858
1859         * wtf/MathExtras.h: GCCE compiler doesn't support those std static functions.
1860
1861 2011-04-06  Dai Mikurube  <dmikurube@chromium.org>
1862
1863         Reviewed by David Levin.
1864
1865         Add QUOTA build flag for unified quota API
1866         https://bugs.webkit.org/show_bug.cgi?id=57918
1867
1868         * Configurations/FeatureDefines.xcconfig: Added QUOTA build flag
1869
1870 2011-04-06  Kevin Ollivier  <kevino@theolliviers.com>
1871         
1872         Reviewed by Darin Adler.
1873         
1874         Make sure JS_EXPORT_PRIVATE is an empty define when we aren't using the export macros.
1875         
1876         https://bugs.webkit.org/show_bug.cgi?id=27551
1877
1878         * config.h:
1879
1880 2011-04-06  Oliver Hunt  <oliver@apple.com>
1881
1882         Reviewed by Gavin Barraclough.
1883
1884         Stop JSObject::isUsingInlineStorage() from using the structure
1885         https://bugs.webkit.org/show_bug.cgi?id=57986
1886
1887         Make the isUsingInlineStorage() implementation just look at
1888         whether the property storage is inside the object.
1889
1890         * runtime/JSObject.h:
1891         (JSC::JSObject::isUsingInlineStorage):
1892         (JSC::JSObject::JSObject):
1893
1894 2011-04-06  Gavin Barraclough  <barraclough@apple.com>
1895
1896         Rubber stamped by Geoff Garen.
1897
1898         Update comments documenting JSVALUE64/JSVALUE32_64 JSValue representations.
1899
1900         * runtime/JSImmediate.h:
1901         * runtime/JSValue.h:
1902
1903 2011-04-06  Lucas De Marchi  <lucas.demarchi@profusion.mobi>
1904
1905         cmake: Fix build for ARMv7
1906
1907         * CMakeLists.txt: add missing file.
1908
1909 2011-04-06  Liang Qi  <liang.qi@nokia.com>
1910
1911         Reviewed by Benjamin Poulain.
1912
1913         Correct a include file name.
1914         https://bugs.webkit.org/show_bug.cgi?id=57839
1915
1916         * wtf/PageAllocatorSymbian.h: It should be case sensitive. This fix 
1917         builds on Unix hosts.
1918
1919 2011-04-06  Adam Roben  <aroben@apple.com>
1920
1921         Build fix after r83056
1922
1923         * JavaScriptCore.vcproj/JavaScriptCore/copy-files.cmd: Added property svn:executable.
1924
1925 2011-04-06  Adam Roben  <aroben@apple.com>
1926
1927         Move JavaScriptCoreGenerated's file-copying logic out to a new script
1928
1929         Hopefully this will make it easier to modify this logic in the future. I also made the
1930         script much quieter than the old logic, since it didn't seem helpful to see long lists of
1931         filenames during the copying phase.
1932
1933         If we like this new style, we could copy it for our other projects.
1934
1935         Fixes <http://webkit.org/b/57950> JavaScriptCoreGenerated's file-copying logic is hard to
1936         modify and noisy
1937
1938         Reviewed by Steve Falkenburg.
1939
1940         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreGenerated.make: Moved logic to copy
1941         files from here...
1942         * JavaScriptCore.vcproj/JavaScriptCore/copy-files.cmd: ...to here. (Added.)
1943
1944         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreGenerated.vcproj: Added copy-files.cmd
1945         for convenience.
1946
1947 2011-04-05  Geoffrey Garen  <ggaren@apple.com>
1948
1949         Try to fix the Windows build.
1950
1951         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: Who likes export files? I do!
1952
1953 2011-04-05  Geoffrey Garen  <ggaren@apple.com>
1954
1955         Reviewed by Oliver Hunt.
1956
1957         Introduced the concept of opaque roots, in preparation for marking the DOM with them
1958         https://bugs.webkit.org/show_bug.cgi?id=57903
1959
1960         * JavaScriptCore.exp: Who likes export files? I do!
1961
1962         * collector/handles/HandleHeap.cpp:
1963         (JSC::isValidWeakHandle): Factored out a helper function for ASSERTs.
1964
1965         (JSC::WeakHandleOwner::~WeakHandleOwner): Moved from header to avoid
1966         weak linkage problems.
1967
1968         (JSC::WeakHandleOwner::isReachableFromOpaqueRoots): New callback.
1969         Currently unused.
1970
1971         (JSC::WeakHandleOwner::finalize): Switched from pure virtual to a
1972         default empty implementation, since not all clients necessarily want
1973         or need non-trivial finalizers.
1974
1975         (JSC::HandleHeap::markWeakHandles): Split updateWeakHandles into two
1976         passes. The first pass marks all reachable weak handles. The second pass
1977         finalizes all unreachable weak handles. This must be two passes because
1978         we don't know the set of finalizable weak handles until we're done
1979         marking all weak handles.
1980
1981         (JSC::HandleHeap::finalizeWeakHandles): Use new helper function.
1982
1983         * collector/handles/HandleHeap.h: Ditto.
1984
1985         * runtime/Heap.cpp: 
1986         (JSC::Heap::destroy):
1987         (JSC::Heap::markRoots):
1988         (JSC::Heap::reset): Split out handle marking from handle finalization.
1989
1990         * runtime/MarkStack.cpp:
1991         (JSC::MarkStack::reset):
1992         * runtime/MarkStack.h:
1993         (JSC::MarkStack::addOpaqueRoot):
1994         (JSC::MarkStack::containsOpaqueRoot):
1995         (JSC::MarkStack::opaqueRootCount):
1996         (JSC::HeapRootMarker::markStack): New helper functions for managing the
1997         set of opaque roots.
1998
1999         * runtime/WeakGCMap.h:
2000         (JSC::WeakGCMap::finalize): Renamed to match parent class declaration.
2001
2002 2011-04-05  Balazs Kelemen  <kbalazs@webkit.org>
2003
2004         Reviewed by Darin Adler.
2005
2006         Build fix for YarrParser.h
2007         https://bugs.webkit.org/show_bug.cgi?id=57822
2008
2009         * yarr/YarrParser.h:
2010         (JSC::Yarr::Parser::CharacterClassParserDelegate::CharacterClassParserDelegate):
2011
2012 2011-04-05  Steve Falkenburg  <sfalken@apple.com>
2013
2014         Follow-up Windows build fix.
2015         Don't skip react-to-vsprops-changes.py for all production builds,
2016         only those initiated via JavaScriptCore.make.
2017
2018         * JavaScriptCore.vcproj/JavaScriptCore.make:
2019         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreGenerated.make:
2020
2021 2011-04-05  Oliver Hunt  <oliver@apple.com>
2022
2023         Reviewed by Darin Adler.
2024
2025         REGRESSION (r82849): 85,000+ JSC-related leaks seen on SnowLeopard Intel Leaks
2026         https://bugs.webkit.org/show_bug.cgi?id=57857
2027
2028         Whoops, accidentally removed a deref().
2029
2030         * bytecode/StructureStubInfo.cpp:
2031         (JSC::StructureStubInfo::deref):
2032
2033 2011-04-05  Steve Falkenburg  <sfalken@apple.com>
2034
2035         Windows build fix.
2036
2037         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreGenerated.vcproj: Add per-configuration vsprops files.
2038         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreGeneratedCommon.vsprops: Removed inheritance from common.vsprops.
2039         Set production environment variable before calling make.
2040         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreGeneratedDebug.vsprops: Added.
2041         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreGeneratedDebugAll.vsprops: Added.
2042         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreGeneratedDebugCairoCFLite.vsprops: Added.
2043         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreGeneratedProduction.vsprops: Added.
2044         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreGeneratedRelease.vsprops: Added.
2045         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreGeneratedReleaseCairoCFLite.vsprops: Added.
2046         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreGeneratedReleasePGO.vsprops: Added.
2047
2048 2011-04-05  Oliver Hunt  <oliver@apple.com>
2049
2050         Reviewed by Gavin Barraclough.
2051
2052         Make caches window show more info about non-jsobject GC values
2053         https://bugs.webkit.org/show_bug.cgi?id=57874
2054
2055         Add ClassInfo to the various internal JS types that currently
2056         don't have any, and make the text for caches window show the
2057         classname for non-JSObject instances.
2058
2059         * runtime/Executable.cpp:
2060         * runtime/Executable.h:
2061         (JSC::ExecutableBase::createStructure):
2062         (JSC::NativeExecutable::createStructure):
2063         (JSC::NativeExecutable::NativeExecutable):
2064         (JSC::EvalExecutable::createStructure):
2065         (JSC::ProgramExecutable::createStructure):
2066         (JSC::FunctionExecutable::createStructure):
2067         * runtime/Heap.cpp:
2068         (JSC::TypeCounter::typeName):
2069         * runtime/JSGlobalData.cpp:
2070         (JSC::JSGlobalData::JSGlobalData):
2071         * runtime/JSGlobalData.h:
2072         * runtime/ScopeChain.cpp:
2073         * runtime/ScopeChain.h:
2074         (JSC::ScopeChainNode::createStructure):
2075         * runtime/StructureChain.cpp:
2076         * runtime/StructureChain.h:
2077         (JSC::StructureChain::createStructure):
2078
2079 2011-04-05  Nikolas Zimmermann  <nzimmermann@rim.com>
2080
2081         Reviewed by Andreas Kling.
2082
2083         Cleanup StringConcatenate
2084         https://bugs.webkit.org/show_bug.cgi?id=57836
2085
2086         Don't use PassRefPtr in local variables, properly store in RefPtrs and release on return.
2087         Add a makeString() variant taking 9 arguments, needed by a follow-up patch.
2088
2089         * wtf/text/StringConcatenate.h:
2090         (WTF::tryMakeString):
2091         (WTF::makeString):
2092
2093 2011-04-04  Sheriff Bot  <webkit.review.bot@gmail.com>
2094
2095         Unreviewed, rolling out r82876.
2096         http://trac.webkit.org/changeset/82876
2097         https://bugs.webkit.org/show_bug.cgi?id=57816
2098
2099         Caused a lot of test crashes (Requested by tkent on #webkit).
2100
2101         * JavaScriptCore.exp:
2102         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
2103         * wtf/FastMalloc.cpp:
2104         (WTF::tryFastMalloc):
2105         (WTF::fastMalloc):
2106         (WTF::tryFastCalloc):
2107         (WTF::fastCalloc):
2108         (WTF::fastFree):
2109         (WTF::tryFastRealloc):
2110         (WTF::fastRealloc):
2111         (WTF::fastMallocSize):
2112         (WTF::TCMalloc_PageHeap::isScavengerSuspended):
2113         (WTF::TCMalloc_PageHeap::scheduleScavenger):
2114         (WTF::TCMalloc_PageHeap::suspendScavenger):
2115         (WTF::TCMalloc_PageHeap::signalScavenger):
2116         (WTF::TCMallocStats::malloc):
2117         (WTF::TCMallocStats::free):
2118         (WTF::TCMallocStats::fastCalloc):
2119         (WTF::TCMallocStats::tryFastCalloc):
2120         (WTF::TCMallocStats::calloc):
2121         (WTF::TCMallocStats::fastRealloc):
2122         (WTF::TCMallocStats::tryFastRealloc):
2123         (WTF::TCMallocStats::realloc):
2124         (WTF::TCMallocStats::fastMallocSize):
2125         * wtf/FastMalloc.h:
2126         (WTF::Internal::fastMallocMatchValidationType):
2127         (WTF::Internal::fastMallocMatchValidationValue):
2128         (WTF::Internal::setFastMallocMatchValidationType):
2129         (WTF::fastMallocMatchValidateFree):
2130         * wtf/Platform.h:
2131
2132 2011-04-04  Oliver Hunt  <oliver@apple.com>
2133
2134         Reviewed by Antti Koivisto.
2135
2136         Stop JSCell.h from including Structure.h
2137         https://bugs.webkit.org/show_bug.cgi?id=57809
2138
2139         * runtime/GetterSetter.h:
2140         * runtime/JSAPIValueWrapper.h:
2141         * runtime/JSCell.h:
2142         (JSC::JSCell::JSValue::toThisObject):
2143         * runtime/JSString.h:
2144         * runtime/ScopeChain.h:
2145         * runtime/Structure.h:
2146         (JSC::JSCell::isObject):
2147         (JSC::JSCell::isString):
2148         (JSC::JSCell::classInfo):
2149         (JSC::JSCell::createDummyStructure):
2150         (JSC::JSValue::needsThisConversion):
2151         (JSC::MarkStack::internalAppend):
2152         * runtime/StructureChain.h:
2153
2154 2011-04-04  Oliver Hunt  <oliver@apple.com>
2155
2156         Fix clang build.
2157
2158         * wtf/FastMalloc.cpp:
2159         (WTF::fastMalloc):
2160         (WTF::fastCalloc):
2161         (WTF::fastRealloc):
2162
2163 2011-04-04  Oliver Hunt  <oliver@apple.com>
2164
2165         Remove accidental change to Platform.h
2166
2167         * wtf/Platform.h:
2168
2169 2011-04-04  Geoffrey Garen  <ggaren@apple.com>
2170
2171         Reviewed by Oliver Hunt.
2172
2173         Fixed a weak-handle-related leak in RegisterFile
2174         https://bugs.webkit.org/show_bug.cgi?id=57793
2175
2176         * interpreter/RegisterFile.cpp: Nixed leaky GlobalObjectNotifier.
2177         * interpreter/RegisterFile.h:
2178         (JSC::RegisterFile::GlobalObjectOwner::finalize):
2179         (JSC::RegisterFile::RegisterFile): Replaced GlobalObjectNotifier with
2180         a per-RegisterFile weak handle owner, which does not leak.
2181
2182         * runtime/WeakGCPtr.h:
2183         (JSC::WeakGCPtr::set): Allow set() to take a context argument, since
2184         RegisterFile now needs this. (Seems like it was an accidental omission
2185         all along.)
2186
2187 2011-04-04  Oliver Hunt  <oliver@apple.com>
2188
2189         Reviewed by Geoffrey Garen.
2190
2191         Make malloc validation useful
2192         https://bugs.webkit.org/show_bug.cgi?id=57502
2193
2194         This patch changes FAST_MALLOC_MATCH_VALIDATION with a general
2195         corruption check that tags the beginning and end of all allocations
2196         to check for write overflows and overwrites the contents of
2197         memory on free in order to (hopefully) show up use-after-free issues
2198         sooner.
2199
2200         We also turn it on by default for debug builds.
2201
2202         * JavaScriptCore.exp:
2203         * wtf/FastMalloc.cpp:
2204         (WTF::tryFastMalloc):
2205         (WTF::fastMalloc):
2206         (WTF::tryFastCalloc):
2207         (WTF::fastCalloc):
2208         (WTF::fastFree):
2209         (WTF::tryFastRealloc):
2210         (WTF::fastRealloc):
2211         (WTF::TCMalloc_PageHeap::isScavengerSuspended):
2212         (WTF::TCMalloc_PageHeap::scheduleScavenger):
2213         (WTF::TCMalloc_PageHeap::suspendScavenger):
2214         (WTF::TCMalloc_PageHeap::signalScavenger):
2215         (WTF::TCMallocStats::malloc):
2216         (WTF::TCMallocStats::free):
2217         (WTF::TCMallocStats::fastCalloc):
2218         (WTF::TCMallocStats::tryFastCalloc):
2219         (WTF::TCMallocStats::calloc):
2220         (WTF::TCMallocStats::fastRealloc):
2221         (WTF::TCMallocStats::tryFastRealloc):
2222         (WTF::TCMallocStats::realloc):
2223         * wtf/FastMalloc.h:
2224         (WTF::Internal::fastMallocValidationHeader):
2225         (WTF::Internal::fastMallocValidationSuffix):
2226         (WTF::Internal::fastMallocMatchValidationType):
2227         (WTF::Internal::setFastMallocMatchValidationType):
2228         (WTF::fastMallocMatchValidateFree):
2229         (WTF::fastMallocValidate):
2230         * wtf/Platform.h:
2231
2232 2011-04-04  Geoffrey Garen  <ggaren@apple.com>
2233
2234         Reviewed by Oliver Hunt.
2235
2236         Renamed clearWeakPointers => updateWeakHandles and removed misleading comment
2237         https://bugs.webkit.org/show_bug.cgi?id=57790
2238
2239         * collector/handles/HandleHeap.cpp:
2240         (JSC::HandleHeap::updateWeakHandles): Updated for rename.
2241
2242         * collector/handles/HandleHeap.h: Removed comment claiming that this
2243         function should only be called during teardown, because it's actually
2244         called after every GC pass.
2245
2246         * runtime/Heap.cpp:
2247         (JSC::Heap::destroy):
2248         (JSC::Heap::markRoots): Updated for rename.
2249
2250 2011-04-04  Geoffrey Garen  <ggaren@apple.com>
2251
2252         Reviewed by Oliver Hunt.
2253
2254         Standardized handling of handles for immediate values
2255         https://bugs.webkit.org/show_bug.cgi?id=57788
2256
2257         * collector/handles/HandleHeap.cpp:
2258         (JSC::HandleHeap::clearWeakPointers): Don't check for null or non-cell
2259         values here, because our write barrier guarantees that such values are
2260         not in the weak list.
2261
2262         (JSC::HandleHeap::writeBarrier): Standardized on checking for null before
2263         checking for cell, and on using early return instead of if/else.
2264
2265         * collector/handles/HandleHeap.h:
2266         (JSC::HandleHeap::deallocate):
2267         (JSC::HandleHeap::makeWeak): Ditto.
2268
2269 2011-04-04  Geoffrey Garen  <ggaren@apple.com>
2270
2271         Not reviewed.
2272
2273         Removed a redundant variable from HandleHeap
2274         https://bugs.webkit.org/show_bug.cgi?id=57786
2275         
2276         Forgot to commit the file that actually removes the data member!
2277         
2278         * collector/handles/HandleHeap.h:
2279
2280 2011-04-04  Geoffrey Garen  <ggaren@apple.com>
2281
2282         Reviewed by Oliver Hunt.
2283
2284         Removed a redundant variable from HandleHeap
2285         https://bugs.webkit.org/show_bug.cgi?id=57786
2286         
2287         We don't need a specific variable to indicate that we're in the middle
2288         of the finalization phase, since m_nextToFinalize already does this.
2289
2290         * collector/handles/HandleHeap.cpp:
2291         (JSC::HandleHeap::HandleHeap):
2292         (JSC::HandleHeap::clearWeakPointers):
2293         (JSC::HandleHeap::writeBarrier):
2294
2295 2011-04-04  Geoffrey Garen  <ggaren@apple.com>
2296
2297         Reviewed by Oliver Hunt.
2298
2299         Renamed Finalizer => WeakHandleOwner (in preparation for adding a reachability callback)
2300         https://bugs.webkit.org/show_bug.cgi?id=57775
2301         
2302         Also renamed noFinalizer => emptyWeakOwner, since this is really an
2303         optimization for a weak owner with empty callbacks.
2304
2305         * collector/handles/HandleHeap.cpp:
2306         (JSC::HandleHeap::clearWeakPointers): Updated for renames. Removed
2307         redundant initialization of m_nextToFinalize. Moved deletion check inside
2308         weak owner check, since the weak owner can't delete the node if there is
2309         no weak owner!
2310
2311         * collector/handles/HandleHeap.h:
2312         (JSC::WeakHandleOwner::~WeakHandleOwner):
2313         (JSC::HandleHeap::makeWeak): Updated for renames.
2314
2315         (JSC::HandleHeap::hasWeakOwner): Changed getFinalizer to hasWeakOwner,
2316         to clarify this function's role in assertions.
2317
2318         (JSC::HandleHeap::Node::Node):
2319         (JSC::HandleHeap::Node::makeWeak):
2320         (JSC::HandleHeap::Node::isWeak):
2321         (JSC::HandleHeap::Node::weakOwner):
2322         (JSC::HandleHeap::Node::weakOwnerContext):
2323         (JSC::HandleHeap::Node::emptyWeakOwner):
2324         * interpreter/RegisterFile.cpp:
2325         (JSC::RegisterFile::globalObjectCollectedNotifier):
2326         * interpreter/RegisterFile.h:
2327         * runtime/WeakGCMap.h:
2328         * runtime/WeakGCPtr.h:
2329         (JSC::WeakGCPtr::WeakGCPtr):
2330         (JSC::WeakGCPtr::set): Updated for renames.
2331
2332 2011-04-04  Oliver Hunt  <oliver@apple.com>
2333
2334         Fix WinCE build.
2335
2336         * bytecode/Instruction.h:
2337         * interpreter/Interpreter.cpp:
2338         (JSC::Interpreter::tryCachePutByID):
2339         (JSC::Interpreter::tryCacheGetByID):
2340
2341 2011-04-04  Adam Roben  <aroben@apple.com>
2342
2343         Delete mt.dep files when doing a clean build due to .vsprops file changes
2344
2345         Apparently this is yet another file that Visual Studio can't figure out it needs to rebuild.
2346
2347         Fixes <http://webkit.org/b/57777> r82850 failed to build on Windows Debug (Build)
2348
2349         Reviewed by Brian Weinstein.
2350
2351         * JavaScriptCore.vcproj/JavaScriptCore/react-to-vsprops-changes.py:
2352         (main): Added dep to the list of extensions we look for when choosing files to delete.
2353
2354 2011-04-01  Oliver Hunt  <oliver@apple.com>
2355
2356         Reviewed by Geoffrey Garen.
2357
2358         Make StructureChain GC allocated
2359         https://bugs.webkit.org/show_bug.cgi?id=56695
2360
2361         Make StructureChain GC allocated, and make the various owners
2362         mark it correctly.
2363
2364         * JavaScriptCore.exp:
2365         * bytecode/CodeBlock.cpp:
2366         (JSC::CodeBlock::dump):
2367         (JSC::CodeBlock::derefStructures):
2368         (JSC::CodeBlock::refStructures):
2369         (JSC::CodeBlock::markAggregate):
2370         * bytecode/Instruction.h:
2371         (JSC::PolymorphicAccessStructureList::PolymorphicStubInfo::set):
2372         (JSC::PolymorphicAccessStructureList::PolymorphicAccessStructureList):
2373         (JSC::PolymorphicAccessStructureList::derefStructures):
2374         (JSC::PolymorphicAccessStructureList::markAggregate):
2375         (JSC::Instruction::Instruction):
2376         * bytecode/StructureStubInfo.cpp:
2377         (JSC::StructureStubInfo::deref):
2378         (JSC::StructureStubInfo::markAggregate):
2379         * bytecode/StructureStubInfo.h:
2380         (JSC::StructureStubInfo::initGetByIdChain):
2381         (JSC::StructureStubInfo::initPutByIdTransition):
2382         * bytecompiler/BytecodeGenerator.cpp:
2383         (JSC::BytecodeGenerator::emitJumpIfNotFunctionCall):
2384         (JSC::BytecodeGenerator::emitJumpIfNotFunctionApply):
2385         * collector/handles/Handle.h:
2386         (JSC::HandleConverter::operator->):
2387         (JSC::HandleConverter::operator*):
2388         * interpreter/Interpreter.cpp:
2389         (JSC::Interpreter::privateExecute):
2390         * jit/JITOpcodes.cpp:
2391         (JSC::JIT::emit_op_jneq_ptr):
2392         * jit/JITOpcodes32_64.cpp:
2393         (JSC::JIT::emit_op_jneq_ptr):
2394         * jit/JITPropertyAccess.cpp:
2395         (JSC::JIT::privateCompileGetByIdChainList):
2396         * jit/JITPropertyAccess32_64.cpp:
2397         (JSC::JIT::privateCompileGetByIdChainList):
2398         * jit/JITStubs.cpp:
2399         (JSC::JITThunks::tryCachePutByID):
2400         (JSC::JITThunks::tryCacheGetByID):
2401         (JSC::getPolymorphicAccessStructureListSlot):
2402         (JSC::DEFINE_STUB_FUNCTION):
2403         * runtime/JSCell.h:
2404         * runtime/JSGlobalData.cpp:
2405         (JSC::JSGlobalData::JSGlobalData):
2406         * runtime/JSGlobalData.h:
2407         * runtime/JSGlobalObject.cpp:
2408         (JSC::markIfNeeded):
2409         * runtime/JSGlobalObject.h:
2410         (JSC::Structure::prototypeChain):
2411         * runtime/JSObject.h:
2412         (JSC::JSObject::putDirectInternal):
2413         (JSC::JSObject::markChildrenDirect):
2414         * runtime/JSPropertyNameIterator.cpp:
2415         (JSC::JSPropertyNameIterator::create):
2416         (JSC::JSPropertyNameIterator::get):
2417         (JSC::JSPropertyNameIterator::markChildren):
2418         * runtime/JSPropertyNameIterator.h:
2419         (JSC::JSPropertyNameIterator::setCachedPrototypeChain):
2420         * runtime/JSZombie.cpp:
2421         (JSC::JSZombie::leakedZombieStructure):
2422         * runtime/JSZombie.h:
2423         * runtime/MarkStack.h:
2424         (JSC::MarkStack::append):
2425         * runtime/MarkedBlock.cpp:
2426         (JSC::MarkedBlock::sweep):
2427         * runtime/Structure.cpp:
2428         (JSC::Structure::addPropertyTransition):
2429         * runtime/Structure.h:
2430         (JSC::Structure::markAggregate):
2431         * runtime/StructureChain.cpp:
2432         (JSC::StructureChain::StructureChain):
2433         (JSC::StructureChain::~StructureChain):
2434         (JSC::StructureChain::markChildren):
2435         * runtime/StructureChain.h:
2436         (JSC::StructureChain::create):
2437         (JSC::StructureChain::createStructure):
2438         * runtime/WriteBarrier.h:
2439         (JSC::WriteBarrierBase::get):
2440         (JSC::WriteBarrierBase::operator*):
2441         (JSC::WriteBarrierBase::operator->):
2442
2443 2011-04-01  Geoffrey Garen  <ggaren@apple.com>
2444
2445         Reviewed by Oliver Hunt.
2446
2447         Removed some complexity from HandleHeap
2448         https://bugs.webkit.org/show_bug.cgi?id=57650
2449         
2450         Eliminated pointer-tagging flags.
2451         
2452         Tied being weak to having a finalizer (or at least a finalizer sentinel).
2453
2454         * collector/handles/HandleHeap.cpp:
2455         (JSC::HandleHeap::clearWeakPointers): Removed the special self-destroying
2456         flag. It was unused. If we bring it back, we'll probably use a shared
2457         autodeallocating finalizer instead.
2458
2459         * collector/handles/HandleHeap.h:
2460         (JSC::HandleHeap::makeWeak): makeWeak and adding a finalizer are now
2461         a single, atomic operation -- this makes the relationship between
2462         finalizers and weak pointers clearer, and impossible to get wrong.
2463
2464         (JSC::HandleHeap::Node::Node):
2465         (JSC::HandleHeap::Node::handleHeap): No more flags.
2466
2467         (JSC::HandleHeap::Node::makeWeak):
2468         (JSC::HandleHeap::Node::isWeak): Ditto above. We use a special sentienl
2469         value in the finalizer slot to indicate that a handle is weak but doesn't
2470         require an external function call for finalization.
2471
2472 2011-04-01  Geoffrey Garen  <ggaren@apple.com>
2473
2474         Reviewed by Oliver Hunt.
2475
2476         Removed WeakGCMap::deprecatedRemove because it was deprecated and unused
2477         https://bugs.webkit.org/show_bug.cgi?id=57648
2478
2479         * runtime/WeakGCMap.h:
2480
2481 2011-04-01  Adam Roben  <aroben@apple.com>
2482
2483         Maintain the invariant that Lexer::m_current is set to -1 when at the end of the code buffer
2484
2485         Covered by existing tests.
2486
2487         Fixes <http://webkit.org/b/56699>.
2488
2489         Reviewed by Oliver Hunt.
2490
2491         * parser/Lexer.h:
2492         (JSC::Lexer::setOffset): Copied code from Lexer::shift to update m_current, because
2493         supposedly the idiom that function uses is fast.
2494
2495 2011-03-31  Thouraya ANDOLSI  <thouraya.andolsi@st.com>
2496
2497         Reviewed by Oliver Hunt.
2498
2499         SH4 JIT SUPPORT.
2500         https://bugs.webkit.org/show_bug.cgi?id=44329
2501
2502         Add YARR support for SH4 platforms (disabled by default).
2503
2504         * GNUmakefile.am:
2505         * assembler/MacroAssembler.h:
2506         * assembler/MacroAssemblerSH4.cpp: Added.
2507         * assembler/MacroAssemblerSH4.h: Added.
2508         * assembler/SH4Assembler.h: Added.
2509         * yarr/YarrJIT.cpp:
2510
2511 2011-03-30  Adam Roben  <aroben@apple.com>
2512
2513         Clean build fix
2514
2515         * JavaScriptCore.vcproj/JavaScriptCore.sln: Serialized project dependencies so projects
2516         don't try to build in parallel (which doesn't mesh with our buildfailed mechanism).
2517
2518 2011-03-30  Oliver Hunt  <oliver@apple.com>
2519
2520         Rollout r82500
2521
2522         * bytecode/CodeBlock.cpp:
2523         (JSC::CodeBlock::dump):
2524         (JSC::CodeBlock::derefStructures):
2525         (JSC::CodeBlock::refStructures):
2526         (JSC::CodeBlock::markAggregate):
2527         * bytecode/Instruction.h:
2528         (JSC::PolymorphicAccessStructureList::PolymorphicStubInfo::set):
2529         (JSC::PolymorphicAccessStructureList::PolymorphicAccessStructureList):
2530         (JSC::PolymorphicAccessStructureList::derefStructures):
2531         (JSC::Instruction::Instruction):
2532         * bytecode/StructureStubInfo.cpp:
2533         (JSC::StructureStubInfo::deref):
2534         * bytecode/StructureStubInfo.h:
2535         (JSC::StructureStubInfo::initGetByIdChain):
2536         (JSC::StructureStubInfo::initPutByIdTransition):
2537         * bytecompiler/BytecodeGenerator.cpp:
2538         (JSC::BytecodeGenerator::emitJumpIfNotFunctionCall):
2539         (JSC::BytecodeGenerator::emitJumpIfNotFunctionApply):
2540         * interpreter/Interpreter.cpp:
2541         (JSC::Interpreter::privateExecute):
2542         * jit/JITOpcodes.cpp:
2543         (JSC::JIT::emit_op_jneq_ptr):
2544         * jit/JITOpcodes32_64.cpp:
2545         (JSC::JIT::emit_op_jneq_ptr):
2546         * jit/JITPropertyAccess.cpp:
2547         (JSC::JIT::privateCompileGetByIdChainList):
2548         * jit/JITPropertyAccess32_64.cpp:
2549         (JSC::JIT::privateCompileGetByIdChainList):
2550         * jit/JITStubs.cpp:
2551         (JSC::getPolymorphicAccessStructureListSlot):
2552         (JSC::DEFINE_STUB_FUNCTION):
2553         * runtime/JSCell.h:
2554         * runtime/JSGlobalData.cpp:
2555         (JSC::JSGlobalData::JSGlobalData):
2556         * runtime/JSGlobalData.h:
2557         * runtime/JSGlobalObject.cpp:
2558         (JSC::markIfNeeded):
2559         * runtime/JSGlobalObject.h:
2560         (JSC::Structure::prototypeChain):
2561         * runtime/JSObject.h:
2562         (JSC::JSObject::markChildrenDirect):
2563         * runtime/JSPropertyNameIterator.cpp:
2564         (JSC::JSPropertyNameIterator::create):
2565         (JSC::JSPropertyNameIterator::get):
2566         (JSC::JSPropertyNameIterator::markChildren):
2567         * runtime/JSPropertyNameIterator.h:
2568         (JSC::JSPropertyNameIterator::setCachedPrototypeChain):
2569         * runtime/MarkStack.h:
2570         (JSC::MarkStack::append):
2571         * runtime/Structure.h:
2572         * runtime/StructureChain.cpp:
2573         (JSC::StructureChain::StructureChain):
2574         * runtime/StructureChain.h:
2575         (JSC::StructureChain::create):
2576
2577 2011-03-29  Matthew Delaney  <mdelaney@apple.com>
2578
2579         Reviewed by Simon Fraser.
2580
2581         Use the Accelerate vImage vectorized (un)premultiplyImageData functions for ImageBufferCG
2582
2583         https://bugs.webkit.org/show_bug.cgi?id=53134
2584
2585         * wtf/Platform.h: Added in WTF flag for using the Accelerate framework
2586
2587 2011-03-30  Steve Falkenburg  <sfalken@apple.com>
2588
2589         Reviewed by Adam Roben.
2590
2591         Share most vsprops between Release and Production builds in releaseproduction.vsprops
2592         https://bugs.webkit.org/show_bug.cgi?id=57508
2593
2594         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreProduction.vsprops:
2595         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreRelease.vsprops:
2596         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreReleaseCairoCFLite.vsprops:
2597         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreReleasePGO.vsprops:
2598         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreReleasePGOOptimize.vsprops:
2599         * JavaScriptCore.vcproj/WTF/WTFProduction.vsprops:
2600         * JavaScriptCore.vcproj/WTF/WTFRelease.vsprops:
2601         * JavaScriptCore.vcproj/WTF/WTFReleaseCairoCFLite.vsprops:
2602         * JavaScriptCore.vcproj/WTF/WTFReleasePGO.vsprops:
2603         * JavaScriptCore.vcproj/jsc/jscProduction.vsprops:
2604         * JavaScriptCore.vcproj/jsc/jscRelease.vsprops:
2605         * JavaScriptCore.vcproj/jsc/jscReleaseCairoCFLite.vsprops:
2606         * JavaScriptCore.vcproj/jsc/jscReleasePGO.vsprops:
2607         * JavaScriptCore.vcproj/testapi/testapiProduction.vsprops:
2608         * JavaScriptCore.vcproj/testapi/testapiRelease.vsprops:
2609         * JavaScriptCore.vcproj/testapi/testapiReleaseCairoCFLite.vsprops:
2610
2611 2011-03-30  Mark Rowe  <mrowe@apple.com>
2612
2613         Reviewed by Adam Roben.
2614
2615         Explicitly prevent testapi and minidom from being installed rather than relying
2616         on Xcode's current behavior of not installing if INSTALL_PATH is not explicitly
2617         set at the target level.
2618
2619         <rdar://problem/9206357>
2620
2621         * JavaScriptCore.xcodeproj/project.pbxproj:
2622
2623 2011-03-30  Timur Iskhodzhanov  <timurrrr@google.com>
2624
2625         Reviewed by Alexey Proskuryakov.
2626
2627         Add some dynamic annotations to JavaScriptCore/wtf
2628         https://bugs.webkit.org/show_bug.cgi?id=53747
2629
2630         By using these annotations we can improve the precision of finding
2631         WebKit errors using dynamic analysis tools like ThreadSanitizer and Valgrind.
2632         These annotations don't affect the compiled binaries unless USE(DYNAMIC_ANNOTATIONS) is "1".
2633
2634         These files don't add new functionality, so don't need extra tests.
2635
2636         * GNUmakefile.am:
2637         * JavaScriptCore.gypi:
2638         * JavaScriptCore.vcproj/WTF/WTF.vcproj:
2639         * JavaScriptCore.xcodeproj/project.pbxproj:
2640         * wtf/CMakeLists.txt:
2641         * wtf/DynamicAnnotations.cpp: Added.
2642         (WTFAnnotateBenignRaceSized):
2643         (WTFAnnotateHappensBefore):
2644         (WTFAnnotateHappensAfter):
2645         * wtf/DynamicAnnotations.h: Added.
2646         * wtf/ThreadSafeRefCounted.h:
2647         (WTF::ThreadSafeRefCountedBase::derefBase):
2648         * wtf/text/StringStatics.cpp:
2649         (WTF::StringImpl::empty):
2650
2651 2011-03-30  Oliver Hunt  <oliver@apple.com>
2652
2653         Reviewed by Geoffrey Garen.
2654
2655         Make StructureChain GC allocated
2656         https://bugs.webkit.org/show_bug.cgi?id=56695
2657
2658         Make StructureChain GC allocated, and make the various owners
2659         mark it correctly.
2660
2661         * bytecode/CodeBlock.cpp:
2662         (JSC::CodeBlock::dump):
2663         (JSC::CodeBlock::derefStructures):
2664         (JSC::CodeBlock::refStructures):
2665         (JSC::CodeBlock::markAggregate):
2666         * bytecode/Instruction.h:
2667         (JSC::PolymorphicAccessStructureList::PolymorphicStubInfo::set):
2668         (JSC::PolymorphicAccessStructureList::PolymorphicAccessStructureList):
2669         (JSC::PolymorphicAccessStructureList::derefStructures):
2670         (JSC::PolymorphicAccessStructureList::markAggregate):
2671         (JSC::Instruction::Instruction):
2672         * bytecode/StructureStubInfo.cpp:
2673         (JSC::StructureStubInfo::deref):
2674         (JSC::StructureStubInfo::markAggregate):
2675         * bytecode/StructureStubInfo.h:
2676         (JSC::StructureStubInfo::initGetByIdChain):
2677         (JSC::StructureStubInfo::initPutByIdTransition):
2678         * bytecompiler/BytecodeGenerator.cpp:
2679         (JSC::BytecodeGenerator::emitJumpIfNotFunctionCall):
2680         (JSC::BytecodeGenerator::emitJumpIfNotFunctionApply):
2681         * interpreter/Interpreter.cpp:
2682         (JSC::Interpreter::privateExecute):
2683         * jit/JITOpcodes.cpp:
2684         (JSC::JIT::emit_op_jneq_ptr):
2685         * jit/JITOpcodes32_64.cpp:
2686         (JSC::JIT::emit_op_jneq_ptr):
2687         * jit/JITPropertyAccess.cpp:
2688         (JSC::JIT::privateCompileGetByIdChainList):
2689         * jit/JITPropertyAccess32_64.cpp:
2690         (JSC::JIT::privateCompileGetByIdChainList):
2691         * jit/JITStubs.cpp:
2692         (JSC::getPolymorphicAccessStructureListSlot):
2693         (JSC::DEFINE_STUB_FUNCTION):
2694         * runtime/JSCell.h:
2695         * runtime/JSGlobalData.cpp:
2696         (JSC::JSGlobalData::JSGlobalData):
2697         * runtime/JSGlobalData.h:
2698         * runtime/JSGlobalObject.cpp:
2699         (JSC::markIfNeeded):
2700         * runtime/JSGlobalObject.h:
2701         (JSC::Structure::prototypeChain):
2702         * runtime/JSObject.h:
2703         (JSC::JSObject::markChildrenDirect):
2704         * runtime/JSPropertyNameIterator.cpp:
2705         (JSC::JSPropertyNameIterator::create):
2706         (JSC::JSPropertyNameIterator::get):
2707         (JSC::JSPropertyNameIterator::markChildren):
2708         * runtime/JSPropertyNameIterator.h:
2709         (JSC::JSPropertyNameIterator::setCachedPrototypeChain):
2710         * runtime/MarkStack.h:
2711         (JSC::MarkStack::append):
2712         * runtime/Structure.h:
2713         (JSC::Structure::cachedPrototypeChainSlot):
2714         * runtime/StructureChain.cpp:
2715         (JSC::StructureChain::StructureChain):
2716         * runtime/StructureChain.h:
2717         (JSC::StructureChain::create):
2718         (JSC::StructureChain::createStructure):
2719
2720 2011-03-30  Steve Falkenburg  <sfalken@apple.com>
2721
2722         Reviewed by Adam Roben.
2723
2724         Update Windows production build logic for new production configurations
2725         https://bugs.webkit.org/show_bug.cgi?id=57494
2726
2727         * JavaScriptCore.vcproj/JavaScriptCore.make:
2728         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreProduction.vsprops:
2729         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreReleasePGO.vsprops:
2730         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreReleasePGOOptimize.vsprops:
2731         * JavaScriptCore.vcproj/WTF/WTFProduction.vsprops:
2732         * JavaScriptCore.vcproj/WTF/WTFReleasePGO.vsprops:
2733         * JavaScriptCore.vcproj/jsc/jscProduction.vsprops:
2734         * JavaScriptCore.vcproj/jsc/jscReleasePGO.vsprops:
2735         * JavaScriptCore.vcproj/testapi/testapiProduction.vsprops:
2736
2737 2011-03-30  Steve Falkenburg  <sfalken@apple.com>
2738
2739         Reviewed by Adam Roben.
2740
2741         Rename Windows configuration Release_LTCG to Production for clarity
2742         https://bugs.webkit.org/show_bug.cgi?id=57465
2743
2744         * JavaScriptCore.vcproj/JavaScriptCore.sln:
2745         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
2746         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreGenerated.vcproj:
2747         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreProduction.vsprops: Copied from Source/JavaScriptCore/JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreReleaseLTCG.vsprops.
2748         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreReleaseLTCG.vsprops: Removed.
2749         * JavaScriptCore.vcproj/JavaScriptCoreSubmit.sln:
2750         * JavaScriptCore.vcproj/WTF/WTF.vcproj:
2751         * JavaScriptCore.vcproj/WTF/WTFProduction.vsprops: Copied from Source/JavaScriptCore/JavaScriptCore.vcproj/WTF/WTFReleaseLTCG.vsprops.
2752         * JavaScriptCore.vcproj/WTF/WTFReleaseLTCG.vsprops: Removed.
2753         * JavaScriptCore.vcproj/jsc/jsc.vcproj:
2754         * JavaScriptCore.vcproj/jsc/jscProduction.vsprops: Copied from Source/JavaScriptCore/JavaScriptCore.vcproj/jsc/jscReleaseLTCG.vsprops.
2755         * JavaScriptCore.vcproj/jsc/jscReleaseLTCG.vsprops: Removed.
2756         * JavaScriptCore.vcproj/testapi/testapi.vcproj:
2757         * JavaScriptCore.vcproj/testapi/testapiProduction.vsprops: Copied from Source/JavaScriptCore/JavaScriptCore.vcproj/testapi/testapiReleaseLTCG.vsprops.
2758         * JavaScriptCore.vcproj/testapi/testapiReleaseLTCG.vsprops: Removed.
2759
2760 2011-03-30  Zoltan Herczeg  <zherczeg@inf.u-szeged.hu>
2761
2762         Reviewed by Maciej Stachowiak.
2763
2764         Add the NEXT_OPCODE() macro to the DFG-JIT parser
2765         https://bugs.webkit.org/show_bug.cgi?id=57322
2766
2767         In JavaScriptCore we use macros to jump to the next opcode
2768         (both in interpreter and JIT). This macro is added to the
2769         DFG-JIT parser as well.
2770
2771         * dfg/DFGByteCodeParser.cpp:
2772         (JSC::DFG::ByteCodeParser::parse):
2773
2774 2011-03-29  Geoffrey Garen  <ggaren@apple.com>
2775
2776         Reviewed by Darin Adler.
2777
2778         ~25% regression on v8-splay in the SunSpider harness
2779         https://bugs.webkit.org/show_bug.cgi?id=56128
2780         
2781         I'm not sure if this is the root cause of the regression Stephanie
2782         measured, but it seems to get us back to previous v8-splay times.
2783         
2784         SunSpider reports no change. v8-splay says 41% faster.
2785
2786         * runtime/Heap.cpp:
2787         (JSC::Heap::reset): Make marking proportional to 1X the size of the heap,
2788         not .5X the size of the heap. When the heap is large, this makes a big
2789         difference. (Our old heap growth policy matched this. You can see by
2790         looking at resizeBlocks in revisions prior to r77699.)
2791
2792 2011-03-29  Steve Falkenburg  <sfalken@apple.com>
2793
2794         Reviewed by Darin Adler.
2795
2796         Use per-configuration vsprops in JavaScriptCore to avoid WebKitVSPropsRedirectionDir removal by MSVC IDE
2797         https://bugs.webkit.org/show_bug.cgi?id=57350
2798         
2799         Visual Studio's IDE was removing instances of $(WebKitVSPropsRedirectionDir) from
2800         InheritedPropertySheet rules in our vcproj files when the vcproj was edited from within
2801         the IDE. To avoid this, add a separate vsprops file for each project configuration that
2802         contains the required inherited property sheets.
2803
2804         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
2805         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreDebug.vsprops: Added.
2806         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreDebugAll.vsprops: Added.
2807         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreDebugCairoCFLite.vsprops: Added.
2808         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreRelease.vsprops: Added.
2809         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreReleaseCairoCFLite.vsprops: Added.
2810         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreReleaseLTCG.vsprops: Added.
2811         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreReleasePGO.vsprops: Added.
2812         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreReleasePGOOptimize.vsprops: Added.
2813         * JavaScriptCore.vcproj/WTF/WTF.vcproj:
2814         * JavaScriptCore.vcproj/WTF/WTFDebug.vsprops: Added.
2815         * JavaScriptCore.vcproj/WTF/WTFDebugAll.vsprops: Added.
2816         * JavaScriptCore.vcproj/WTF/WTFDebugCairoCFLite.vsprops: Added.
2817         * JavaScriptCore.vcproj/WTF/WTFRelease.vsprops: Added.
2818         * JavaScriptCore.vcproj/WTF/WTFReleaseCairoCFLite.vsprops: Added.
2819         * JavaScriptCore.vcproj/WTF/WTFReleaseLTCG.vsprops: Added.
2820         * JavaScriptCore.vcproj/WTF/WTFReleasePGO.vsprops: Added.
2821         * JavaScriptCore.vcproj/jsc/jsc.vcproj:
2822         * JavaScriptCore.vcproj/jsc/jscDebug.vsprops: Added.
2823         * JavaScriptCore.vcproj/jsc/jscDebugAll.vsprops: Added.
2824         * JavaScriptCore.vcproj/jsc/jscDebugCairoCFLite.vsprops: Added.
2825         * JavaScriptCore.vcproj/jsc/jscRelease.vsprops: Added.
2826         * JavaScriptCore.vcproj/jsc/jscReleaseCairoCFLite.vsprops: Added.
2827         * JavaScriptCore.vcproj/jsc/jscReleaseLTCG.vsprops: Added.
2828         * JavaScriptCore.vcproj/jsc/jscReleasePGO.vsprops: Added.
2829         * JavaScriptCore.vcproj/testapi/testapi.vcproj:
2830         * JavaScriptCore.vcproj/testapi/testapiDebug.vsprops: Added.
2831         * JavaScriptCore.vcproj/testapi/testapiDebugAll.vsprops: Added.
2832         * JavaScriptCore.vcproj/testapi/testapiDebugCairoCFLite.vsprops: Added.
2833         * JavaScriptCore.vcproj/testapi/testapiRelease.vsprops: Added.
2834         * JavaScriptCore.vcproj/testapi/testapiReleaseCairoCFLite.vsprops: Added.
2835         * JavaScriptCore.vcproj/testapi/testapiReleaseLTCG.vsprops: Added.
2836
2837 2011-03-29  Oliver Hunt  <oliver@apple.com>
2838
2839         Reviewed by Eric Seidel.
2840
2841         REGRESSION(r82173): Causes assertion and test failures in run-javascriptcore-tests on Windows (Requested by aroben on #webkit).
2842         https://bugs.webkit.org/show_bug.cgi?id=57333
2843
2844         constructDate now takes the global object explicitly as it may be called
2845         by functions other than the constructor itself.
2846
2847         * API/JSObjectRef.cpp:
2848         (JSObjectMakeDate):
2849         * runtime/DateConstructor.cpp:
2850         (JSC::constructDate):
2851         (JSC::constructWithDateConstructor):
2852         * runtime/DateConstructor.h:
2853
2854 2011-03-29  Ben Taylor  <bentaylor.solx86@gmail.com>
2855
2856         Reviewed by Benjamin Poulain.
2857
2858         https://bugs.webkit.org/show_bug.cgi?id=41953
2859
2860         Fix compile error on Solaris 10/Sun Studio 12 CC emanating from MathExtras.h
2861
2862         * wtf/MathExtras.h:
2863
2864 2011-03-29  Ben Taylor  <bentaylor.solx86@gmail.com>
2865
2866         Reviewed by Darin Adler.
2867
2868         https://bugs.webkit.org/show_bug.cgi?id=57231
2869         Add conditional for SUNCC supporting alignment macros
2870
2871         Compile fix for Solaris 10/Sun Studio 12 CC
2872
2873         * wtf/Vector.h:
2874
2875 2011-03-29  Ben Taylor  <bentaylor.solx86@gmail.com>
2876
2877         Reviewed by Darin Adler.
2878
2879         https://bugs.webkit.org/show_bug.cgi?id=57256
2880
2881         Fix crash on misaligned reads on Solaris 10/Sparc
2882
2883         * wtf/text/AtomicString.cpp:
2884         (WTF::equal):
2885
2886 2011-03-28  Oliver Hunt  <oliver@apple.com>
2887
2888         Reviewed by Geoffrey Garen.
2889
2890         instanceof Array test fails when using iframes
2891         https://bugs.webkit.org/show_bug.cgi?id=17250
2892
2893         This is a problem with all built in constructors, the use of
2894         lexicalGlobalObject rather than the constructors own 
2895         global object reference means that a builtin will always use
2896         the prototype from the lexical global object rather than that
2897         of the constructors origin.
2898
2899         * API/JSObjectRef.cpp:
2900         (JSObjectMakeFunction):
2901         (JSObjectMakeRegExp):
2902         * JavaScriptCore.exp:
2903         * runtime/ArrayConstructor.cpp:
2904         (JSC::constructArrayWithSizeQuirk):
2905         * runtime/BooleanConstructor.cpp:
2906         (JSC::constructBoolean):
2907         (JSC::constructBooleanFromImmediateBoolean):
2908         * runtime/BooleanConstructor.h:
2909         * runtime/DateConstructor.cpp:
2910         (JSC::constructDate):
2911         * runtime/DateInstance.cpp:
2912         * runtime/DateInstance.h:
2913         * runtime/ErrorConstructor.cpp:
2914         (JSC::constructWithErrorConstructor):
2915         (JSC::callErrorConstructor):
2916         * runtime/FunctionConstructor.cpp:
2917         (JSC::constructWithFunctionConstructor):
2918         (JSC::callFunctionConstructor):
2919         (JSC::constructFunction):
2920         * runtime/FunctionConstructor.h:
2921         * runtime/JSCell.cpp:
2922         (JSC::JSCell::getOwnPropertySlot):
2923         (JSC::JSCell::put):
2924         (JSC::JSCell::deleteProperty):
2925         (JSC::JSCell::toThisObject):
2926         (JSC::JSCell::toObject):
2927         * runtime/JSCell.h:
2928         (JSC::JSCell::JSValue::toObject):
2929         * runtime/JSNotAnObject.cpp:
2930         (JSC::JSNotAnObject::toObject):
2931         * runtime/JSNotAnObject.h:
2932         * runtime/JSObject.cpp:
2933         (JSC::JSObject::toObject):
2934         * runtime/JSObject.h:
2935         * runtime/JSString.cpp:
2936         (JSC::StringObject::create):
2937         (JSC::JSString::toObject):
2938         (JSC::JSString::toThisObject):
2939         * runtime/JSString.h:
2940         * runtime/JSValue.cpp:
2941         (JSC::JSValue::toObjectSlowCase):
2942         (JSC::JSValue::toThisObjectSlowCase):
2943         (JSC::JSValue::synthesizeObject):
2944         * runtime/JSValue.h:
2945         * runtime/NumberConstructor.cpp:
2946         (JSC::constructWithNumberConstructor):
2947         * runtime/NumberObject.cpp:
2948         (JSC::constructNumber):
2949         * runtime/NumberObject.h:
2950         * runtime/ObjectConstructor.cpp:
2951         (JSC::constructObject):
2952         (JSC::constructWithObjectConstructor):
2953         (JSC::callObjectConstructor):
2954         * runtime/RegExpConstructor.cpp:
2955         (JSC::constructRegExp):
2956         (JSC::constructWithRegExpConstructor):
2957         (JSC::callRegExpConstructor):
2958         * runtime/RegExpConstructor.h:
2959         * runtime/StringConstructor.cpp:
2960         (JSC::constructWithStringConstructor):
2961         * runtime/StringObject.h:
2962
2963 2011-03-28  Geoffrey Garen  <ggaren@apple.com>
2964
2965         Reviewed by Oliver Hunt.
2966
2967         REGRESSION [r78794-r79249] Allocation of memory is slow when number of active objects is large
2968         https://bugs.webkit.org/show_bug.cgi?id=56823
2969         
2970         Partial fix for most of the problem. (TOT still shows a regression, though.)
2971
2972         * runtime/Heap.cpp:
2973         (JSC::Heap::reportExtraMemoryCostSlowCase): Use highWaterMark(), instead of
2974         capacity(), since capacity() is O(n) relative to the size of the heap.
2975
2976         In limited circumstances, capacity() is also worse than highWaterMark()
2977         for measuring extra cost relative to heap size, since capacity() only
2978         measures the *current* capacity of the heap, but the heap will grow if
2979         necessary to attain highWaterMark().
2980
2981 2011-03-28  Oliver Hunt  <oliver@apple.com>
2982
2983         REGRESSION(r82130): It made all tests crash (Requested by Ossy on #webkit).
2984         https://bugs.webkit.org/show_bug.cgi?id=57251
2985
2986         Build fix, had remnant of another patch in r82130
2987
2988         * jit/JITPropertyAccess.cpp:
2989         (JSC::JIT::privateCompileGetByIdChainList):
2990
2991 2011-03-27  Oliver Hunt  <oliver@apple.com>
2992
2993         Reviewed by Maciej Stachowiak.
2994
2995         Add additional immediate types to allow us to distinguish the source of a JIT immediate
2996         https://bugs.webkit.org/show_bug.cgi?id=57190
2997
2998         Allow us to distinguish whether a JIT immediate is a value that we
2999         control (TrustedImm32 and TrustedImmPtr) vs. ones that can be controlled
3000         or influenced by code we are compiling.  Currently we do nothing with this
3001         information -- this change is large and mechanical but would obscure any
3002         logic changes that we would have made.
3003
3004         * assembler/AbstractMacroAssembler.h:
3005         (JSC::AbstractMacroAssembler::TrustedImmPtr::TrustedImmPtr):
3006         (JSC::AbstractMacroAssembler::ImmPtr::ImmPtr):
3007         (JSC::AbstractMacroAssembler::TrustedImm32::TrustedImm32):
3008         (JSC::AbstractMacroAssembler::Imm32::Imm32):
3009         * assembler/MacroAssembler.h:
3010         (JSC::MacroAssembler::pop):
3011         (JSC::MacroAssembler::poke):
3012         (JSC::MacroAssembler::branchPtr):
3013         (JSC::MacroAssembler::branch32):
3014         (JSC::MacroAssembler::addPtr):
3015         (JSC::MacroAssembler::andPtr):
3016         (JSC::MacroAssembler::orPtr):
3017         (JSC::MacroAssembler::subPtr):
3018         (JSC::MacroAssembler::xorPtr):
3019         (JSC::MacroAssembler::setPtr):
3020         (JSC::MacroAssembler::storePtr):
3021         (JSC::MacroAssembler::branchTestPtr):
3022         (JSC::MacroAssembler::branchSubPtr):
3023         (JSC::MacroAssembler::branchTest8):
3024         * assembler/MacroAssemblerARM.h:
3025         (JSC::MacroAssemblerARM::add32):
3026         (JSC::MacroAssemblerARM::and32):
3027         (JSC::MacroAssemblerARM::lshift32):
3028         (JSC::MacroAssemblerARM::mul32):
3029         (JSC::MacroAssemblerARM::or32):
3030         (JSC::MacroAssemblerARM::rshift32):
3031         (JSC::MacroAssemblerARM::urshift32):
3032         (JSC::MacroAssemblerARM::sub32):
3033         (JSC::MacroAssemblerARM::xor32):
3034         (JSC::MacroAssemblerARM::store32):
3035         (JSC::MacroAssemblerARM::push):
3036         (JSC::MacroAssemblerARM::move):
3037         (JSC::MacroAssemblerARM::branch8):
3038         (JSC::MacroAssemblerARM::branch32):
3039         (JSC::MacroAssemblerARM::branch32WithUnalignedHalfWords):
3040         (JSC::MacroAssemblerARM::branch16):
3041         (JSC::MacroAssemblerARM::branchTest8):
3042         (JSC::MacroAssemblerARM::branchTest32):
3043         (JSC::MacroAssemblerARM::branchAdd32):
3044         (JSC::MacroAssemblerARM::branchMul32):
3045         (JSC::MacroAssemblerARM::branchSub32):
3046         (JSC::MacroAssemblerARM::set32Compare32):
3047         (JSC::MacroAssemblerARM::set8Compare32):
3048         (JSC::MacroAssemblerARM::set32Test32):
3049         (JSC::MacroAssemblerARM::set32Test8):
3050         (JSC::MacroAssemblerARM::moveWithPatch):
3051         (JSC::MacroAssemblerARM::branchPtrWithPatch):
3052         (JSC::MacroAssemblerARM::storePtrWithPatch):
3053         * assembler/MacroAssemblerARMv7.h:
3054         (JSC::MacroAssemblerARMv7::add32):
3055         (JSC::MacroAssemblerARMv7::and32):
3056         (JSC::MacroAssemblerARMv7::lshift32):
3057         (JSC::MacroAssemblerARMv7::mul32):
3058         (JSC::MacroAssemblerARMv7::or32):
3059         (JSC::MacroAssemblerARMv7::rshift32):
3060         (JSC::MacroAssemblerARMv7::urshift32):
3061         (JSC::MacroAssemblerARMv7::sub32):
3062         (JSC::MacroAssemblerARMv7::xor32):
3063         (JSC::MacroAssemblerARMv7::load32):
3064         (JSC::MacroAssemblerARMv7::load32WithAddressOffsetPatch):
3065         (JSC::MacroAssemblerARMv7::load16):
3066         (JSC::MacroAssemblerARMv7::store32WithAddressOffsetPatch):
3067         (JSC::MacroAssemblerARMv7::store32):
3068         (JSC::MacroAssemblerARMv7::loadDouble):
3069         (JSC::MacroAssemblerARMv7::storeDouble):
3070         (JSC::MacroAssemblerARMv7::push):
3071         (JSC::MacroAssemblerARMv7::move):
3072         (JSC::MacroAssemblerARMv7::compare32):
3073         (JSC::MacroAssemblerARMv7::test32):
3074         (JSC::MacroAssemblerARMv7::branch32):
3075         (JSC::MacroAssemblerARMv7::branch32WithUnalignedHalfWords):
3076         (JSC::MacroAssemblerARMv7::branch16):
3077         (JSC::MacroAssemblerARMv7::branch8):
3078         (JSC::MacroAssemblerARMv7::branchTest32):
3079         (JSC::MacroAssemblerARMv7::branchTest8):
3080         (JSC::MacroAssemblerARMv7::branchAdd32):
3081         (JSC::MacroAssemblerARMv7::branchMul32):
3082         (JSC::MacroAssemblerARMv7::branchSub32):
3083         (JSC::MacroAssemblerARMv7::nearCall):
3084         (JSC::MacroAssemblerARMv7::call):
3085         (JSC::MacroAssemblerARMv7::set32Compare32):
3086         (JSC::MacroAssemblerARMv7::set8Compare32):
3087         (JSC::MacroAssemblerARMv7::set32Test32):
3088         (JSC::MacroAssemblerARMv7::set32Test8):
3089         (JSC::MacroAssemblerARMv7::moveWithPatch):
3090         (JSC::MacroAssemblerARMv7::branchPtrWithPatch):
3091         (JSC::MacroAssemblerARMv7::storePtrWithPatch):
3092         (JSC::MacroAssemblerARMv7::tailRecursiveCall):
3093         (JSC::MacroAssemblerARMv7::makeJump):
3094         (JSC::MacroAssemblerARMv7::makeBranch):
3095         (JSC::MacroAssemblerARMv7::setupArmAddress):
3096         (JSC::MacroAssemblerARMv7::makeBaseIndexBase):
3097         (JSC::MacroAssemblerARMv7::moveFixedWidthEncoding):
3098         * assembler/MacroAssemblerMIPS.h:
3099         (JSC::MacroAssemblerMIPS::add32):
3100         (JSC::MacroAssemblerMIPS::and32):
3101         (JSC::MacroAssemblerMIPS::lshift32):
3102         (JSC::MacroAssemblerMIPS::mul32):
3103         (JSC::MacroAssemblerMIPS::or32):
3104         (JSC::MacroAssemblerMIPS::rshift32):
3105         (JSC::MacroAssemblerMIPS::urshift32):
3106         (JSC::MacroAssemblerMIPS::sub32):
3107         (JSC::MacroAssemblerMIPS::xor32):
3108         (JSC::MacroAssemblerMIPS::load32):
3109         (JSC::MacroAssemblerMIPS::load32WithAddressOffsetPatch):
3110         (JSC::MacroAssemblerMIPS::store32WithAddressOffsetPatch):
3111         (JSC::MacroAssemblerMIPS::store32):
3112         (JSC::MacroAssemblerMIPS::push):
3113         (JSC::MacroAssemblerMIPS::move):
3114         (JSC::MacroAssemblerMIPS::branch8):
3115         (JSC::MacroAssemblerMIPS::branch32):
3116         (JSC::MacroAssemblerMIPS::branch32WithUnalignedHalfWords):
3117         (JSC::MacroAssemblerMIPS::branch16):
3118         (JSC::MacroAssemblerMIPS::branchTest32):
3119         (JSC::MacroAssemblerMIPS::branchTest8):
3120         (JSC::MacroAssemblerMIPS::branchAdd32):
3121         (JSC::MacroAssemblerMIPS::branchMul32):
3122         (JSC::MacroAssemblerMIPS::branchSub32):
3123         (JSC::MacroAssemblerMIPS::set8Compare32):
3124         (JSC::MacroAssemblerMIPS::set32Compare32):
3125         (JSC::MacroAssemblerMIPS::set32Test8):
3126         (JSC::MacroAssemblerMIPS::set32Test32):
3127         (JSC::MacroAssemblerMIPS::moveWithPatch):
3128         (JSC::MacroAssemblerMIPS::branchPtrWithPatch):
3129         (JSC::MacroAssemblerMIPS::storePtrWithPatch):
3130         (JSC::MacroAssemblerMIPS::tailRecursiveCall):
3131         (JSC::MacroAssemblerMIPS::loadDouble):
3132         (JSC::MacroAssemblerMIPS::storeDouble):
3133         (JSC::MacroAssemblerMIPS::branchTruncateDoubleToInt32):
3134         * assembler/MacroAssemblerX86.h:
3135         (JSC::MacroAssemblerX86::add32):
3136         (JSC::MacroAssemblerX86::addWithCarry32):
3137         (JSC::MacroAssemblerX86::and32):
3138         (JSC::MacroAssemblerX86::or32):
3139         (JSC::MacroAssemblerX86::sub32):
3140         (JSC::MacroAssemblerX86::store32):
3141         (JSC::MacroAssemblerX86::branch32):
3142         (JSC::MacroAssemblerX86::moveWithPatch):
3143         (JSC::MacroAssemblerX86::branchPtrWithPatch):
3144         (JSC::MacroAssemblerX86::storePtrWithPatch):
3145         * assembler/MacroAssemblerX86Common.h:
3146         (JSC::MacroAssemblerX86Common::add32):
3147         (JSC::MacroAssemblerX86Common::and32):
3148         (JSC::MacroAssemblerX86Common::lshift32):
3149         (JSC::MacroAssemblerX86Common::mul32):
3150         (JSC::MacroAssemblerX86Common::or32):
3151         (JSC::MacroAssemblerX86Common::rshift32):
3152         (JSC::MacroAssemblerX86Common::urshift32):
3153         (JSC::MacroAssemblerX86Common::sub32):
3154         (JSC::MacroAssemblerX86Common::xor32):
3155         (JSC::MacroAssemblerX86Common::store32):
3156         (JSC::MacroAssemblerX86Common::branchTruncateDoubleToInt32):
3157         (JSC::MacroAssemblerX86Common::push):
3158         (JSC::MacroAssemblerX86Common::move):
3159         (JSC::MacroAssemblerX86Common::branch8):
3160         (JSC::MacroAssemblerX86Common::branch32):
3161         (JSC::MacroAssemblerX86Common::branch32WithUnalignedHalfWords):
3162         (JSC::MacroAssemblerX86Common::branch16):
3163         (JSC::MacroAssemblerX86Common::branchTest32):
3164         (JSC::MacroAssemblerX86Common::branchTest8):
3165         (JSC::MacroAssemblerX86Common::branchAdd32):
3166         (JSC::MacroAssemblerX86Common::branchMul32):
3167         (JSC::MacroAssemblerX86Common::branchSub32):
3168         (JSC::MacroAssemblerX86Common::set8Compare32):
3169         (JSC::MacroAssemblerX86Common::set32Compare32):
3170         (JSC::MacroAssemblerX86Common::set32Test8):
3171         (JSC::MacroAssemblerX86Common::set32Test32):
3172         * assembler/MacroAssemblerX86_64.h:
3173         (JSC::MacroAssemblerX86_64::add32):
3174         (JSC::MacroAssemblerX86_64::and32):
3175         (JSC::MacroAssemblerX86_64::or32):
3176         (JSC::MacroAssemblerX86_64::sub32):
3177         (JSC::MacroAssemblerX86_64::loadDouble):
3178         (JSC::MacroAssemblerX86_64::addDouble):
3179         (JSC::MacroAssemblerX86_64::convertInt32ToDouble):
3180         (JSC::MacroAssemblerX86_64::store32):
3181         (JSC::MacroAssemblerX86_64::call):
3182         (JSC::MacroAssemblerX86_64::tailRecursiveCall):
3183         (JSC::MacroAssemblerX86_64::makeTailRecursiveCall):
3184         (JSC::MacroAssemblerX86_64::addPtr):
3185         (JSC::MacroAssemblerX86_64::andPtr):
3186         (JSC::MacroAssemblerX86_64::orPtr):
3187         (JSC::MacroAssemblerX86_64::subPtr):
3188         (JSC::MacroAssemblerX86_64::xorPtr):
3189         (JSC::MacroAssemblerX86_64::storePtr):
3190         (JSC::MacroAssemblerX86_64::setPtr):
3191         (JSC::MacroAssemblerX86_64::branchPtr):
3192         (JSC::MacroAssemblerX86_64::branchTestPtr):
3193         (JSC::MacroAssemblerX86_64::branchSubPtr):
3194         (JSC::MacroAssemblerX86_64::moveWithPatch):
3195         (JSC::MacroAssemblerX86_64::branchPtrWithPatch):
3196         (JSC::MacroAssemblerX86_64::storePtrWithPatch):
3197         (JSC::MacroAssemblerX86_64::branchTest8):
3198         * dfg/DFGJITCodeGenerator.h:
3199         (JSC::DFG::JITCodeGenerator::callOperation):
3200         * dfg/DFGJITCompiler.cpp:
3201         (JSC::DFG::JITCompiler::jitAssertIsInt32):
3202         (JSC::DFG::JITCompiler::emitCount):
3203         * dfg/DFGJITCompiler.h:
3204         (JSC::DFG::JITCompiler::emitPutImmediateToCallFrameHeader):
3205         * dfg/DFGNonSpeculativeJIT.cpp:
3206         (JSC::DFG::NonSpeculativeJIT::compile):
3207         * dfg/DFGSpeculativeJIT.cpp:
3208         (JSC::DFG::SpeculativeJIT::fillSpeculateCell):
3209         (JSC::DFG::SpeculativeJIT::compile):
3210         * jit/JIT.cpp:
3211         (JSC::JIT::emitTimeoutCheck):
3212         (JSC::JIT::privateCompile):
3213         * jit/JIT.h:
3214         * jit/JITArithmetic.cpp:
3215         (JSC::JIT::emit_op_urshift):
3216         (JSC::JIT::emitSlow_op_urshift):
3217         (JSC::JIT::emit_op_post_inc):
3218         (JSC::JIT::emit_op_post_dec):
3219         (JSC::JIT::emit_op_pre_inc):
3220         (JSC::JIT::emit_op_pre_dec):
3221         (JSC::JIT::emit_op_mod):
3222         * jit/JITArithmetic32_64.cpp:
3223         (JSC::JIT::emit_op_negate):
3224         (JSC::JIT::emit_op_jnless):
3225         (JSC::JIT::emit_op_jless):
3226         (JSC::JIT::emit_op_jlesseq):
3227         (JSC::JIT::emit_op_lshift):
3228         (JSC::JIT::emitRightShift):
3229         (JSC::JIT::emitRightShiftSlowCase):
3230         (JSC::JIT::emit_op_bitand):
3231         (JSC::JIT::emit_op_bitor):
3232         (JSC::JIT::emit_op_bitxor):
3233         (JSC::JIT::emit_op_bitnot):
3234         (JSC::JIT::emit_op_post_inc):
3235         (JSC::JIT::emit_op_post_dec):
3236         (JSC::JIT::emitSlow_op_post_dec):
3237         (JSC::JIT::emit_op_pre_inc):
3238         (JSC::JIT::emit_op_pre_dec):
3239         (JSC::JIT::emit_op_add):
3240         (JSC::JIT::emitAdd32Constant):
3241         (JSC::JIT::emit_op_sub):
3242         (JSC::JIT::emitSub32Constant):
3243         (JSC::JIT::emitBinaryDoubleOp):
3244         (JSC::JIT::emit_op_mul):
3245         (JSC::JIT::emitSlow_op_mul):
3246         (JSC::JIT::emit_op_div):
3247         (JSC::JIT::emit_op_mod):
3248         * jit/JITCall.cpp:
3249         (JSC::JIT::compileOpCallVarargs):
3250         (JSC::JIT::compileOpCall):
3251         (JSC::JIT::compileOpCallSlowCase):
3252         * jit/JITCall32_64.cpp:
3253         (JSC::JIT::compileOpCallVarargs):
3254         (JSC::JIT::emit_op_ret_object_or_this):
3255         (JSC::JIT::compileOpCall):
3256         (JSC::JIT::compileOpCallSlowCase):
3257         * jit/JITInlineMethods.h:
3258         (JSC::JIT::emitPutCellToCallFrameHeader):
3259         (JSC::JIT::emitPutIntToCallFrameHeader):
3260         (JSC::JIT::emitPutImmediateToCallFrameHeader):
3261         (JSC::JIT::emitLoadCharacterString):
3262         (JSC::JIT::restoreArgumentReferenceForTrampoline):
3263         (JSC::JIT::checkStructure):
3264         (JSC::JIT::setSamplingFlag):
3265         (JSC::JIT::clearSamplingFlag):
3266         (JSC::JIT::emitCount):
3267         (JSC::JIT::sampleInstruction):
3268         (JSC::JIT::sampleCodeBlock):
3269         (JSC::JIT::emitStoreInt32):
3270         (JSC::JIT::emitStoreCell):
3271         (JSC::JIT::emitStoreBool):
3272         (JSC::JIT::emitJumpSlowCaseIfNotJSCell):
3273         (JSC::JIT::emitInitRegister):
3274         (JSC::JIT::emitJumpIfJSCell):
3275         (JSC::JIT::emitJumpIfNotJSCell):
3276         (JSC::JIT::emitJumpIfImmediateInteger):
3277         (JSC::JIT::emitJumpIfNotImmediateInteger):
3278         (JSC::JIT::emitFastArithDeTagImmediate):
3279         (JSC::JIT::emitFastArithDeTagImmediateJumpIfZero):
3280         (JSC::JIT::emitFastArithReTagImmediate):
3281         (JSC::JIT::emitTagAsBoolImmediate):
3282         * jit/JITOpcodes.cpp:
3283         (JSC::JIT::privateCompileCTIMachineTrampolines):
3284         (JSC::JIT::privateCompileCTINativeCall):
3285         (JSC::JIT::emit_op_check_has_instance):
3286         (JSC::JIT::emit_op_instanceof):
3287         (JSC::JIT::emit_op_ret_object_or_this):
3288         (JSC::JIT::emit_op_resolve):
3289         (JSC::JIT::emit_op_to_primitive):
3290         (JSC::JIT::emit_op_resolve_base):
3291         (JSC::JIT::emit_op_ensure_property_exists):
3292         (JSC::JIT::emit_op_resolve_skip):
3293         (JSC::JIT::emit_op_resolve_global):
3294         (JSC::JIT::emitSlow_op_resolve_global):
3295         (JSC::JIT::emit_op_not):
3296         (JSC::JIT::emit_op_jfalse):
3297         (JSC::JIT::emit_op_jeq_null):
3298         (JSC::JIT::emit_op_jneq_null):
3299         (JSC::JIT::emit_op_jneq_ptr):
3300         (JSC::JIT::emit_op_jsr):
3301         (JSC::JIT::emit_op_resolve_with_base):
3302         (JSC::JIT::emit_op_new_func_exp):
3303         (JSC::JIT::emit_op_jtrue):
3304         (JSC::JIT::emit_op_get_pnames):
3305         (JSC::JIT::emit_op_next_pname):
3306         (JSC::JIT::emit_op_to_jsnumber):
3307         (JSC::JIT::emit_op_push_new_scope):
3308         (JSC::JIT::emit_op_catch):
3309         (JSC::JIT::emit_op_eq_null):
3310         (JSC::JIT::emit_op_neq_null):
3311         (JSC::JIT::emit_op_init_lazy_reg):
3312         (JSC::JIT::emit_op_convert_this):
3313         (JSC::JIT::emit_op_convert_this_strict):
3314         (JSC::JIT::emitSlow_op_not):
3315         (JSC::JIT::emitSlow_op_neq):
3316         (JSC::JIT::emit_op_get_arguments_length):
3317         (JSC::JIT::emitSlow_op_get_arguments_length):
3318         (JSC::JIT::emit_op_get_argument_by_val):
3319         (JSC::JIT::emitSlow_op_resolve_global_dynamic):
3320         (JSC::JIT::emit_op_new_regexp):
3321         (JSC::JIT::emit_op_load_varargs):
3322         (JSC::JIT::emitSlow_op_load_varargs):
3323         (JSC::JIT::emit_op_new_func):
3324         * jit/JITOpcodes32_64.cpp:
3325         (JSC::JIT::privateCompileCTIMachineTrampolines):
3326         (JSC::JIT::privateCompileCTINativeCall):
3327         (JSC::JIT::emit_op_loop_if_lesseq):
3328         (JSC::JIT::emit_op_check_has_instance):
3329         (JSC::JIT::emit_op_instanceof):
3330         (JSC::JIT::emit_op_get_scoped_var):
3331         (JSC::JIT::emit_op_put_scoped_var):
3332         (JSC::JIT::emit_op_tear_off_activation):
3333         (JSC::JIT::emit_op_tear_off_arguments):
3334         (JSC::JIT::emit_op_resolve):
3335         (JSC::JIT::emit_op_to_primitive):
3336         (JSC::JIT::emit_op_resolve_base):
3337         (JSC::JIT::emit_op_ensure_property_exists):
3338         (JSC::JIT::emit_op_resolve_skip):
3339         (JSC::JIT::emit_op_resolve_global):
3340         (JSC::JIT::emitSlow_op_resolve_global):
3341         (JSC::JIT::emit_op_not):
3342         (JSC::JIT::emit_op_jfalse):
3343         (JSC::JIT::emit_op_jtrue):
3344         (JSC::JIT::emit_op_jeq_null):
3345         (JSC::JIT::emit_op_jneq_null):
3346         (JSC::JIT::emit_op_jneq_ptr):
3347         (JSC::JIT::emit_op_jsr):
3348         (JSC::JIT::emit_op_eq):
3349         (JSC::JIT::emitSlow_op_eq):
3350         (JSC::JIT::emit_op_neq):
3351         (JSC::JIT::emitSlow_op_neq):
3352         (JSC::JIT::compileOpStrictEq):
3353         (JSC::JIT::emit_op_eq_null):
3354         (JSC::JIT::emit_op_neq_null):
3355         (JSC::JIT::emit_op_resolve_with_base):
3356         (JSC::JIT::emit_op_new_func_exp):
3357         (JSC::JIT::emit_op_get_pnames):
3358         (JSC::JIT::emit_op_next_pname):
3359         (JSC::JIT::emit_op_to_jsnumber):
3360         (JSC::JIT::emit_op_push_new_scope):
3361         (JSC::JIT::emit_op_catch):
3362         (JSC::JIT::emit_op_create_activation):
3363         (JSC::JIT::emit_op_create_arguments):
3364         (JSC::JIT::emit_op_convert_this):
3365         (JSC::JIT::emit_op_convert_this_strict):
3366         (JSC::JIT::emit_op_get_arguments_length):
3367         (JSC::JIT::emitSlow_op_get_arguments_length):
3368         (JSC::JIT::emit_op_get_argument_by_val):
3369         (JSC::JIT::softModulo):
3370         * jit/JITPropertyAccess.cpp:
3371         (JSC::JIT::stringGetByValStubGenerator):
3372         (JSC::JIT::emit_op_get_by_val):
3373         (JSC::JIT::emitSlow_op_get_by_val):
3374         (JSC::JIT::emit_op_get_by_pname):
3375         (JSC::JIT::emit_op_put_by_val):
3376         (JSC::JIT::emit_op_put_by_index):
3377         (JSC::JIT::emit_op_put_getter):
3378         (JSC::JIT::emit_op_put_setter):
3379         (JSC::JIT::emit_op_del_by_id):
3380         (JSC::JIT::emit_op_get_by_id):
3381         (JSC::JIT::emit_op_put_by_id):
3382         (JSC::JIT::emit_op_method_check):
3383         (JSC::JIT::compileGetByIdHotPath):
3384         (JSC::JIT::compileGetByIdSlowCase):
3385         (JSC::JIT::emitSlow_op_put_by_id):
3386         (JSC::JIT::testPrototype):
3387         (JSC::JIT::privateCompilePutByIdTransition):
3388         (JSC::JIT::privateCompilePatchGetArrayLength):
3389         (JSC::JIT::privateCompileGetByIdProto):
3390         (JSC::JIT::privateCompileGetByIdSelfList):
3391         (JSC::JIT::privateCompileGetByIdProtoList):
3392         (JSC::JIT::privateCompileGetByIdChainList):
3393         (JSC::JIT::privateCompileGetByIdChain):
3394         * jit/JITPropertyAccess32_64.cpp:
3395         (JSC::JIT::emit_op_put_getter):
3396         (JSC::JIT::emit_op_put_setter):
3397         (JSC::JIT::emit_op_del_by_id):
3398         (JSC::JIT::emit_op_get_by_id):
3399         (JSC::JIT::emit_op_put_by_id):
3400         (JSC::JIT::emit_op_method_check):
3401         (JSC::JIT::stringGetByValStubGenerator):
3402         (JSC::JIT::emit_op_get_by_val):
3403         (JSC::JIT::emitSlow_op_get_by_val):
3404         (JSC::JIT::emit_op_put_by_val):
3405         (JSC::JIT::compileGetByIdHotPath):
3406         (JSC::JIT::compileGetByIdSlowCase):
3407         (JSC::JIT::emitSlow_op_put_by_id):
3408         (JSC::JIT::testPrototype):
3409         (JSC::JIT::privateCompilePutByIdTransition):
3410         (JSC::JIT::privateCompilePatchGetArrayLength):
3411         (JSC::JIT::privateCompileGetByIdProto):
3412         (JSC::JIT::privateCompileGetByIdSelfList):
3413         (JSC::JIT::privateCompileGetByIdProtoList):
3414         (JSC::JIT::privateCompileGetByIdChainList):
3415         (JSC::JIT::privateCompileGetByIdChain):
3416         (JSC::JIT::emit_op_get_by_pname):
3417         * jit/JITStubCall.h:
3418         (JSC::JITStubCall::addArgument):
3419         * jit/JITStubs.cpp:
3420         (JSC::getPolymorphicAccessStructureListSlot):
3421         (JSC::DEFINE_STUB_FUNCTION):
3422         * jit/JSInterfaceJIT.h:
3423         (JSC::JSInterfaceJIT::emitJumpIfNotJSCell):
3424         (JSC::JSInterfaceJIT::emitLoadInt32):
3425         (JSC::JSInterfaceJIT::emitLoadDouble):
3426         * jit/SpecializedThunkJIT.h:
3427         (JSC::SpecializedThunkJIT::SpecializedThunkJIT):
3428         (JSC::SpecializedThunkJIT::loadJSStringArgument):
3429         (JSC::SpecializedThunkJIT::tagReturnAsInt32):
3430         (JSC::SpecializedThunkJIT::tagReturnAsJSCell):
3431         * jit/ThunkGenerators.cpp:
3432         (JSC::charToString):
3433         (JSC::powThunkGenerator):
3434         * yarr/YarrJIT.cpp:
3435         (JSC::Yarr::YarrGenerator::matchCharacterClass):
3436         (JSC::Yarr::YarrGenerator::storeToFrame):
3437         (JSC::Yarr::YarrGenerator::storeToFrameWithPatch):
3438         (JSC::Yarr::YarrGenerator::ParenthesesTail::generateCode):
3439         (JSC::Yarr::YarrGenerator::generatePatternCharacterSingle):
3440         (JSC::Yarr::YarrGenerator::generatePatternCharacterFixed):
3441         (JSC::Yarr::YarrGenerator::generatePatternCharacterGreedy):
3442         (JSC::Yarr::YarrGenerator::generatePatternCharacterNonGreedy):
3443         (JSC::Yarr::YarrGenerator::generateCharacterClassFixed):
3444         (JSC::Yarr::YarrGenerator::generateCharacterClassGreedy):
3445         (JSC::Yarr::YarrGenerator::generateCharacterClassNonGreedy):
3446         (JSC::Yarr::YarrGenerator::generateParenthesesSingle):
3447         (JSC::Yarr::YarrGenerator::generateDisjunction):
3448
3449 2011-03-28  Andras Becsi  <abecsi@webkit.org>
3450
3451         Reviewed by Csaba Osztrogon√°c.
3452
3453         [Qt] Fix the linking of jsc with MinGW after r81963.
3454
3455         * jsc.pro: add -l and remove the lib suffix.
3456
3457 2011-03-27  Ben Taylor  <bentaylor.solx86@gmail.com>
3458
3459         Reviewed by Alexey Proskuryakov.
3460
3461         https://bugs.webkit.org/show_bug.cgi?id=57170  Fix last elements
3462         in an enum to remove a trailing comma. Sun Studio 12 CC errors out.
3463
3464         Compile fix only, no actual code change.
3465
3466         * wtf/MessageQueue.h:
3467
3468 2011-03-25  Oliver Hunt  <oliver@apple.com>
3469
3470         Reviewed by Darin Adler.
3471
3472         Allow defineOwnProperty to work on DOMObjects
3473         https://bugs.webkit.org/show_bug.cgi?id=57129
3474
3475         Fix a couple of places where we uses getter()/setter() rather
3476         than [gs]etterPresent().
3477
3478         * runtime/JSObject.cpp:
3479         (JSC::JSObject::defineOwnProperty):
3480
3481 2011-03-25  Geoffrey Garen  <ggaren@apple.com>
3482
3483         Reviewed by Oliver Hunt.
3484
3485         Crash when paused at a breakpoint caused by inaccurate Activation records.
3486         https://bugs.webkit.org/show_bug.cgi?id=57120
3487
3488         * runtime/JSActivation.cpp:
3489         (JSC::JSActivation::symbolTableGet):
3490         (JSC::JSActivation::symbolTablePut):
3491         (JSC::JSActivation::getOwnPropertyNames):
3492         (JSC::JSActivation::symbolTablePutWithAttributes):
3493
3494 2011-03-24  Geoffrey Garen  <ggaren@apple.com>
3495
3496         Reviewed by Oliver Hunt.
3497
3498         Crash in debugger beneath MarkStack::drain @ me.com, ibm.com
3499         https://bugs.webkit.org/show_bug.cgi?id=57080
3500         <rdar://problem/8525907>
3501
3502         The crash was caused by changes in the executable after recompilation.
3503
3504         The fix is for the activation to copy the data it needs instead of
3505         relying on the data in the executable.
3506         
3507         SunSpider and v8 report no change.
3508
3509         * runtime/Arguments.h:
3510         (JSC::JSActivation::copyRegisters): Use our own data members instead of
3511         reading data out of the executable.
3512
3513         * runtime/JSActivation.cpp:
3514         (JSC::JSActivation::JSActivation): Initialize our data members.
3515
3516         (JSC::JSActivation::markChildren):
3517         (JSC::JSActivation::symbolTableGet):
3518         (JSC::JSActivation::symbolTablePut):
3519         (JSC::JSActivation::getOwnPropertyNames):
3520         (JSC::JSActivation::symbolTablePutWithAttributes):
3521         (JSC::JSActivation::isDynamicScope):
3522         (JSC::JSActivation::argumentsGetter): Use our own data members instead of
3523         reading data out of the executable.
3524
3525         * runtime/JSActivation.h: Added new data members to track data previously
3526         tracked by the executable. Since I've removed the executable pointer,
3527         on a 64bit system, I've only made activations bigger by an int.
3528
3529 2011-03-25  David Kilzer  <ddkilzer@apple.com>