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