Interpreter build fix.
[WebKit-https.git] / Source / JavaScriptCore / ChangeLog
1 2011-02-19  Gavin Barraclough  <barraclough@apple.com>
2
3         Interpreter build fix.
4
5         * runtime/ArrayConstructor.cpp:
6         * runtime/BooleanPrototype.cpp:
7         * runtime/DateConstructor.cpp:
8         * runtime/ErrorPrototype.cpp:
9         * runtime/FunctionPrototype.cpp:
10         * runtime/Lookup.cpp:
11         * runtime/NumberPrototype.cpp:
12         * runtime/ObjectConstructor.cpp:
13         * runtime/ObjectPrototype.cpp:
14         * runtime/RegExpPrototype.cpp:
15         * runtime/StringConstructor.cpp:
16
17 2011-02-19  Gavin Barraclough  <barraclough@apple.com>
18
19         Build fix!!
20
21         * JavaScriptCore.exp:
22
23 2011-02-19  Gavin Barraclough  <barraclough@apple.com>
24
25         Windows build fix!!
26
27         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
28
29 2011-02-19  Gavin Barraclough  <barraclough@apple.com>
30
31         Windows build fix!
32
33         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
34
35 2011-02-19  Gavin Barraclough  <barraclough@apple.com>
36
37         Build fix!
38
39         * JavaScriptCore.exp:
40
41 2011-02-18  Gavin Barraclough  <barraclough@apple.com>
42
43         Reviewed by Sam Weinig.
44
45         Bug 54786 - Devirtualize JSCell::classInfo()
46
47         Instead of making a virtual function call, add a pointer to the ClassInfo
48         onto Structure.
49
50         This removes a virtual function call, and paves the way towards removing all
51         the createStructure methods, and StructureFlags/AnonymousSlotCount properties
52         (these should be able to move onto ClassInfo).
53
54         Calls to Structure::create must now pass a pointer to the ClassInfo for the
55         structure. All objects now have a ClassInfo pointer, non-object cell types
56         still do not.
57
58         Changes are most mechanical, involving three steps:
59             * Remove virtual classInfo() methods.
60             * Add &s_info parameter to calls to Structure::create.
61             * Rename ClassInfo static members on classes from 'info' to 's_info',
62               for consistency.
63
64         * API/JSCallbackConstructor.cpp:
65         * API/JSCallbackConstructor.h:
66         * API/JSCallbackFunction.cpp:
67         * API/JSCallbackFunction.h:
68         * API/JSCallbackObject.cpp:
69         * API/JSCallbackObject.h:
70         * API/JSCallbackObjectFunctions.h:
71         * API/JSObjectRef.cpp:
72         * API/JSValueRef.cpp:
73         * API/JSWeakObjectMapRefPrivate.cpp:
74         * JavaScriptCore.exp:
75         * debugger/Debugger.cpp:
76         * debugger/DebuggerActivation.h:
77         * debugger/DebuggerCallFrame.cpp:
78         * interpreter/Interpreter.cpp:
79         * jit/JITCall32_64.cpp:
80         * jit/JITOpcodes.cpp:
81         * jit/JITStubs.cpp:
82         * profiler/Profiler.cpp:
83         * runtime/Arguments.cpp:
84         * runtime/Arguments.h:
85         * runtime/ArrayConstructor.cpp:
86         * runtime/ArrayPrototype.cpp:
87         * runtime/ArrayPrototype.h:
88         * runtime/BooleanObject.cpp:
89         * runtime/BooleanObject.h:
90         * runtime/BooleanPrototype.cpp:
91         * runtime/DateConstructor.cpp:
92         * runtime/DateInstance.cpp:
93         * runtime/DateInstance.h:
94         * runtime/DatePrototype.cpp:
95         * runtime/DatePrototype.h:
96         * runtime/ErrorInstance.cpp:
97         * runtime/ErrorInstance.h:
98         * runtime/ErrorPrototype.cpp:
99         * runtime/FunctionPrototype.cpp:
100         * runtime/FunctionPrototype.h:
101         * runtime/GetterSetter.h:
102         * runtime/GlobalEvalFunction.h:
103         * runtime/InternalFunction.cpp:
104         * runtime/InternalFunction.h:
105         * runtime/JSAPIValueWrapper.h:
106         * runtime/JSActivation.cpp:
107         * runtime/JSActivation.h:
108         * runtime/JSArray.cpp:
109         * runtime/JSArray.h:
110         * runtime/JSByteArray.cpp:
111         * runtime/JSByteArray.h:
112         * runtime/JSCell.cpp:
113         * runtime/JSCell.h:
114         * runtime/JSFunction.cpp:
115         * runtime/JSFunction.h:
116         * runtime/JSGlobalData.cpp:
117         * runtime/JSGlobalObject.cpp:
118         * runtime/JSGlobalObject.h:
119         * runtime/JSNotAnObject.h:
120         * runtime/JSONObject.cpp:
121         * runtime/JSONObject.h:
122         * runtime/JSObject.cpp:
123         * runtime/JSObject.h:
124         * runtime/JSObjectWithGlobalObject.h:
125         * runtime/JSPropertyNameIterator.h:
126         * runtime/JSStaticScopeObject.h:
127         * runtime/JSString.h:
128         * runtime/JSVariableObject.h:
129         * runtime/JSWrapperObject.h:
130         * runtime/JSZombie.cpp:
131         * runtime/JSZombie.h:
132         * runtime/Lookup.cpp:
133         * runtime/MathObject.cpp:
134         * runtime/MathObject.h:
135         * runtime/NativeErrorConstructor.cpp:
136         * runtime/NativeErrorConstructor.h:
137         * runtime/NumberConstructor.cpp:
138         * runtime/NumberConstructor.h:
139         * runtime/NumberObject.cpp:
140         * runtime/NumberObject.h:
141         * runtime/NumberPrototype.cpp:
142         * runtime/ObjectConstructor.cpp:
143         * runtime/ObjectPrototype.cpp:
144         * runtime/RegExpConstructor.cpp:
145         * runtime/RegExpConstructor.h:
146         * runtime/RegExpObject.cpp:
147         * runtime/RegExpObject.h:
148         * runtime/RegExpPrototype.cpp:
149         * runtime/ScopeChain.cpp:
150         * runtime/StringConstructor.cpp:
151         * runtime/StringObject.cpp:
152         * runtime/StringObject.h:
153         * runtime/StringObjectThatMasqueradesAsUndefined.h:
154         * runtime/StringPrototype.cpp:
155         * runtime/StringPrototype.h:
156         * runtime/Structure.cpp:
157         * runtime/Structure.h:
158
159 2011-02-19  David Kilzer  <ddkilzer@apple.com>
160
161         <http://webkit.org/b/54808> Change jsc target to build directly into JavaScriptCore.framework/Resources/jsc
162
163         Reviewed by Dan Bernstein.
164
165         * Configurations/Base.xcconfig: Added
166         JAVASCRIPTCORE_FRAMEWORKS_DIR variable.
167         * Configurations/JavaScriptCore.xcconfig: Used
168         JAVASCRIPTCORE_FRAMEWORKS_DIR to define INSTALL_PATH.
169         * JavaScriptCore.xcodeproj/project.pbxproj: Set the INSTALL_PATH
170         for Production configuration of jsc target.
171         (Copy Into Framework): Removed old build phase.
172         (Fix Framework Reference): Renamed build phase to "Copy Into
173         Framework".  Added "set -x" call to make the script print the
174         commands it is running.  Added code to exit early for Production
175         builds since this was never intended for them.  Added code to
176         copy jsc into the JavaScriptCore.framework/Resources directory.
177
178 2011-02-19  Siddharth Mathur  <siddharth.mathur@nokia.com>
179
180         Reviewed by Laszlo Gombos.
181
182         [Symbian] OSAllocator implementation for Symbian OS. 
183         Manages both data and code region requests. V8 and Sunspider tested
184         OK with interpreter. Not tested with JSC JIT yet as it has unrelated
185         failures. Also no thread safety yet.
186         https://bugs.webkit.org/show_bug.cgi?id=51128
187
188         * JavaScriptCore.pri: removed HAL linkage
189         * wtf/Bitmap.h:
190         (WTF::::findRunOfZeros): find run of zeros in a bitmap. quick n dirty
191         * wtf/OSAllocator.h:
192         (WTF::OSAllocator::decommitAndRelease): decommit explicitly 
193         * wtf/OSAllocatorSymbian.cpp: Impl. of OSAllocator interface 
194         (WTF::allocateCodeChunk): utility for code chunks
195         (WTF::deallocateCodeChunk): utility for code chunks
196         (WTF::dataAllocatorInstance): getter for data allocator instance
197         (WTF::OSAllocator::reserveUncommitted):
198         (WTF::OSAllocator::releaseDecommitted):
199         (WTF::OSAllocator::commit):
200         (WTF::OSAllocator::decommit):
201         (WTF::OSAllocator::reserveAndCommit):
202         (WTF::PageAllocatorSymbian::PageAllocatorSymbian): maps requests 
203         to one underlying Symbian chunk
204         (WTF::PageAllocatorSymbian::~PageAllocatorSymbian):
205         (WTF::PageAllocatorSymbian::reserve):
206         (WTF::PageAllocatorSymbian::release):
207         (WTF::PageAllocatorSymbian::commit):
208         (WTF::PageAllocatorSymbian::decommit):
209         (WTF::PageAllocatorSymbian::contains):
210         * wtf/PageAllocatorSymbian.h: Added.
211         (WTF::SymbianChunk::SymbianChunk): wrapper around RChunk  
212         (WTF::SymbianChunk::~SymbianChunk):
213         (WTF::SymbianChunk::contains):
214         
215 2011-02-19  Yong Li  <yoli@rim.com>
216
217         Reviewed by Eric Seidel.
218
219         https://bugs.webkit.org/show_bug.cgi?id=54687
220         When being built with armcc, "int" bit fields are treated as
221         unsigned integers, which will fail the comparisons like "m_offset == -1".
222         Using "signed" fixes the problem.
223
224         * assembler/ARMAssembler.h:
225         * assembler/ARMv7Assembler.h:
226
227 2011-02-18  Geoffrey Garen  <ggaren@apple.com>
228
229         Reviewed by Sam Weinig.
230
231         Made MarkedSpace block iteration size-class agnostic
232         https://bugs.webkit.org/show_bug.cgi?id=54792
233         
234         SunSpider reports no change.
235
236         * runtime/MarkedSpace.cpp:
237         (JSC::MarkedSpace::clearMarks):
238         (JSC::MarkedSpace::sweep):
239         (JSC::MarkedSpace::objectCount):
240         (JSC::MarkedSpace::size):
241         (JSC::MarkedSpace::capacity):
242         * runtime/MarkedSpace.h:
243         (JSC::MarkedSpace::forEach): Iterate blocks in hashing order instead of
244         size class list order. This is a much simpler convention in a world
245         of many different size classes.
246
247 2011-02-18  Kristian Amlie  <kristian.amlie@nokia.com>
248
249         Reviewed by Andreas Kling.
250
251         Added friend exception to Qt platform, which also compiles Windows.
252
253         QtWebKit fails to compile on Windows XP with msvc-2008
254         https://bugs.webkit.org/show_bug.cgi?id=54746
255
256         * bytecode/CodeBlock.h:
257         * runtime/RegExpObject.h:
258
259 2011-02-18  Geoffrey Garen  <ggaren@apple.com>
260
261         (Rolled back in r79022 with crash fixed.)
262
263         Reviewed by Sam Weinig.
264
265         Use hashing instead of linear search in the conservative pointer test
266         https://bugs.webkit.org/show_bug.cgi?id=54767
267         
268         SunSpider reports no change.
269
270         * runtime/MarkedSpace.cpp:
271         (JSC::MarkedSpace::destroy): No need to explicitly clear the blocks array,
272         since freeBlock removes items for us.
273
274         (JSC::MarkedSpace::freeBlock): Fixed a typo that always removed the last
275         block from the block set instead of the block being freed. Changed to
276         remove a block from our data structures before deallocating it, since
277         this is slightly cleaner.
278
279         * runtime/MarkedSpace.h:
280         (JSC::MarkedSpace::contains): Variable-sized objects will use more,
281         smaller blocks, so it's important for the contains check not to be O(n)
282         in the number of blocks.
283
284 2011-02-18  chris reiss  <christopher.reiss@nokia.com>
285
286         Reviewed by Andreas Kling.
287
288         REGRESSION: Date.parse("Tue Nov 23 20:40:05 2010 GMT") returns NaN
289         https://bugs.webkit.org/show_bug.cgi?id=49989
290
291         updated test fast/js/script-tests/date-parse-test.js
292
293         * wtf/DateMath.cpp:
294         (WTF::parseDateFromNullTerminatedCharacters):
295
296 2011-02-18  Sheriff Bot  <webkit.review.bot@gmail.com>
297
298         Unreviewed, rolling out r79022.
299         http://trac.webkit.org/changeset/79022
300         https://bugs.webkit.org/show_bug.cgi?id=54775
301
302         It broke the whole world (Requested by Ossy on #webkit).
303
304         * runtime/MarkedSpace.h:
305         (JSC::MarkedSpace::contains):
306
307 2011-02-18  Yael Aharon  <yael.aharon@nokia.com>
308
309         Reviewed by Dave Hyatt.
310
311         Add support for dir=auto
312         https://bugs.webkit.org/show_bug.cgi?id=50916
313
314         Change defaultWritingDirection() to return if the writing direction
315         was determined from a letter with strong directionality or not.
316
317         * JavaScriptCore.exp:
318         * JavaScriptCore.order:
319         * wtf/text/StringImpl.cpp:
320         (WTF::StringImpl::defaultWritingDirection):
321         * wtf/text/StringImpl.h:
322         * wtf/text/WTFString.h:
323         (WTF::String::defaultWritingDirection):
324
325 2011-02-18  Geoffrey Garen  <ggaren@apple.com>
326
327         Reviewed by Sam Weinig.
328
329         Use hashing instead of linear search in the conservative pointer test
330         https://bugs.webkit.org/show_bug.cgi?id=54767
331         
332         SunSpider reports no change.
333
334         * runtime/MarkedSpace.h:
335         (JSC::MarkedSpace::contains): Variable-sized objects will use more,
336         smaller blocks, so it's important for the contains check not to be O(n)
337         in the number of blocks.
338
339 2011-02-18  Geoffrey Garen  <ggaren@apple.com>
340
341         Reviewed by Sam Weinig.
342
343         Tightened some usage accounting code in MarkedSpace
344         https://bugs.webkit.org/show_bug.cgi?id=54761
345         
346         SunSpider reports no change.
347
348         * runtime/Heap.cpp:
349         (JSC::Heap::Heap): Initialize the marked space high water mark on
350         construction, instead of relying on some implicit subtleties to make
351         not initializing it work out OK.
352
353         * runtime/Heap.h: Fixed up includes.
354
355         * runtime/MarkedBlock.h: Made firstAtom() static so clients can call it
356         even without having allocated a block.
357
358         * runtime/MarkedSpace.cpp:
359         (JSC::MarkedSpace::MarkedSpace): Don't pre-allocate a block, since this
360         would be prohibitively expensive with multiple size classes.
361
362         (JSC::MarkedSpace::allocateBlock):
363         (JSC::MarkedSpace::freeBlock): Track allocated blocks in a hash set,
364         since linear search in the contains check will be prohibitively
365         expensive once we're using lots of smaller blocks.
366
367         (JSC::MarkedSpace::allocate): Don't assume that we always have a block
368         allocated, since we don't anymore. (See above.)
369
370         (JSC::MarkedSpace::reset):
371         * runtime/MarkedSpace.h: Updated for changes mentioned above.
372
373 2011-02-17  Geoffrey Garen  <ggaren@apple.com>
374
375         Reviewed by Sam Weinig.
376
377         Made object allocation secretly variable-sized (Shhhh!)
378         https://bugs.webkit.org/show_bug.cgi?id=54721
379         
380         SunSpider reports no change.
381         
382         Internally, MarkedBlock now makes variable-sized allocations, even
383         though MarkedSpace doesn't take advantage of this yet.
384
385         * runtime/MarkedBlock.cpp:
386         (JSC::MarkedBlock::MarkedBlock): No need to ASSERT that allocations are
387         fixed-sized.
388
389         * runtime/MarkedBlock.h: Shrunk the atom size so we can allocate things
390         that are not multiples of 64 bytes.
391
392 2011-02-17  Geoffrey Garen  <ggaren@apple.com>
393
394         Reviewed by Sam Weinig.
395
396         Fixed some math errors when when using variable-sized cells
397         https://bugs.webkit.org/show_bug.cgi?id=54717
398         
399         SunSpider reports no change.
400         
401         Computer Science Barbie says, "Math is not so hard afterall!"
402
403         * runtime/JSCell.h:
404         (JSC::JSCell::MarkedBlock::allocate): Round up when calculating the
405         minimum number of atoms required for a cell, since rounding down
406         will get you splinched.
407
408         * runtime/MarkedBlock.cpp:
409         (JSC::MarkedBlock::MarkedBlock):
410         (JSC::MarkedBlock::sweep):
411         * runtime/MarkedBlock.h:
412         (JSC::MarkedBlock::forEach): Changed a bunch of != tests to < tests
413         because m_endAtom is actually a fuzzy end -- iterating from firstAtom()
414         may not hit m_endAtom exactly.
415
416 2011-02-17  Geoffrey Garen  <ggaren@apple.com>
417
418         Reviewed by Sam Weinig.
419
420         A little more abstraction for MarkedSpace::contains
421         https://bugs.webkit.org/show_bug.cgi?id=54715
422
423         * runtime/MarkedBlock.h:
424         (JSC::MarkedBlock::contains): Added a contains function, so MarkedSpace
425         doesn't have to know how MarkedBlock tracks containment internally.
426
427         * runtime/MarkedSpace.h:
428         (JSC::MarkedSpace::contains): Call through to MarkedBlock to figure out
429         if a cell that seems to be in a block is valid.
430
431 2011-02-17  Geoffrey Garen  <ggaren@apple.com>
432
433         Reviewed by Sam Weinig.
434
435         Removed the invariant that the last cell in a block is always marked
436         https://bugs.webkit.org/show_bug.cgi?id=54713
437         
438         SunSpider reports no change.
439         
440         This adds one branch to allocation, but simplifies the mark invariant,
441         especially in a world of variable-sized cells. Now, it really is true
442         that any cell whose mark bit is set is a valid, live cell whose
443         constructor has run and whose destructor has not run.
444
445         * runtime/JSCell.h: 
446         (JSC::JSCell::MarkedBlock::allocate): Changed this do-while into a while
447         since we can no longer rely on a set mark bit to break out of this loop
448         before it reaches the end of the block.
449
450         * runtime/MarkedBlock.cpp:
451         (JSC::MarkedBlock::MarkedBlock):
452         (JSC::MarkedBlock::sweep): 
453         * runtime/MarkedBlock.h:
454         (JSC::MarkedBlock::isEmpty):
455         (JSC::MarkedBlock::clearMarks):
456         (JSC::MarkedBlock::markCount):
457         (JSC::MarkedBlock::forEach): No need to set a special last mark bit.
458
459 2011-02-17  Sheriff Bot  <webkit.review.bot@gmail.com>
460
461         Unreviewed, rolling out r78856 and r78907.
462         http://trac.webkit.org/changeset/78856
463         http://trac.webkit.org/changeset/78907
464         https://bugs.webkit.org/show_bug.cgi?id=54705
465
466         These seem to break tests on 32-bit builds. (Requested by
467         aroben on #webkit).
468
469         * JavaScriptCore.xcodeproj/project.pbxproj:
470         * collector/handles/Global.h:
471         (JSC::Global::internalSet):
472         * collector/handles/Handle.h:
473         (JSC::HandleTypes::getFromSlot):
474         (JSC::HandleTypes::toJSValue):
475         (JSC::HandleTypes::validateUpcast):
476         (JSC::HandleConverter::operator->):
477         (JSC::HandleConverter::operator*):
478         (JSC::Handle::Handle):
479         (JSC::Handle::get):
480         * runtime/JSArray.cpp:
481         (JSC::JSArray::sortNumeric):
482         * runtime/JSObject.h:
483         (JSC::JSObject::inlineGetOwnPropertySlot):
484         * runtime/SlotAccessor.h: Removed.
485         * runtime/WeakGCPtr.h:
486         (JSC::WeakGCPtr::get):
487         (JSC::WeakGCPtr::internalSet):
488         * runtime/WriteBarrier.h:
489         (JSC::DeprecatedPtr::DeprecatedPtr):
490         (JSC::DeprecatedPtr::get):
491         (JSC::DeprecatedPtr::operator*):
492         (JSC::DeprecatedPtr::operator->):
493         (JSC::DeprecatedPtr::slot):
494         (JSC::DeprecatedPtr::operator UnspecifiedBoolType*):
495         (JSC::DeprecatedPtr::operator!):
496         (JSC::WriteBarrierBase::set):
497         (JSC::WriteBarrierBase::get):
498         (JSC::WriteBarrierBase::operator*):
499         (JSC::WriteBarrierBase::operator->):
500         (JSC::WriteBarrierBase::clear):
501         (JSC::WriteBarrierBase::slot):
502         (JSC::WriteBarrierBase::operator UnspecifiedBoolType*):
503         (JSC::WriteBarrierBase::operator!):
504         (JSC::WriteBarrierBase::setWithoutWriteBarrier):
505         (JSC::WriteBarrier::WriteBarrier):
506
507 2011-02-17  Csaba Osztrogon√°c  <ossy@webkit.org>
508
509         Unreviewed.
510
511         [Qt] Buildfix.
512
513         * wtf/RetainPtr.h: Add missing PLATFORM(CF) guard.
514
515 2011-02-17  Geoffrey Garen  <ggaren@apple.com>
516
517         Reviewed by Oliver Hunt.
518
519         Made MarkedBlock variable-sized
520         https://bugs.webkit.org/show_bug.cgi?id=54692
521         
522         SunSpider reports no change.
523         
524         Each MarkedBlock is now composed of a set of fixed-sized atoms, with one
525         mark bit per atom. A given cell may be composed of one or more atoms.
526         
527         * runtime/Heap.cpp:
528         (JSC::Heap::allocate): Made fixed-sizedness a property of MarkedSpace,
529         bubbling it up from MarkedBlock, since MarkedBlock now supports variable-
530         sizedness.
531
532         * runtime/JSCell.h:
533         (JSC::JSCell::MarkedBlock::allocate): Removed use of CELLS_PER_BLOCK and
534         (implicit) one constants -- these quantities are not constant anymore.
535         Updated for switch from cell to atom.
536
537         * runtime/MarkedBlock.cpp:
538         (JSC::MarkedBlock::create):
539         (JSC::MarkedBlock::destroy):
540         (JSC::MarkedBlock::MarkedBlock):
541         (JSC::MarkedBlock::sweep):
542         * runtime/MarkedBlock.h:
543         (JSC::MarkedBlock::firstAtom):
544         (JSC::MarkedBlock::atoms):
545         (JSC::MarkedBlock::isAtomAligned):
546         (JSC::MarkedBlock::blockFor):
547         (JSC::MarkedBlock::isEmpty):
548         (JSC::MarkedBlock::clearMarks):
549         (JSC::MarkedBlock::size):
550         (JSC::MarkedBlock::capacity):
551         (JSC::MarkedBlock::atomNumber):
552         (JSC::MarkedBlock::isMarked):
553         (JSC::MarkedBlock::testAndSetMarked):
554         (JSC::MarkedBlock::setMarked):
555         (JSC::MarkedBlock::forEach): Same as above. Also removed use of CELL_SIZE
556         and BLOCK_SIZE, and switched away from calling arbitrary pointers cells.
557
558         * runtime/MarkedSpace.cpp:
559         (JSC::MarkedSpace::MarkedSpace):
560         (JSC::MarkedSpace::allocateBlock):
561         (JSC::MarkedSpace::allocate):
562         (JSC::MarkedSpace::reset):
563         * runtime/MarkedSpace.h:
564         (JSC::CollectorHeap::CollectorHeap):
565         (JSC::MarkedSpace::contains): Updated for renames. Made fixed-sizedness
566         a property of MarkedSpace.
567
568 2011-02-17  Oliver Hunt  <oliver@apple.com>
569
570         Attempt to fix windows build
571
572         * runtime/WriteBarrier.h:
573
574 2011-02-17  Oliver Hunt  <oliver@apple.com>
575
576         Reviewed by Geoffrey Garen.
577
578         Refactor WriteBarrier and DeprecatedPtr to have less code duplication.
579         https://bugs.webkit.org/show_bug.cgi?id=54608
580
581         Make use of the tricks used for Handle, et al to avoid duplicating all
582         of the logic for DeprecatedPtr and WriteBarrier simply to support known
583         vs. unknown types.
584
585         * JavaScriptCore.xcodeproj/project.pbxproj:
586         * collector/handles/Global.h:
587         (JSC::Global::internalSet):
588         * collector/handles/Handle.h:
589         (JSC::Handle::Handle):
590         (JSC::Handle::get):
591         * runtime/JSArray.cpp:
592         (JSC::JSArray::sortNumeric):
593         * runtime/JSObject.h:
594         (JSC::JSObject::inlineGetOwnPropertySlot):
595         * runtime/SlotAccessor.h: Added.
596         (JSC::SlotTypes::getFromBaseType):
597         (JSC::SlotTypes::convertToBaseType):
598         (JSC::SlotTypes::getFromSlot):
599         (JSC::SlotTypes::toJSValue):
600         (JSC::SlotTypes::validateUpcast):
601         (JSC::SlotAccessor::operator->):
602         (JSC::SlotAccessor::operator*):
603         * runtime/WeakGCPtr.h:
604         (JSC::WeakGCPtr::get):
605         (JSC::WeakGCPtr::internalSet):
606         * runtime/WriteBarrier.h:
607         (JSC::DeprecatedPtr::DeprecatedPtr):
608         (JSC::DeprecatedPtr::get):
609         (JSC::DeprecatedPtr::slot):
610         (JSC::DeprecatedPtr::operator=):
611         (JSC::WriteBarrierTranslator::convertToStorage):
612         (JSC::WriteBarrierTranslator::convertFromStorage):
613         (JSC::WriteBarrierBase::set):
614         (JSC::WriteBarrierBase::get):
615         (JSC::WriteBarrierBase::clear):
616         (JSC::WriteBarrierBase::slot):
617         (JSC::WriteBarrierBase::operator UnspecifiedBoolType*):
618         (JSC::WriteBarrierBase::operator!):
619         (JSC::WriteBarrierBase::setWithoutWriteBarrier):
620         (JSC::WriteBarrier::WriteBarrier):
621
622 2011-02-17  Kevin Ollivier  <kevino@theolliviers.com>
623
624         [wx] Revert incorrect blind fix and restore previous working code.
625
626         * wtf/wx/StringWx.cpp:
627         (WTF::String::String):
628
629 2011-02-16  Geoffrey Garen  <ggaren@apple.com>
630
631         Reviewed by Maciej Stachowiak.
632
633         Intermittent crashes beneath MarkStack::drain
634         https://bugs.webkit.org/show_bug.cgi?id=54614
635         <rdar://problem/8971070>
636         
637         The crashes were caused by a GC happening after the global object's
638         property table had grown (due to compilation), but before the properties
639         had been fully initialized by program execution.
640
641         * bytecompiler/BytecodeGenerator.cpp:
642         (JSC::BytecodeGenerator::BytecodeGenerator): Explicitly resize the global
643         object's register storage immediately, without waiting for program
644         execution to do it for us. This ensures that the global object's count
645         of global variables is consistent with the size of its global variable
646         storage at all times, and it ensures that all global variables are
647         properly initialized from the get-go.
648
649         * runtime/JSGlobalObject.cpp:
650         (JSC::JSGlobalObject::resizeRegisters):
651         * runtime/JSGlobalObject.h: Added a helper function for growing the
652         global object's register storage, and initializing new registers.
653
654 == Rolled over to ChangeLog-2011-02-16 ==