[wx] Build fix, do not build WebCore as a convenience library as this leads to
[WebKit.git] / JavaScriptCore / ChangeLog
1 2010-08-16  Kevin Ollivier  <kevino@theolliviers.com>
2
3         [wx] Build fix, do not build WebCore as a convenience library as this leads to
4         errors in the Win build w/export symbols and causes problems with DOM bindings
5         debugging in gdb. 
6
7         * wscript:
8
9 2010-08-16  Leandro Pereira  <leandro@profusion.mobi>
10
11         [EFL] Build fix after r65366.
12
13         * CMakeLists.txt: Use if (VAR) instead of if (${VAR}) to check if
14         they're empty.
15         * jsc/CMakeLists.txt: Ditto.
16         * wtf/CMakeLists.txt: Ditto.
17
18 2010-08-15  Kevin Ollivier  <kevino@theolliviers.com>
19
20         [wx] Build fix, don't build intermediate source in DerivedSources dir.
21
22         * wscript:
23
24 2010-08-14  Patrick Gansterer  <paroga@paroga.com>
25
26         Reviewed by Kenneth Rohde Christiansen.
27
28         [CMake] Add preprocessor detection for generator scripts
29         https://bugs.webkit.org/show_bug.cgi?id=43984
30
31         * CMakeLists.txt:
32
33 2010-08-14  Patrick Gansterer  <paroga@paroga.com>
34
35         Reviewed by Kenneth Rohde Christiansen.
36
37         [CMake] Set target properties only if available
38         https://bugs.webkit.org/show_bug.cgi?id=43978
39
40         * CMakeLists.txt:
41         * jsc/CMakeLists.txt:
42         * wtf/CMakeLists.txt:
43
44 2010-08-13  Kevin Ollivier  <kevino@theolliviers.com>
45
46         [wx] Build fix, add CString to the list of forwards.
47
48         * wtf/Forward.h:
49
50 2010-08-13  Gavin Barraclough  <barraclough@apple.com>
51
52         Windows build fix
53
54         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
55
56 2010-08-13  Gavin Barraclough  <barraclough@apple.com>
57
58         Windows build fix
59
60         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
61
62 2010-08-13  Gavin Barraclough  <barraclough@apple.com>
63
64         Windows build fix
65
66         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
67
68 2010-08-13  Gavin Barraclough  <barraclough@apple.com>
69
70         Rubber stamped by Sam Weinig.
71         Switch String::/UString::ascii() to return a CString.
72
73         * JavaScriptCore.exp:
74         * JavaScriptCore.xcodeproj/project.pbxproj:
75         * bytecode/CodeBlock.cpp:
76         (JSC::CodeBlock::dump):
77         * bytecode/SamplingTool.cpp:
78         (JSC::SamplingTool::dump):
79         * interpreter/CallFrame.cpp:
80         (JSC::CallFrame::dumpCaller):
81         * jsc.cpp:
82         (runWithScripts):
83         (runInteractive):
84         * runtime/Identifier.h:
85         (JSC::Identifier::ascii):
86         * runtime/ScopeChain.cpp:
87         (JSC::ScopeChainNode::print):
88         * runtime/UString.cpp:
89         (JSC::UString::ascii):
90         (JSC::UString::latin1):
91         * runtime/UString.h:
92         * wtf/text/StringImpl.cpp:
93         (WTF::StringImpl::asciiOLD):
94         * wtf/text/StringImpl.h:
95         * wtf/text/WTFString.cpp:
96         (WTF::String::ascii):
97         (WTF::String::latin1):
98         * wtf/text/WTFString.h:
99
100 2010-08-13  Gabor Loki  <loki@webkit.org>
101
102         Reviewed by Gavin Barraclough.
103
104         Avoid increasing required alignment of target type warning on ARM
105         https://bugs.webkit.org/show_bug.cgi?id=38045
106
107         The reinterpret_cast<Type1*>([pointer to Type2]) expressions - where
108         sizeof(Type1) > sizeof(Type2) - cause the following warning on ARM:
109         increases required alignment of target type warnings.
110         Casting the type of [pointer to Type2] object to void* bypasses the
111         warning.
112
113         * assembler/ARMAssembler.cpp:
114         (JSC::ARMAssembler::executableCopy):
115         * assembler/AssemblerBuffer.h:
116         (JSC::AssemblerBuffer::putShortUnchecked):
117         (JSC::AssemblerBuffer::putIntUnchecked):
118         (JSC::AssemblerBuffer::putInt64Unchecked):
119         * interpreter/RegisterFile.h:
120         (JSC::RegisterFile::RegisterFile):
121         (JSC::RegisterFile::grow):
122         * jit/JITStubs.cpp:
123         * pcre/pcre_compile.cpp:
124         (jsRegExpCompile):
125         * runtime/JSArray.cpp:
126         (JSC::JSArray::putSlowCase):
127         (JSC::JSArray::increaseVectorLength):
128         (JSC::JSArray::increaseVectorPrefixLength):
129         (JSC::JSArray::shiftCount):
130         (JSC::JSArray::unshiftCount):
131         * wtf/FastMalloc.cpp:
132         (WTF::PageHeapAllocator::New):
133         (WTF::TCMalloc_Central_FreeList::Populate):
134         * wtf/MD5.cpp:
135         (WTF::reverseBytes):
136         (WTF::MD5::addBytes):
137         (WTF::MD5::checksum):
138         * wtf/StdLibExtras.h:
139         (isPointerTypeAlignmentOkay):
140         (reinterpret_cast_ptr):
141         * wtf/Vector.h:
142         (WTF::VectorBuffer::inlineBuffer):
143         * wtf/qt/StringQt.cpp:
144         (WTF::String::String):
145
146 2010-08-13  Gavin Barraclough  <barraclough@apple.com>
147
148         Reviewed by Sam Weinig
149
150         Unify UString::UTF8String() & String::utf8() methods,
151         remove UString::cost() & make atArrayIndex a free function.
152
153         * JavaScriptCore.exp:
154         * bytecode/CodeBlock.cpp:
155         (JSC::constantName):
156         (JSC::idName):
157         (JSC::CodeBlock::registerName):
158         (JSC::regexpName):
159         (JSC::printGlobalResolveInfo):
160         (JSC::printStructureStubInfo):
161         (JSC::CodeBlock::printStructure):
162         (JSC::CodeBlock::printStructures):
163         * jsc.cpp:
164         (functionPrint):
165         (functionDebug):
166         (runInteractive):
167         (fillBufferWithContentsOfFile):
168         * pcre/pcre_exec.cpp:
169         (Histogram::~Histogram):
170         * profiler/CallIdentifier.h:
171         (JSC::CallIdentifier::c_str):
172         * profiler/Profile.cpp:
173         (JSC::Profile::debugPrintDataSampleStyle):
174         * profiler/ProfileGenerator.cpp:
175         (JSC::ProfileGenerator::willExecute):
176         (JSC::ProfileGenerator::didExecute):
177         * profiler/ProfileNode.cpp:
178         (JSC::ProfileNode::debugPrintData):
179         (JSC::ProfileNode::debugPrintDataSampleStyle):
180         * runtime/Arguments.cpp:
181         (JSC::Arguments::getOwnPropertySlot):
182         (JSC::Arguments::getOwnPropertyDescriptor):
183         (JSC::Arguments::put):
184         (JSC::Arguments::deleteProperty):
185         * runtime/DateConversion.cpp:
186         (JSC::parseDate):
187         * runtime/Identifier.h:
188         (JSC::Identifier::toStrictUInt32):
189         * runtime/JSArray.cpp:
190         (JSC::JSArray::getOwnPropertySlot):
191         (JSC::JSArray::getOwnPropertyDescriptor):
192         (JSC::JSArray::put):
193         (JSC::JSArray::deleteProperty):
194         * runtime/JSArray.h:
195         (JSC::toArrayIndex):
196         * runtime/JSGlobalObjectFunctions.cpp:
197         (JSC::encode):
198         (JSC::parseInt):
199         (JSC::globalFuncJSCPrint):
200         * runtime/JSString.h:
201         (JSC::RopeBuilder::JSString):
202         * runtime/UString.cpp:
203         (JSC::UString::toDouble):
204         (JSC::putUTF8Triple):
205         (JSC::UString::utf8):
206         * runtime/UString.h:
207         (JSC::UString::~UString):
208         (JSC::UString::isNull):
209         (JSC::UString::isEmpty):
210         (JSC::UString::impl):
211         * wtf/text/WTFString.cpp:
212         (WTF::String::utf8):
213         * wtf/text/WTFString.h:
214         (WTF::String::~String):
215         (WTF::String::swap):
216         (WTF::String::isNull):
217         (WTF::String::isEmpty):
218         (WTF::String::impl):
219         (WTF::String::length):
220         (WTF::String::String):
221         (WTF::String::isHashTableDeletedValue):
222
223 2010-08-12  Zoltan Herczeg  <zherczeg@webkit.org>
224
225         Reviewed by Gavin Barraclough.
226
227         Refactoring the fpu code generator for the ARM port
228         https://bugs.webkit.org/show_bug.cgi?id=43842
229
230         Support up to 32 double precision registers, and the
231         recent VFP instruction formats. This patch is mainly
232         a style change which keeps the current functionality.
233
234         * assembler/ARMAssembler.h:
235         (JSC::ARMRegisters::):
236         (JSC::ARMAssembler::):
237         (JSC::ARMAssembler::emitInst):
238         (JSC::ARMAssembler::emitDoublePrecisionInst):
239         (JSC::ARMAssembler::emitSinglePrecisionInst):
240         (JSC::ARMAssembler::vadd_f64_r):
241         (JSC::ARMAssembler::vdiv_f64_r):
242         (JSC::ARMAssembler::vsub_f64_r):
243         (JSC::ARMAssembler::vmul_f64_r):
244         (JSC::ARMAssembler::vcmp_f64_r):
245         (JSC::ARMAssembler::vsqrt_f64_r):
246         (JSC::ARMAssembler::vmov_vfp_r):
247         (JSC::ARMAssembler::vmov_arm_r):
248         (JSC::ARMAssembler::vcvt_f64_s32_r):
249         (JSC::ARMAssembler::vcvt_s32_f64_r):
250         (JSC::ARMAssembler::vmrs_apsr):
251         * assembler/MacroAssemblerARM.h:
252         (JSC::MacroAssemblerARM::addDouble):
253         (JSC::MacroAssemblerARM::divDouble):
254         (JSC::MacroAssemblerARM::subDouble):
255         (JSC::MacroAssemblerARM::mulDouble):
256         (JSC::MacroAssemblerARM::sqrtDouble):
257         (JSC::MacroAssemblerARM::convertInt32ToDouble):
258         (JSC::MacroAssemblerARM::branchDouble):
259         (JSC::MacroAssemblerARM::branchConvertDoubleToInt32):
260
261 2010-08-12  Sheriff Bot  <webkit.review.bot@gmail.com>
262
263         Unreviewed, rolling out r65295.
264         http://trac.webkit.org/changeset/65295
265         https://bugs.webkit.org/show_bug.cgi?id=43950
266
267         It broke 4 sputnik tests (Requested by Ossy on #webkit).
268
269         * JavaScriptCore.exp:
270         * bytecode/CodeBlock.cpp:
271         (JSC::constantName):
272         (JSC::idName):
273         (JSC::CodeBlock::registerName):
274         (JSC::regexpName):
275         (JSC::printGlobalResolveInfo):
276         (JSC::printStructureStubInfo):
277         (JSC::CodeBlock::printStructure):
278         (JSC::CodeBlock::printStructures):
279         * jsc.cpp:
280         (functionPrint):
281         (functionDebug):
282         (runInteractive):
283         (fillBufferWithContentsOfFile):
284         * pcre/pcre_exec.cpp:
285         (Histogram::~Histogram):
286         * profiler/CallIdentifier.h:
287         (JSC::CallIdentifier::c_str):
288         * profiler/Profile.cpp:
289         (JSC::Profile::debugPrintDataSampleStyle):
290         * profiler/ProfileGenerator.cpp:
291         (JSC::ProfileGenerator::willExecute):
292         (JSC::ProfileGenerator::didExecute):
293         * profiler/ProfileNode.cpp:
294         (JSC::ProfileNode::debugPrintData):
295         (JSC::ProfileNode::debugPrintDataSampleStyle):
296         * runtime/Arguments.cpp:
297         (JSC::Arguments::getOwnPropertySlot):
298         (JSC::Arguments::getOwnPropertyDescriptor):
299         (JSC::Arguments::put):
300         (JSC::Arguments::deleteProperty):
301         * runtime/DateConversion.cpp:
302         (JSC::parseDate):
303         * runtime/Identifier.h:
304         (JSC::Identifier::Identifier):
305         (JSC::Identifier::toArrayIndex):
306         * runtime/JSArray.cpp:
307         (JSC::JSArray::getOwnPropertySlot):
308         (JSC::JSArray::getOwnPropertyDescriptor):
309         (JSC::JSArray::put):
310         (JSC::JSArray::deleteProperty):
311         * runtime/JSArray.h:
312         * runtime/JSGlobalObjectFunctions.cpp:
313         (JSC::encode):
314         (JSC::parseInt):
315         (JSC::globalFuncJSCPrint):
316         * runtime/JSString.h:
317         (JSC::RopeBuilder::JSString):
318         * runtime/UString.cpp:
319         (JSC::UString::toDouble):
320         (JSC::UString::UTF8String):
321         * runtime/UString.h:
322         (JSC::UString::isNull):
323         (JSC::UString::isEmpty):
324         (JSC::UString::impl):
325         (JSC::UString::cost):
326         (JSC::UString::~UString):
327         (JSC::UString::toArrayIndex):
328         * wtf/text/WTFString.cpp:
329         (WTF::String::utf8):
330         * wtf/text/WTFString.h:
331         (WTF::String::String):
332         (WTF::String::isHashTableDeletedValue):
333         (WTF::String::length):
334         (WTF::String::operator[]):
335         (WTF::String::isNull):
336         (WTF::String::isEmpty):
337         (WTF::String::impl):
338
339 2010-08-12  Gavin Barraclough  <barraclough@apple.com>
340
341         Windows build fix.
342
343         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
344
345 2010-08-12  Gavin Barraclough  <barraclough@apple.com>
346
347         Reviewed by Sam Weinig
348
349         Unify UString::UTF8String() & String::utf8() methods,
350         remove UString::cost() & make atArrayIndex a free function.
351
352         * JavaScriptCore.exp:
353         * bytecode/CodeBlock.cpp:
354         (JSC::constantName):
355         (JSC::idName):
356         (JSC::CodeBlock::registerName):
357         (JSC::regexpName):
358         (JSC::printGlobalResolveInfo):
359         (JSC::printStructureStubInfo):
360         (JSC::CodeBlock::printStructure):
361         (JSC::CodeBlock::printStructures):
362         * jsc.cpp:
363         (functionPrint):
364         (functionDebug):
365         (runInteractive):
366         (fillBufferWithContentsOfFile):
367         * pcre/pcre_exec.cpp:
368         (Histogram::~Histogram):
369         * profiler/CallIdentifier.h:
370         (JSC::CallIdentifier::c_str):
371         * profiler/Profile.cpp:
372         (JSC::Profile::debugPrintDataSampleStyle):
373         * profiler/ProfileGenerator.cpp:
374         (JSC::ProfileGenerator::willExecute):
375         (JSC::ProfileGenerator::didExecute):
376         * profiler/ProfileNode.cpp:
377         (JSC::ProfileNode::debugPrintData):
378         (JSC::ProfileNode::debugPrintDataSampleStyle):
379         * runtime/Arguments.cpp:
380         (JSC::Arguments::getOwnPropertySlot):
381         (JSC::Arguments::getOwnPropertyDescriptor):
382         (JSC::Arguments::put):
383         (JSC::Arguments::deleteProperty):
384         * runtime/DateConversion.cpp:
385         (JSC::parseDate):
386         * runtime/Identifier.h:
387         (JSC::Identifier::toStrictUInt32):
388         * runtime/JSArray.cpp:
389         (JSC::JSArray::getOwnPropertySlot):
390         (JSC::JSArray::getOwnPropertyDescriptor):
391         (JSC::JSArray::put):
392         (JSC::JSArray::deleteProperty):
393         * runtime/JSArray.h:
394         (JSC::toArrayIndex):
395         * runtime/JSGlobalObjectFunctions.cpp:
396         (JSC::encode):
397         (JSC::parseInt):
398         (JSC::globalFuncJSCPrint):
399         * runtime/JSString.h:
400         (JSC::RopeBuilder::JSString):
401         * runtime/UString.cpp:
402         (JSC::UString::toDouble):
403         (JSC::putUTF8Triple):
404         (JSC::UString::utf8):
405         * runtime/UString.h:
406         (JSC::UString::~UString):
407         (JSC::UString::isNull):
408         (JSC::UString::isEmpty):
409         (JSC::UString::impl):
410         * wtf/text/WTFString.cpp:
411         (WTF::String::utf8):
412         * wtf/text/WTFString.h:
413         (WTF::String::~String):
414         (WTF::String::swap):
415         (WTF::String::isNull):
416         (WTF::String::isEmpty):
417         (WTF::String::impl):
418         (WTF::String::length):
419         (WTF::String::String):
420         (WTF::String::isHashTableDeletedValue):
421
422 2010-08-12  Gavin Barraclough  <barraclough@apple.com>
423
424         Eeerk! - revert accidentally committed changes in UString!
425
426         * JavaScriptCore.exp:
427         * runtime/UString.cpp:
428         (JSC::UString::UString):
429         * runtime/UString.h:
430
431 2010-08-12  Gavin Barraclough  <barraclough@apple.com>
432
433         Reviewed by Sam Weinig
434
435         Change UString constructors to match those in WTF::String.
436         This changes behaviour of UString((char*)0) to create null
437         strings, akin to UString() rather than UString::empty().
438         (This matches String).  Remove unused constructors from
439         UString, and add null-terminated UTF-16 constructor, to
440         match String.  Move String's constructor into the .cpp to
441         match UString.
442
443         * JavaScriptCore.exp:
444         * debugger/DebuggerCallFrame.cpp:
445         (JSC::DebuggerCallFrame::calculatedFunctionName):
446         * runtime/RegExpKey.h:
447         (JSC::RegExpKey::RegExpKey):
448         * runtime/SmallStrings.cpp:
449         (JSC::SmallStrings::createSingleCharacterString):
450         * runtime/UString.cpp:
451         (JSC::UString::UString):
452         * runtime/UString.h:
453         (JSC::UString::UString):
454         (JSC::UString::swap):
455         (JSC::UString::adopt):
456         (JSC::UString::operator[]):
457         * wtf/text/WTFString.h:
458         (WTF::String::String):
459         (WTF::String::adopt):
460         (WTF::String::operator[]):
461
462 2010-08-12  David Levin  <levin@chromium.org>
463
464         Reviewed by NOBODY (build fix).
465
466         * runtime/UString.h: Removed unneccessary #include.
467
468 2010-08-12  Gavin Barraclough  <barraclough@apple.com>
469
470         Reviewed by Sam Weinig
471
472         Revert changes to ALWAYS_INLINEness of a couple of functions in UString.
473         This appears to have degraded performance.
474
475         * runtime/UString.cpp:
476         (JSC::UString::ascii):
477         * runtime/UString.h:
478         (JSC::UString::length):
479         (JSC::UString::isEmpty):
480         (JSC::UString::~UString):
481
482 2010-08-12  Csaba Osztrogonác  <ossy@webkit.org>
483
484         Reviewed by Antonio Gomes.
485
486         [Qt] Fix warnings: unknown conversion type character 'l' in format
487         https://bugs.webkit.org/show_bug.cgi?id=43359
488
489         Qt port doesn't call any printf in String::format(...), consequently
490         using __attribute__((format(printf,m,n))) is incorrect and causes
491         false positive warnings on Windows if you build with MinGW.
492
493         Qt port calls QString::vsprintf(...) , which is platform
494         independent, and handles %lli, %llu and %llx on all platforms.
495         (http://trac.webkit.org/changeset/35712)
496
497         * wtf/text/WTFString.h:
498
499 2010-08-12  Gabor Loki  <loki@webkit.org>
500
501         Reviewed by Geoffrey Garen.
502
503         Fix the array subscript is above array bounds warning in ByteArray on ARM.
504         https://bugs.webkit.org/show_bug.cgi?id=43358
505
506         The warning is very similar to this one: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37861
507
508         * wtf/ByteArray.cpp:
509         (WTF::ByteArray::create):
510
511 2010-08-12  Gustavo Noronha Silva  <gustavo.noronha@collabora.co.uk>
512
513         Reviewed by Martin Robinson.
514
515         [GTK] Use GSettings to save/restore Web Inspector settings
516         https://bugs.webkit.org/show_bug.cgi?id=43512
517
518         * wtf/gobject/GRefPtr.cpp: Added support for GVariant, used by our
519         GSettings support.
520         (WTF::refGPtr):
521         (WTF::derefGPtr):
522         * wtf/gobject/GRefPtr.h:
523
524 2010-08-12  Gabor Loki  <loki@webkit.org>
525
526         Reviewed by Simon Hausmann.
527
528         The scratch register should be saved in YARR with ARM JIT
529         https://bugs.webkit.org/show_bug.cgi?id=43910
530
531         Reported by Jocelyn Turcotte.
532
533         * yarr/RegexJIT.cpp:
534         (JSC::Yarr::RegexGenerator::generateEnter):
535         (JSC::Yarr::RegexGenerator::generateReturn):
536
537 2010-08-11  Gavin Barraclough  <barraclough@apple.com>
538
539         Windows build fix.
540
541         * JavaScriptCore.xcodeproj/project.pbxproj:
542         * wtf/Forward.h:
543
544 2010-08-11  Leo Yang  <leo.yang@torchmobile.com.cn>
545
546         Reviewed by Geoffrey Garen.
547
548         Date("") should be an invalid date. For IE, Firefox and Chrome, Date("") is invalid date,
549         which means isNaN(new Date("")) should return true.
550         https://bugs.webkit.org/show_bug.cgi?id=43793
551         Tests: fast/js/date-constructor.html
552
553         * runtime/JSGlobalData.cpp:
554         (JSC::JSGlobalData::resetDateCache):
555
556 2010-08-11  Gavin Barraclough  <barraclough@apple.com>
557
558         Windows & !JIT build fix.
559
560         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
561         * JavaScriptCore.xcodeproj/project.pbxproj:
562         * runtime/RegExp.cpp:
563         (JSC::RegExp::match):
564
565 2010-08-11  Gavin Barraclough  <barraclough@apple.com>
566
567         Rubber stamp by sam weinig
568
569         Touch a file to stop the bot rolling a bit change out!
570
571         * runtime/UString.cpp:
572         (JSC::UString::ascii):
573
574 2010-08-11  Kevin Ollivier  <kevino@theolliviers.com>
575
576         [wx] Build fix for wx and WebDOM bindings, add CString classes to the list of forwards.
577
578         * wtf/Forward.h:
579
580 2010-08-11  Gavin Barraclough  <barraclough@apple.com>
581
582         Rubber stamps by Darin Adler & Sam Weinig.
583
584         Bug 43867 - Some UString cleanup
585
586         Change JSC::UString data(), size(), and from(), to characters(), length(), and number() to match WTF::String.
587         Move string concatenation methods to a new header to simplify down UString.h.  Remove is8Bit().
588
589         * API/JSClassRef.cpp:
590         (OpaqueJSClass::~OpaqueJSClass):
591         (OpaqueJSClass::className):
592         * API/OpaqueJSString.cpp:
593         (OpaqueJSString::create):
594         * JavaScriptCore.exp:
595         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
596         * JavaScriptCore.xcodeproj/project.pbxproj:
597         * bytecode/CodeBlock.cpp:
598         (JSC::constantName):
599         (JSC::idName):
600         (JSC::CodeBlock::registerName):
601         (JSC::regexpName):
602         * bytecode/EvalCodeCache.h:
603         (JSC::EvalCodeCache::get):
604         * bytecompiler/NodesCodegen.cpp:
605         (JSC::ResolveNode::emitBytecode):
606         (JSC::FunctionCallResolveNode::emitBytecode):
607         (JSC::ReadModifyResolveNode::emitBytecode):
608         (JSC::processClauseList):
609         * parser/ASTBuilder.h:
610         (JSC::ASTBuilder::createRegex):
611         * parser/ParserArena.h:
612         (JSC::IdentifierArena::makeNumericIdentifier):
613         * parser/SourceProvider.h:
614         (JSC::UStringSourceProvider::data):
615         (JSC::UStringSourceProvider::length):
616         * profiler/Profiler.cpp:
617         * runtime/Arguments.cpp:
618         (JSC::Arguments::getOwnPropertySlot):
619         (JSC::Arguments::getOwnPropertyNames):
620         (JSC::Arguments::put):
621         (JSC::Arguments::deleteProperty):
622         * runtime/ArrayPrototype.cpp:
623         (JSC::arrayProtoFuncToString):
624         * runtime/DatePrototype.cpp:
625         (JSC::formatLocaleDate):
626         * runtime/ExceptionHelpers.cpp:
627         * runtime/FunctionConstructor.cpp:
628         * runtime/FunctionPrototype.cpp:
629         (JSC::insertSemicolonIfNeeded):
630         * runtime/Identifier.h:
631         (JSC::Identifier::characters):
632         (JSC::Identifier::length):
633         * runtime/JSGlobalObjectFunctions.cpp:
634         (JSC::decode):
635         (JSC::parseInt):
636         (JSC::parseFloat):
637         (JSC::globalFuncEscape):
638         (JSC::globalFuncUnescape):
639         * runtime/JSNumberCell.cpp:
640         (JSC::JSNumberCell::toString):
641         * runtime/JSONObject.cpp:
642         (JSC::gap):
643         (JSC::Stringifier::appendQuotedString):
644         (JSC::Stringifier::appendStringifiedValue):
645         (JSC::Stringifier::indent):
646         (JSC::Stringifier::unindent):
647         (JSC::Walker::walk):
648         * runtime/JSString.cpp:
649         (JSC::JSString::replaceCharacter):
650         (JSC::JSString::getIndexSlowCase):
651         * runtime/JSString.h:
652         (JSC::RopeBuilder::JSString):
653         (JSC::RopeBuilder::appendValueInConstructAndIncrementLength):
654         (JSC::RopeBuilder::fiberCount):
655         (JSC::jsSingleCharacterSubstring):
656         (JSC::jsNontrivialString):
657         (JSC::JSString::getIndex):
658         (JSC::jsString):
659         (JSC::jsStringWithFinalizer):
660         (JSC::jsSubstring):
661         (JSC::jsOwnedString):
662         * runtime/JSStringBuilder.h:
663         (JSC::JSStringBuilder::append):
664         * runtime/LiteralParser.h:
665         (JSC::LiteralParser::Lexer::Lexer):
666         * runtime/NumberPrototype.cpp:
667         (JSC::numberProtoFuncToString):
668         (JSC::numberProtoFuncToFixed):
669         (JSC::numberProtoFuncToExponential):
670         (JSC::numberProtoFuncToPrecision):
671         * runtime/NumericStrings.h:
672         (JSC::NumericStrings::add):
673         (JSC::NumericStrings::lookupSmallString):
674         * runtime/Operations.h:
675         (JSC::jsString):
676         * runtime/RegExp.cpp:
677         (JSC::RegExp::match):
678         * runtime/RegExpCache.cpp:
679         (JSC::RegExpCache::lookupOrCreate):
680         (JSC::RegExpCache::create):
681         * runtime/RegExpConstructor.cpp:
682         (JSC::RegExpConstructor::getRightContext):
683         * runtime/RegExpObject.cpp:
684         (JSC::RegExpObject::match):
685         * runtime/RegExpPrototype.cpp:
686         (JSC::regExpProtoFuncToString):
687         * runtime/StringBuilder.h:
688         (JSC::StringBuilder::append):
689         * runtime/StringConcatenate.h: Copied from JavaScriptCore/runtime/UString.h.
690         (JSC::):
691         (JSC::sumWithOverflow):
692         (JSC::tryMakeString):
693         (JSC::makeString):
694         * runtime/StringObject.cpp:
695         (JSC::StringObject::getOwnPropertyNames):
696         * runtime/StringPrototype.cpp:
697         (JSC::substituteBackreferencesSlow):
698         (JSC::localeCompare):
699         (JSC::jsSpliceSubstringsWithSeparators):
700         (JSC::stringProtoFuncReplace):
701         (JSC::stringProtoFuncCharAt):
702         (JSC::stringProtoFuncCharCodeAt):
703         (JSC::stringProtoFuncIndexOf):
704         (JSC::stringProtoFuncLastIndexOf):
705         (JSC::stringProtoFuncSlice):
706         (JSC::stringProtoFuncSplit):
707         (JSC::stringProtoFuncSubstr):
708         (JSC::stringProtoFuncSubstring):
709         (JSC::stringProtoFuncToLowerCase):
710         (JSC::stringProtoFuncToUpperCase):
711         (JSC::stringProtoFuncFontsize):
712         (JSC::stringProtoFuncLink):
713         (JSC::trimString):
714         * runtime/UString.cpp:
715         (JSC::UString::number):
716         (JSC::UString::ascii):
717         (JSC::UString::operator[]):
718         (JSC::UString::toDouble):
719         (JSC::UString::find):
720         (JSC::UString::rfind):
721         (JSC::UString::substr):
722         (JSC::operator==):
723         (JSC::operator<):
724         (JSC::operator>):
725         (JSC::UString::UTF8String):
726         * runtime/UString.h:
727         (JSC::UString::UString):
728         (JSC::UString::adopt):
729         (JSC::UString::length):
730         (JSC::UString::characters):
731         (JSC::UString::isNull):
732         (JSC::UString::isEmpty):
733         (JSC::UString::impl):
734         (JSC::UString::cost):
735         (JSC::operator==):
736         (JSC::operator!=):
737         (JSC::codePointCompare):
738         (JSC::UString::toArrayIndex):
739         (JSC::IdentifierRepHash::hash):
740         (WTF::):
741         * yarr/RegexJIT.cpp:
742         (JSC::Yarr::jitCompileRegex):
743         * yarr/RegexParser.h:
744         (JSC::Yarr::Parser::Parser):
745
746 2010-08-11  Gabor Loki  <loki@webkit.org>
747
748         Qt build fix (ARMv7).
749
750         Fix invalid conversion from int to Condition.
751         Add ARMv7Assembler.cpp to JavaScriptCore.pro.
752
753         * JavaScriptCore.pro:
754         * assembler/ARMv7Assembler.h:
755         (JSC::ARMv7Assembler::):
756         (JSC::ARMv7Assembler::JmpSrc::JmpSrc):
757
758 2010-08-11  Nathan Lawrence  <nlawrence@apple.com>
759
760         Reviewed by Geoffrey Garen.
761
762         At collection time, we frequently want to mark a cell, while checking
763         whether it was originally checked.  Previously, this was a get
764         operation follwed by a set operation.  Fusing the two saves
765         computation and gives a 0.5% sunspider speedup.
766
767         * runtime/Collector.h:
768         (JSC::CollectorBitmap::getset):
769         (JSC::Heap::checkMarkCell):
770         * runtime/JSArray.h:
771         (JSC::MarkStack::drain):
772         * runtime/JSCell.h:
773         (JSC::MarkStack::append):
774
775 2010-08-11  Steve Falkenburg  <sfalken@apple.com>
776
777         Reviewed by Adam Roben.
778
779         Improve vsprops copying for Windows build
780         https://bugs.webkit.org/show_bug.cgi?id=41982
781
782         When we detect a new SDK, always copy a new set of vsprops files.
783         Previously, if someone updated their SDK after updating their sources,
784         they could end up with out-of-date vsprops files.
785
786         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreGenerated.make:
787
788 2010-08-10  Darin Adler  <darin@apple.com>
789
790         Reviewed by Sam Weinig.
791
792         Add leakRef and clear to all RefPtr variants
793         https://bugs.webkit.org/show_bug.cgi?id=42389
794
795         * API/JSRetainPtr.h: Changed all uses of "template <...>" to instead do
796         "template<...>". We should probably put this in the style guide and do it
797         consitently. Fixed other minor style issues. Defined many of the inlined
798         functions outside the class definition, to avoid style checker warnings
799         about multiple statements on a single line and for slightly better clarity
800         of the class definition itself. Renamed releaseRef to leakRef. Added a
801         releaseRef that calls leakRef so we don't have to rename all callers oat
802         once. Added a clear function.
803
804         * wtf/PassRefPtr.h: Changed all uses of releaseRef to leakRef.
805
806         * wtf/RefPtr.h: Changed all uses of "template <...>" to instead do
807         "template<...>". Tidied up declarations and comments a bit.
808          Changed all uses of releaseRef to leakRef.
809
810         * wtf/RetainPtr.h: Changed all uses of "template <...>" to instead do
811         "template<...>". Defined many of the inlined functions outside the class
812         definition, to avoid style checker warnings about multiple statements on
813         a single line and for slightly better clarity of the class definition itself.
814         Renamed releaseRef to leakRef. Added a releaseRef that calls leakRef so we
815         don't have to rename all callers at once. Added a clear function.
816
817 2010-08-10  Dumitru Daniliuc  <dumi@chromium.org>
818
819         Unreviewed, reverting an unintentional change to a file submitted in r65108.
820
821         * bytecode/CodeBlock.h:
822         (JSC::binaryChop):
823
824 2010-08-10  Gavin Barraclough  <barraclough@apple.com>
825
826         Rubber stamped by Sam Weinig
827
828         Bug 43817 - Remove UString::Rep
829         UString::Rep has for a long time been replaced by UStringImpl (Rep
830         remaining as a typedef).  UStringImpl has since been removed too
831         (unified with StringImpl). Remove Rep, rename rep() to impl() and
832         m_rep to m_impl.  Also add impl() method to Identifier, and rename
833         its UString member from _ustring to m_string.
834
835         * API/JSCallbackObject.h:
836         (JSC::JSCallbackObjectData::JSPrivatePropertyMap::getPrivateProperty):
837         (JSC::JSCallbackObjectData::JSPrivatePropertyMap::setPrivateProperty):
838         (JSC::JSCallbackObjectData::JSPrivatePropertyMap::deletePrivateProperty):
839         * API/JSCallbackObjectFunctions.h:
840         (JSC::::getOwnPropertySlot):
841         (JSC::::put):
842         (JSC::::deleteProperty):
843         (JSC::::getOwnPropertyNames):
844         (JSC::::staticValueGetter):
845         (JSC::::staticFunctionGetter):
846         * API/JSClassRef.cpp:
847         (tryCreateStringFromUTF8):
848         (OpaqueJSClass::OpaqueJSClass):
849         (OpaqueJSClass::~OpaqueJSClass):
850         (OpaqueJSClassContextData::OpaqueJSClassContextData):
851         * API/JSClassRef.h:
852         * API/OpaqueJSString.cpp:
853         (OpaqueJSString::ustring):
854         * bytecode/EvalCodeCache.h:
855         (JSC::EvalCodeCache::get):
856         * bytecode/JumpTable.h:
857         (JSC::StringJumpTable::offsetForValue):
858         (JSC::StringJumpTable::ctiForValue):
859         * bytecompiler/BytecodeGenerator.cpp:
860         (JSC::BytecodeGenerator::addVar):
861         (JSC::BytecodeGenerator::addGlobalVar):
862         (JSC::BytecodeGenerator::BytecodeGenerator):
863         (JSC::BytecodeGenerator::addParameter):
864         (JSC::BytecodeGenerator::registerFor):
865         (JSC::BytecodeGenerator::willResolveToArguments):
866         (JSC::BytecodeGenerator::uncheckedRegisterForArguments):
867         (JSC::BytecodeGenerator::constRegisterFor):
868         (JSC::BytecodeGenerator::isLocal):
869         (JSC::BytecodeGenerator::isLocalConstant):
870         (JSC::BytecodeGenerator::addConstant):
871         (JSC::BytecodeGenerator::emitLoad):
872         (JSC::BytecodeGenerator::findScopedProperty):
873         (JSC::keyForCharacterSwitch):
874         (JSC::prepareJumpTableForStringSwitch):
875         * bytecompiler/BytecodeGenerator.h:
876         * bytecompiler/NodesCodegen.cpp:
877         (JSC::processClauseList):
878         * interpreter/Interpreter.cpp:
879         (JSC::Interpreter::privateExecute):
880         * jit/JITStubs.cpp:
881         (JSC::DEFINE_STUB_FUNCTION):
882         * parser/JSParser.cpp:
883         (JSC::JSParser::parseStrictObjectLiteral):
884         * pcre/pcre_exec.cpp:
885         (Histogram::add):
886         * profiler/CallIdentifier.h:
887         (JSC::CallIdentifier::Hash::hash):
888         * profiler/Profile.cpp:
889         * profiler/ProfileNode.cpp:
890         (JSC::ProfileNode::debugPrintDataSampleStyle):
891         * profiler/ProfileNode.h:
892         * runtime/ArrayPrototype.cpp:
893         (JSC::arrayProtoFuncToString):
894         * runtime/Identifier.cpp:
895         (JSC::Identifier::equal):
896         (JSC::IdentifierCStringTranslator::hash):
897         (JSC::IdentifierCStringTranslator::equal):
898         (JSC::IdentifierCStringTranslator::translate):
899         (JSC::Identifier::add):
900         (JSC::IdentifierUCharBufferTranslator::hash):
901         (JSC::IdentifierUCharBufferTranslator::equal):
902         (JSC::IdentifierUCharBufferTranslator::translate):
903         (JSC::Identifier::addSlowCase):
904         * runtime/Identifier.h:
905         (JSC::Identifier::Identifier):
906         (JSC::Identifier::ustring):
907         (JSC::Identifier::impl):
908         (JSC::Identifier::data):
909         (JSC::Identifier::size):
910         (JSC::Identifier::ascii):
911         (JSC::Identifier::isNull):
912         (JSC::Identifier::isEmpty):
913         (JSC::Identifier::toUInt32):
914         (JSC::Identifier::toStrictUInt32):
915         (JSC::Identifier::toArrayIndex):
916         (JSC::Identifier::toDouble):
917         (JSC::Identifier::equal):
918         (JSC::Identifier::add):
919         * runtime/InitializeThreading.cpp:
920         (JSC::initializeThreadingOnce):
921         * runtime/InternalFunction.cpp:
922         (JSC::InternalFunction::displayName):
923         * runtime/JSFunction.cpp:
924         (JSC::JSFunction::displayName):
925         * runtime/JSGlobalObject.h:
926         (JSC::JSGlobalObject::addStaticGlobals):
927         * runtime/JSStaticScopeObject.h:
928         (JSC::JSStaticScopeObject::JSStaticScopeObject):
929         * runtime/JSString.h:
930         (JSC::):
931         (JSC::RopeBuilder::appendStringInConstruct):
932         (JSC::RopeBuilder::appendValueInConstructAndIncrementLength):
933         (JSC::jsSingleCharacterSubstring):
934         (JSC::jsSubstring):
935         * runtime/JSVariableObject.cpp:
936         (JSC::JSVariableObject::deleteProperty):
937         (JSC::JSVariableObject::symbolTableGet):
938         * runtime/JSVariableObject.h:
939         (JSC::JSVariableObject::symbolTableGet):
940         (JSC::JSVariableObject::symbolTablePut):
941         (JSC::JSVariableObject::symbolTablePutWithAttributes):
942         * runtime/Lookup.cpp:
943         (JSC::HashTable::createTable):
944         (JSC::HashTable::deleteTable):
945         * runtime/Lookup.h:
946         (JSC::HashEntry::initialize):
947         (JSC::HashEntry::setKey):
948         (JSC::HashEntry::key):
949         (JSC::HashTable::entry):
950         * runtime/PropertyMapHashTable.h:
951         (JSC::PropertyMapEntry::PropertyMapEntry):
952         * runtime/PropertyNameArray.cpp:
953         (JSC::PropertyNameArray::add):
954         * runtime/PropertyNameArray.h:
955         (JSC::PropertyNameArray::add):
956         (JSC::PropertyNameArray::addKnownUnique):
957         * runtime/RegExp.cpp:
958         (JSC::RegExp::match):
959         * runtime/RegExpCache.cpp:
960         (JSC::RegExpCache::create):
961         * runtime/RegExpKey.h:
962         (JSC::RegExpKey::RegExpKey):
963         * runtime/SmallStrings.cpp:
964         (JSC::SmallStringsStorage::rep):
965         (JSC::SmallStrings::singleCharacterStringRep):
966         * runtime/SmallStrings.h:
967         * runtime/StringPrototype.cpp:
968         (JSC::jsSpliceSubstringsWithSeparators):
969         (JSC::stringProtoFuncMatch):
970         (JSC::stringProtoFuncSearch):
971         * runtime/Structure.cpp:
972         (JSC::Structure::~Structure):
973         (JSC::Structure::despecifyDictionaryFunction):
974         (JSC::Structure::addPropertyTransitionToExistingStructure):
975         (JSC::Structure::addPropertyTransition):
976         (JSC::Structure::copyPropertyTable):
977         (JSC::Structure::get):
978         (JSC::Structure::despecifyFunction):
979         (JSC::Structure::put):
980         (JSC::Structure::hasTransition):
981         (JSC::Structure::remove):
982         (JSC::Structure::checkConsistency):
983         * runtime/Structure.h:
984         (JSC::Structure::get):
985         (JSC::Structure::hasTransition):
986         * runtime/StructureTransitionTable.h:
987         * runtime/SymbolTable.h:
988         * runtime/UString.cpp:
989         (JSC::UString::UString):
990         (JSC::UString::toStrictUInt32):
991         (JSC::UString::substr):
992         * runtime/UString.h:
993         (JSC::UString::UString):
994         (JSC::UString::adopt):
995         (JSC::UString::data):
996         (JSC::UString::size):
997         (JSC::UString::isNull):
998         (JSC::UString::isEmpty):
999         (JSC::UString::impl):
1000         (JSC::UString::cost):
1001         (JSC::operator==):
1002         (JSC::codePointCompare):
1003         (JSC::IdentifierRepHash::hash):
1004         (WTF::):
1005
1006 2010-08-10  Gavin Barraclough  <barraclough@apple.com>
1007
1008         Bug 43816 - Remove UStringImpl
1009         The class was actually removed a long time ago, replaced by StringImpl.
1010         UStringImpl is just a typedef onto StringImpl.  Remove this.
1011
1012         * API/JSClassRef.cpp:
1013         (OpaqueJSClass::OpaqueJSClass):
1014         * JavaScriptCore.xcodeproj/project.pbxproj:
1015         * runtime/JSString.cpp:
1016         (JSC::JSString::resolveRope):
1017         (JSC::JSString::replaceCharacter):
1018         * runtime/JSString.h:
1019         (JSC::RopeBuilder::RopeIterator::operator*):
1020         (JSC::RopeBuilder::JSString):
1021         (JSC::RopeBuilder::appendStringInConstruct):
1022         (JSC::RopeBuilder::appendValueInConstructAndIncrementLength):
1023         (JSC::jsSingleCharacterSubstring):
1024         (JSC::jsSubstring):
1025         * runtime/JSStringBuilder.h:
1026         (JSC::jsMakeNontrivialString):
1027         * runtime/RopeImpl.cpp:
1028         (JSC::RopeImpl::derefFibersNonRecursive):
1029         * runtime/RopeImpl.h:
1030         (JSC::RopeImpl::deref):
1031         * runtime/SmallStrings.cpp:
1032         (JSC::SmallStringsStorage::SmallStringsStorage):
1033         * runtime/StringConstructor.cpp:
1034         (JSC::stringFromCharCodeSlowCase):
1035         * runtime/StringPrototype.cpp:
1036         (JSC::jsSpliceSubstringsWithSeparators):
1037         (JSC::stringProtoFuncFontsize):
1038         (JSC::stringProtoFuncLink):
1039         * runtime/UString.cpp:
1040         (JSC::initializeUString):
1041         * runtime/UString.h:
1042         (JSC::UString::adopt):
1043         (JSC::tryMakeString):
1044         (JSC::makeString):
1045         * runtime/UStringImpl.h: Removed.
1046
1047 2010-08-10  Patrick Gansterer  <paroga@paroga.com>
1048
1049         Reviewed by Eric Seidel.
1050
1051         Make FastMalloc more portable.
1052         https://bugs.webkit.org/show_bug.cgi?id=41790
1053
1054         * wtf/FastMalloc.cpp:
1055         (WTF::TCMalloc_Central_FreeList::Populate):
1056         (WTF::TCMalloc_ThreadCache::CreateCacheIfNecessary):
1057
1058 2010-08-10  Patrick Gansterer  <paroga@paroga.com>
1059
1060         Reviewed by David Levin.
1061
1062         [WINCE] Buildfix for CE 6.0
1063         https://bugs.webkit.org/show_bug.cgi?id=43027
1064
1065         CE 6.0 doesn't define localtime in the system include files.
1066
1067         * wtf/Platform.h: Include ce_time.h on all OS(WINCE).
1068
1069 2010-08-10  Gavin Barraclough  <barraclough@apple.com>
1070
1071         Rubber stamped by Sam Weinig.
1072
1073         Bug 43786 - Move AtomicStringHash from WebCore to WTF
1074         Also remove deprecated string headers from WebCore/platform/text.
1075
1076         * GNUmakefile.am:
1077         * JavaScriptCore.gypi:
1078         * JavaScriptCore.vcproj/WTF/WTF.vcproj:
1079         * JavaScriptCore.xcodeproj/project.pbxproj:
1080         * wtf/text/AtomicString.h:
1081         * wtf/text/AtomicStringHash.h: Copied from WebCore/platform/text/AtomicStringHash.h.
1082
1083 2010-08-09  Oliver Hunt  <oliver@apple.com>
1084
1085         Fix Qt/ARM again, this time including the other changed file.
1086
1087         * jit/JIT.h:
1088
1089 2010-08-09  Oliver Hunt  <oliver@apple.com>
1090
1091         Fix Qt/ARM
1092
1093         C++ overload resolution I stab at thee
1094
1095         * jit/JITInlineMethods.h:
1096         (JSC::JIT::beginUninterruptedSequence):
1097         (JSC::JIT::endUninterruptedSequence):
1098
1099 2010-08-09  Oliver Hunt  <oliver@apple.com>
1100
1101         Reviewed by Gavin Barraclough.
1102
1103         Allow an assembler/macroassembler to compact branches to more concise forms when linking
1104         https://bugs.webkit.org/show_bug.cgi?id=43745
1105
1106         This patch makes it possible for an assembler to convert jumps into a different
1107         (presumably more efficient) form at link time.  Currently implemented in the
1108         ARMv7 JIT as that already had logic to delay linking of jumps until the end of
1109         compilation already.  The ARMv7 JIT chooses between either a 4 byte short jump
1110         or a full 32-bit offset (and rewrites ITTT instructions as appropriate), so does
1111         not yet produce the most compact form possible.  The general design of the linker
1112         should make it relatively simple to introduce new branch types with little effort,
1113         as the linker has no knowledge of the exact form of any of the branches.
1114
1115         * JavaScriptCore.xcodeproj/project.pbxproj:
1116         * assembler/ARMv7Assembler.cpp: Added.
1117         (JSC::):
1118           Record jump sizes
1119
1120         * assembler/ARMv7Assembler.h:
1121         (JSC::ARMv7Assembler::LinkRecord::LinkRecord):
1122         (JSC::ARMv7Assembler::LinkRecord::from):
1123         (JSC::ARMv7Assembler::LinkRecord::setFrom):
1124         (JSC::ARMv7Assembler::LinkRecord::to):
1125         (JSC::ARMv7Assembler::LinkRecord::type):
1126         (JSC::ARMv7Assembler::LinkRecord::linkType):
1127         (JSC::ARMv7Assembler::LinkRecord::setLinkType):
1128           Encapsulate LinkRecord fields so we can compress the values somewhat
1129
1130         (JSC::ARMv7Assembler::JmpSrc::JmpSrc):
1131           Need to record the jump type now
1132
1133         (JSC::ARMv7Assembler::b):
1134         (JSC::ARMv7Assembler::blx):
1135         (JSC::ARMv7Assembler::bx):
1136           Need to pass the jump types
1137
1138         (JSC::ARMv7Assembler::executableOffsetFor):
1139         (JSC::ARMv7Assembler::jumpSizeDelta):
1140         (JSC::ARMv7Assembler::linkRecordSourceComparator):
1141         (JSC::ARMv7Assembler::computeJumpType):
1142         (JSC::ARMv7Assembler::convertJumpTo):
1143         (JSC::ARMv7Assembler::recordLinkOffsets):
1144         (JSC::ARMv7Assembler::jumpsToLink):
1145         (JSC::ARMv7Assembler::link):
1146         (JSC::ARMv7Assembler::unlinkedCode):
1147           Helper functions for the linker
1148
1149         (JSC::ARMv7Assembler::linkJump):
1150         (JSC::ARMv7Assembler::canBeShortJump):
1151         (JSC::ARMv7Assembler::linkLongJump):
1152         (JSC::ARMv7Assembler::linkShortJump):
1153         (JSC::ARMv7Assembler::linkJumpAbsolute):
1154            Moving code around for the various jump linking functions
1155
1156         * assembler/AbstractMacroAssembler.h:
1157         (JSC::AbstractMacroAssembler::beginUninterruptedSequence):
1158         (JSC::AbstractMacroAssembler::endUninterruptedSequence):
1159           We have to track uninterrupted sequences in any assembler that compacts
1160           branches as that's not something we're allowed to do in such sequences.
1161           AbstractMacroAssembler has a nop version of these functions as it makes the
1162           code elsewhere nicer.
1163
1164         * assembler/LinkBuffer.h:
1165         (JSC::LinkBuffer::LinkBuffer):
1166         (JSC::LinkBuffer::link):
1167         (JSC::LinkBuffer::patch):
1168         (JSC::LinkBuffer::locationOf):
1169         (JSC::LinkBuffer::locationOfNearCall):
1170         (JSC::LinkBuffer::returnAddressOffset):
1171         (JSC::LinkBuffer::trampolineAt):
1172           Updated these functions to adjust for any changed offsets in the linked code
1173
1174         (JSC::LinkBuffer::applyOffset):
1175           A helper function to deal with the now potentially moved labels
1176
1177         (JSC::LinkBuffer::linkCode):
1178           The new and mighty linker function
1179
1180         * assembler/MacroAssemblerARMv7.h:
1181         (JSC::MacroAssemblerARMv7::MacroAssemblerARMv7):
1182         (JSC::MacroAssemblerARMv7::beginUninterruptedSequence):
1183         (JSC::MacroAssemblerARMv7::endUninterruptedSequence):
1184         (JSC::MacroAssemblerARMv7::jumpsToLink):
1185         (JSC::MacroAssemblerARMv7::unlinkedCode):
1186         (JSC::MacroAssemblerARMv7::computeJumpType):
1187         (JSC::MacroAssemblerARMv7::convertJumpTo):
1188         (JSC::MacroAssemblerARMv7::recordLinkOffsets):
1189         (JSC::MacroAssemblerARMv7::jumpSizeDelta):
1190         (JSC::MacroAssemblerARMv7::link):
1191         (JSC::MacroAssemblerARMv7::jump):
1192         (JSC::MacroAssemblerARMv7::branchMul32):
1193         (JSC::MacroAssemblerARMv7::breakpoint):
1194         (JSC::MacroAssemblerARMv7::nearCall):
1195         (JSC::MacroAssemblerARMv7::call):
1196         (JSC::MacroAssemblerARMv7::ret):
1197         (JSC::MacroAssemblerARMv7::tailRecursiveCall):
1198         (JSC::MacroAssemblerARMv7::executableOffsetFor):
1199         (JSC::MacroAssemblerARMv7::inUninterruptedSequence):
1200         (JSC::MacroAssemblerARMv7::makeJump):
1201         (JSC::MacroAssemblerARMv7::makeBranch):
1202            All branches need to pass on their type now
1203
1204         * jit/ExecutableAllocator.h:
1205         (JSC::ExecutablePool::returnLastBytes):
1206            We can't know ahead of time how much space will be necessary to
1207            hold the linked code if we're compacting branches, this new
1208            function allows us to return the unused bytes at the end of linking
1209
1210         * jit/JIT.cpp:
1211         (JSC::JIT::JIT):
1212         (JSC::JIT::privateCompile):
1213         * jit/JIT.h:
1214         (JSC::JIT::compile):
1215            The JIT class now needs to take a linker offset so that recompilation
1216            can generate the same jumps when using branch compaction.
1217         * jit/JITArithmetic32_64.cpp:
1218         (JSC::JIT::emitSlow_op_mod):
1219         * jit/JITOpcodes.cpp:
1220         (JSC::JIT::privateCompileCTIMachineTrampolines):
1221         * jit/JITOpcodes32_64.cpp:
1222         (JSC::JIT::privateCompileCTIMachineTrampolines):
1223         (JSC::JIT::privateCompileCTINativeCall):
1224           Update for new trampolineAt changes
1225
1226         * wtf/FastMalloc.cpp:
1227         (WTF::TCMallocStats::):
1228         * wtf/Platform.h:
1229
1230 2010-08-09  Gavin Barraclough  <barraclough@apple.com>
1231
1232         Qt build fix III.
1233
1234         * wtf/text/WTFString.h:
1235
1236 2010-08-09  Gavin Barraclough  <barraclough@apple.com>
1237
1238         Qt build fix.
1239
1240         * wtf/qt/StringQt.cpp:
1241
1242 2010-08-06  Gavin Barraclough  <barraclough@apple.com>
1243
1244         Rubber stamped by Sam Weinig
1245
1246         Bug 43594 - Add string forwards to Forward.h
1247         This allows us to remove forward declarations for these classes from
1248         WebCore/WebKit (a step in moving these class from WebCore:: to WTF::).
1249
1250         * JavaScriptCore.xcodeproj/project.pbxproj:
1251         * wtf/Forward.h:
1252
1253 2010-08-07  Sheriff Bot  <webkit.review.bot@gmail.com>
1254
1255         Unreviewed, rolling out r64938.
1256         http://trac.webkit.org/changeset/64938
1257         https://bugs.webkit.org/show_bug.cgi?id=43685
1258
1259         Did not compile on several ports (Requested by abarth on
1260         #webkit).
1261
1262         * Android.mk:
1263         * CMakeLists.txt:
1264         * GNUmakefile.am:
1265         * JavaScriptCore.gypi:
1266         * JavaScriptCore.pro:
1267         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
1268         * JavaScriptCore.xcodeproj/project.pbxproj:
1269         * assembler/AbstractMacroAssembler.h:
1270         * assembler/MacroAssembler.h:
1271         * assembler/MacroAssemblerX86.h:
1272         (JSC::MacroAssemblerX86::load32):
1273         (JSC::MacroAssemblerX86::store32):
1274         * assembler/X86Assembler.h:
1275         (JSC::X86Assembler::movl_rm):
1276         (JSC::X86Assembler::movl_mr):
1277         * bytecode/CodeBlock.cpp:
1278         (JSC::CodeBlock::markAggregate):
1279         * bytecode/Instruction.h:
1280         (JSC::PolymorphicAccessStructureList::PolymorphicStubInfo::):
1281         (JSC::PolymorphicAccessStructureList::PolymorphicStubInfo::set):
1282         (JSC::PolymorphicAccessStructureList::PolymorphicAccessStructureList):
1283         * bytecode/StructureStubInfo.cpp:
1284         (JSC::StructureStubInfo::deref):
1285         * bytecode/StructureStubInfo.h:
1286         (JSC::StructureStubInfo::initGetByIdProto):
1287         (JSC::StructureStubInfo::initGetByIdChain):
1288         (JSC::StructureStubInfo::):
1289         * jit/JIT.h:
1290         * jit/JITMarkObjects.cpp: Removed.
1291         * jit/JITPropertyAccess.cpp:
1292         (JSC::JIT::compileGetDirectOffset):
1293         (JSC::JIT::testPrototype):
1294         (JSC::JIT::privateCompilePutByIdTransition):
1295         (JSC::JIT::privateCompileGetByIdProto):
1296         (JSC::JIT::privateCompileGetByIdProtoList):
1297         (JSC::JIT::privateCompileGetByIdChainList):
1298         (JSC::JIT::privateCompileGetByIdChain):
1299         * jit/JITPropertyAccess32_64.cpp:
1300         (JSC::JIT::compileGetDirectOffset):
1301         (JSC::JIT::testPrototype):
1302         (JSC::JIT::privateCompilePutByIdTransition):
1303         (JSC::JIT::privateCompileGetByIdProto):
1304         (JSC::JIT::privateCompileGetByIdProtoList):
1305         (JSC::JIT::privateCompileGetByIdChainList):
1306         (JSC::JIT::privateCompileGetByIdChain):
1307         * jit/JITStubs.cpp:
1308         (JSC::setupPolymorphicProtoList):
1309         * wtf/Platform.h:
1310
1311 2010-08-07  Nathan Lawrence  <nlawrence@apple.com>
1312
1313         Reviewed by Geoffrey Garen.
1314
1315         The JIT code contains a number of direct references to GC'd objects.
1316         When we have movable objects, these references will need to be
1317         updated.
1318
1319         * Android.mk:
1320         * CMakeLists.txt:
1321         * GNUmakefile.am:
1322         * JavaScriptCore.gypi:
1323         * JavaScriptCore.pro:
1324         * JavaScriptCore.xcodeproj/project.pbxproj:
1325         * assembler/AbstractMacroAssembler.h:
1326         (JSC::AbstractMacroAssembler::int32AtLocation):
1327         (JSC::AbstractMacroAssembler::pointerAtLocation):
1328         (JSC::AbstractMacroAssembler::jumpTarget):
1329         * assembler/MacroAssembler.h:
1330         (JSC::MacroAssembler::loadPtrWithPatch):
1331             Normally, loadPtr will optimize when the register is eax.  Since
1332             the slightly smaller instruction changes the offsets, it messes up
1333             our ability to repatch the code.  We added this new instruction
1334             that garuntees a constant size.
1335         * assembler/MacroAssemblerX86.h:
1336         (JSC::MacroAssemblerX86::load32WithPatch):
1337             Changed load32 in the same way described above.
1338         (JSC::MacroAssemblerX86::load32):
1339             Moved the logic to optimize laod32 from movl_mr to load32
1340         (JSC::MacroAssemblerX86::store32):
1341             Moved the logic to optimize store32 from movl_rm to store32
1342         * assembler/X86Assembler.h:
1343         (JSC::X86Assembler::movl_rm):
1344         (JSC::X86Assembler::movl_mr):
1345         (JSC::X86Assembler::int32AtLocation):
1346         (JSC::X86Assembler::pointerAtLocation):
1347         (JSC::X86Assembler::jumpTarget):
1348         * bytecode/CodeBlock.cpp:
1349         (JSC::CodeBlock::markAggregate):
1350         * bytecode/Instruction.h:
1351             As described in StructureStubInfo.h, we needed to add additional
1352             fields to both StructureStubInfo and
1353             PolymorphicAccessStructureList so that we can determine the
1354             structure of the JITed code at patch time.
1355         (JSC::PolymorphicAccessStructureList::PolymorphicStubInfo::set):
1356         (JSC::PolymorphicAccessStructureList::PolymorphicAccessStructureList):
1357         * bytecode/StructureStubInfo.cpp:
1358         (JSC::StructureStubInfo::markAggregate):
1359             Added this function to mark the JITed code that correosponds to
1360             this structure stub info.
1361         * bytecode/StructureStubInfo.h:
1362         (JSC::StructureStubInfo::initGetByIdProto):
1363         (JSC::StructureStubInfo::initGetByIdChain):
1364         (JSC::StructureStubInfo::):
1365         * jit/JIT.h:
1366         * jit/JITMarkObjects.cpp: Added.
1367         (JSC::JIT::patchPrototypeStructureAddress):
1368         (JSC::JIT::patchGetDirectOffset):
1369         (JSC::JIT::markGetByIdProto):
1370         (JSC::JIT::markGetByIdChain):
1371         (JSC::JIT::markGetByIdProtoList):
1372         (JSC::JIT::markPutByIdTransition):
1373         (JSC::JIT::markGlobalObjectReference):
1374         * jit/JITPropertyAccess.cpp:
1375             Added asserts for the patch offsets.
1376         (JSC::JIT::compileGetDirectOffset):
1377         (JSC::JIT::testPrototype):
1378         (JSC::JIT::privateCompilePutByIdTransition):
1379         (JSC::JIT::privateCompileGetByIdProto):
1380         (JSC::JIT::privateCompileGetByIdProtoList):
1381         (JSC::JIT::privateCompileGetByIdChainList):
1382         (JSC::JIT::privateCompileGetByIdChain):
1383         * jit/JITPropertyAccess32_64.cpp:
1384         (JSC::JIT::compileGetDirectOffset):
1385         (JSC::JIT::testPrototype):
1386         (JSC::JIT::privateCompilePutByIdTransition):
1387         (JSC::JIT::privateCompileGetByIdProto):
1388         (JSC::JIT::privateCompileGetByIdProtoList):
1389         (JSC::JIT::privateCompileGetByIdChainList):
1390         (JSC::JIT::privateCompileGetByIdChain):
1391         * jit/JITStubs.cpp:
1392         (JSC::setupPolymorphicProtoList):
1393         * wtf/Platform.h:
1394             Added ENABLE_MOVABLE_GC_OBJECTS flag
1395
1396 2010-08-07  Michael Saboff  <msaboff@apple.com>
1397
1398         Reviewed by Geoffrey Garen.
1399
1400         Revert JSArray to point to the beginning of the contained ArrayStorage
1401         struct.  This is described in
1402         https://bugs.webkit.org/show_bug.cgi?id=43526.
1403
1404         * jit/JITPropertyAccess.cpp:
1405         (JSC::JIT::emit_op_get_by_val):
1406         (JSC::JIT::emit_op_put_by_val):
1407         (JSC::JIT::privateCompilePatchGetArrayLength):
1408         * jit/JITPropertyAccess32_64.cpp:
1409         (JSC::JIT::emit_op_get_by_val):
1410         (JSC::JIT::emit_op_put_by_val):
1411         (JSC::JIT::privateCompilePatchGetArrayLength):
1412         * runtime/JSArray.cpp:
1413         (JSC::JSArray::JSArray):
1414         (JSC::JSArray::~JSArray):
1415         (JSC::JSArray::getOwnPropertySlot):
1416         (JSC::JSArray::getOwnPropertyDescriptor):
1417         (JSC::JSArray::put):
1418         (JSC::JSArray::putSlowCase):
1419         (JSC::JSArray::deleteProperty):
1420         (JSC::JSArray::getOwnPropertyNames):
1421         (JSC::JSArray::getNewVectorLength):
1422         (JSC::JSArray::increaseVectorLength):
1423         (JSC::JSArray::increaseVectorPrefixLength):
1424         (JSC::JSArray::setLength):
1425         (JSC::JSArray::pop):
1426         (JSC::JSArray::push):
1427         (JSC::JSArray::shiftCount):
1428         (JSC::JSArray::unshiftCount):
1429         (JSC::JSArray::sortNumeric):
1430         (JSC::JSArray::sort):
1431         (JSC::JSArray::fillArgList):
1432         (JSC::JSArray::copyToRegisters):
1433         (JSC::JSArray::compactForSorting):
1434         (JSC::JSArray::subclassData):
1435         (JSC::JSArray::setSubclassData):
1436         (JSC::JSArray::checkConsistency):
1437         * runtime/JSArray.h:
1438         (JSC::JSArray::length):
1439         (JSC::JSArray::canGetIndex):
1440         (JSC::JSArray::getIndex):
1441         (JSC::JSArray::setIndex):
1442         (JSC::JSArray::uncheckedSetIndex):
1443         (JSC::JSArray::markChildrenDirect):
1444
1445 2010-08-07  Kwang Yul Seo  <skyul@company100.net>
1446
1447         Reviewed by Eric Seidel.
1448
1449         Add ENABLE(YARR) guard around JSGlobalData::m_regexAllocator
1450         https://bugs.webkit.org/show_bug.cgi?id=43399
1451
1452         m_regexAllocator is used only by RegExp::compile which is guarded with ENABLE(YARR).
1453
1454         * runtime/JSGlobalData.h:
1455
1456 2010-08-07  Patrick Roland Gansterer  <paroga@paroga.com>
1457
1458         Reviewed by Eric Seidel.
1459
1460         [Qt] Enable JIT on WinCE
1461         https://bugs.webkit.org/show_bug.cgi?id=43303
1462
1463         Add ExtraCompiler for generating GeneratedJITStubs_MSVC.asm.
1464
1465         * DerivedSources.pro:
1466
1467 2010-08-07  Dan Bernstein  <mitz@apple.com>
1468
1469         Reviewed by Anders Carlsson.
1470
1471         Created a separate SimpleFontData constructor exclusively for SVG fonts and moved the CTFontRef
1472         from SimpleFontData to FontPlatformData.
1473         https://bugs.webkit.org/show_bug.cgi?id=43674
1474
1475         * wtf/Platform.h: Moved definitions of WTF_USE_CORE_TEXT and WTF_USE_ATSUI here from WebCore/config.h.
1476
1477 2010-08-07  Zoltan Herczeg  <zherczeg@webkit.org>
1478
1479         Reviewed by Eric Seidel.
1480
1481         Bitmap.h has no default constructor
1482         https://bugs.webkit.org/show_bug.cgi?id=43619
1483
1484         Without a constructor, the initial bits of the Bitmap class
1485         are undefinied. If only a few, or zero bits are 0, the memory
1486         area provided by AlignedMemoryAllocator can be easly exhausted.
1487
1488         Csaba Osztrogonác helped to find this bug.
1489
1490         * wtf/Bitmap.h:
1491         (WTF::::Bitmap):
1492
1493 2010-08-06  Rafael Antognolli  <antognolli@profusion.mobi>
1494
1495         [EFL] Build fix.
1496
1497         * CMakeLists.txt: add runtime/CGHandle.cpp.
1498
1499 2010-08-06  Jessie Berlin  <jberlin@apple.com>
1500
1501         Roll out http://trac.webkit.org/changeset/64801, which broke the Safari Windows Build.
1502         Unreviewed.
1503
1504         * JavaScriptCore.xcodeproj/project.pbxproj:
1505         * wtf/Forward.h:
1506
1507 2010-08-06  Jessie Berlin  <jberlin@apple.com>
1508
1509         Windows Build Fix (continued). Unreviewed.
1510
1511         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
1512
1513 2010-08-06  Jessie Berlin  <jberlin@apple.com>
1514
1515         Windows Build Fix. Unreviewed.
1516
1517         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
1518         Add GCHandle.h and GCHandle.cpp.
1519
1520 2010-08-06  Nathan Lawrence  <nlawrence@apple.com>
1521
1522         Reviewed by Geoffrey Garen.
1523
1524         https://bugs.webkit.org/show_bug.cgi?id=43207
1525
1526         WeakGCPtr's should instead of directly pointing to the GC'd object
1527         should be directed to an array of pointers that can be updated for
1528         movable objects.
1529
1530         * Android.mk:
1531         * GNUmakefile.am:
1532         * JavaScriptCore.exp:
1533         * JavaScriptCore.gypi:
1534         * JavaScriptCore.pro:
1535         * JavaScriptCore.xcodeproj/project.pbxproj:
1536         * runtime/Collector.cpp:
1537         (JSC::Heap::destroy):
1538         (JSC::Heap::allocateBlock):
1539         (JSC::Heap::freeBlock):
1540         (JSC::Heap::updateWeakGCHandles):
1541         (JSC::WeakGCHandlePool::update):
1542         (JSC::Heap::addWeakGCHandle):
1543         (JSC::Heap::markRoots):
1544         * runtime/Collector.h:
1545         (JSC::Heap::weakGCHandlePool):
1546         * runtime/GCHandle.cpp: Added.
1547         (JSC::WeakGCHandle::pool):
1548         (JSC::WeakGCHandlePool::WeakGCHandlePool):
1549         (JSC::WeakGCHandlePool::allocate):
1550         (JSC::WeakGCHandlePool::free):
1551         (JSC::WeakGCHandlePool::operator new):
1552         * runtime/GCHandle.h: Added.
1553         (JSC::WeakGCHandle::isValidPtr):
1554         (JSC::WeakGCHandle::isPtr):
1555         (JSC::WeakGCHandle::isNext):
1556         (JSC::WeakGCHandle::invalidate):
1557         (JSC::WeakGCHandle::get):
1558         (JSC::WeakGCHandle::set):
1559         (JSC::WeakGCHandle::getNextInFreeList):
1560         (JSC::WeakGCHandle::setNextInFreeList):
1561         (JSC::WeakGCHandlePool::isFull):
1562         * runtime/WeakGCPtr.h:
1563         (JSC::WeakGCPtr::WeakGCPtr):
1564         (JSC::WeakGCPtr::~WeakGCPtr):
1565         (JSC::WeakGCPtr::get):
1566         (JSC::WeakGCPtr::clear):
1567         (JSC::WeakGCPtr::assign):
1568         (JSC::get):
1569
1570 2010-08-06  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>
1571
1572         Reviewed by Antonio Gomes.
1573
1574         [Qt] Fix warnings about difference in symbol visiblity on Mac OS X
1575
1576         * jsc.pro:
1577
1578 2010-08-06  Zoltan Herczeg  <zherczeg@webkit.org>
1579
1580         Reviewed by Darin Adler.
1581
1582         Refactor identifier parsing in lexer
1583         https://bugs.webkit.org/show_bug.cgi?id=41845
1584
1585         The code is refactored to avoid gotos. The new code
1586         has the same performance as the old one.
1587
1588         SunSpider --parse-only: no change (from 34.0ms to 33.6ms)
1589         SunSpider: no change (from 523.2ms to 523.5ms)
1590
1591         * parser/Lexer.cpp:
1592         (JSC::Lexer::parseIdent):
1593         (JSC::Lexer::lex):
1594         * parser/Lexer.h:
1595
1596 2010-08-06  Gabor Loki  <loki@webkit.org>
1597
1598         Reviewed by Gavin Barraclough.
1599
1600         The ARM JIT does not support JSValue32_64 with RVCT
1601         https://bugs.webkit.org/show_bug.cgi?id=43411
1602
1603         JSValue32_64 is enabled for RVCT by default.
1604
1605         * create_jit_stubs:
1606         * jit/JITStubs.cpp:
1607         (JSC::ctiTrampoline):
1608         (JSC::ctiVMThrowTrampoline):
1609         (JSC::ctiOpThrowNotCaught):
1610         * wtf/Platform.h:
1611
1612 2010-08-05  Chao-ying Fu  <fu@mips.com>
1613
1614         Reviewed by Darin Adler.
1615
1616         Define WTF_USE_ARENA_ALLOC_ALIGNMENT_INTEGER for MIPS
1617         https://bugs.webkit.org/show_bug.cgi?id=43514
1618
1619         MIPS needs to define WTF_USE_ARENA_ALLOC_ALIGNMENT_INTEGER, so that
1620         RenderArena::allocate() can return 8-byte aligned memory to avoid
1621         exceptions on sdc1/ldc1.
1622
1623         * wtf/Platform.h:
1624
1625 2010-08-05  Gavin Barraclough  <barraclough@apple.com>
1626
1627         Rubber stamped by Sam Weinig
1628
1629         Bug 43594 - Add string forwards to Forward.h
1630         This allows us to remove forward declarations for these classes from
1631         WebCore/WebKit (a step in moving these class from WebCore:: to WTF::).
1632
1633         * JavaScriptCore.xcodeproj/project.pbxproj:
1634         * wtf/Forward.h:
1635
1636 2010-08-05  Geoffrey Garen  <ggaren@apple.com>
1637
1638         Reviewed by Mark Rowe.
1639
1640         Fixed leak seen on buildbot.
1641
1642         * runtime/GCActivityCallbackCF.cpp:
1643         (JSC::DefaultGCActivityCallback::DefaultGCActivityCallback):
1644         (JSC::DefaultGCActivityCallback::~DefaultGCActivityCallback):
1645         (JSC::DefaultGCActivityCallback::operator()): Make out timer a RetainPtr,
1646         since anything less would be uncivilized.
1647
1648 2010-08-05  Andy Estes  <aestes@apple.com>
1649
1650         Reviewed by David Kilzer.
1651
1652         Rename iOS-related OS and PLATFORM macros.
1653         https://bugs.webkit.org/show_bug.cgi?id=43493
1654         
1655         Rename WTF_OS_IPHONE_OS to WTF_OS_IOS, WTF_PLATFORM_IPHONE to
1656         WTF_PLATFORM_IOS, and WTF_PLATFORM_IPHONE_SIMULATOR to
1657         WTF_PLATFORM_IOS_SIMULATOR.
1658
1659         * jit/ExecutableAllocator.h:
1660         * jit/JITStubs.cpp:
1661         * profiler/ProfilerServer.mm:
1662         (-[ProfilerServer init]):
1663         * wtf/FastMalloc.cpp:
1664         (WTF::TCMallocStats::):
1665         * wtf/Platform.h:
1666         * wtf/unicode/icu/CollatorICU.cpp:
1667         (WTF::Collator::userDefault):
1668
1669 2010-08-05  Nathan Lawrence  <nlawrence@apple.com>
1670
1671         Reviewed by Darin Adler.
1672
1673         https://bugs.webkit.org/show_bug.cgi?id=43464
1674
1675         Currently, the global object is being embedded in the JavaScriptCore
1676         bytecode, however since the global object is the same for all opcodes
1677         in a code block, we can have the global object just be a member of the
1678         associated code block.
1679
1680         Additionally, I added an assert inside of emitOpcode that verifies
1681         that the last generated opcode was of the correct length.
1682
1683         * bytecode/CodeBlock.cpp:
1684         (JSC::CodeBlock::CodeBlock):
1685         (JSC::CodeBlock::derefStructures):
1686         (JSC::CodeBlock::markAggregate):
1687         * bytecode/CodeBlock.h:
1688         (JSC::CodeBlock::globalObject):
1689         (JSC::GlobalCodeBlock::GlobalCodeBlock):
1690         (JSC::ProgramCodeBlock::ProgramCodeBlock):
1691         (JSC::EvalCodeBlock::EvalCodeBlock):
1692         (JSC::FunctionCodeBlock::FunctionCodeBlock):
1693         * bytecode/Opcode.h:
1694         (JSC::opcodeLength):
1695         * bytecompiler/BytecodeGenerator.cpp:
1696         (JSC::BytecodeGenerator::BytecodeGenerator):
1697         (JSC::BytecodeGenerator::emitOpcode):
1698             Added an assert to check that the last generated opcode is the
1699             correct length.
1700         (JSC::BytecodeGenerator::rewindBinaryOp):
1701             Changed the last opcode to op_end since the length will no longer
1702             be correct.
1703         (JSC::BytecodeGenerator::rewindUnaryOp):
1704             Changed the last opcode to op_end since the length will no longer
1705             be correct.
1706         (JSC::BytecodeGenerator::emitResolve):
1707         (JSC::BytecodeGenerator::emitGetScopedVar):
1708         (JSC::BytecodeGenerator::emitPutScopedVar):
1709         (JSC::BytecodeGenerator::emitResolveWithBase):
1710         * bytecompiler/BytecodeGenerator.h:
1711         * interpreter/Interpreter.cpp:
1712         (JSC::Interpreter::resolveGlobal):
1713         (JSC::Interpreter::resolveGlobalDynamic):
1714         (JSC::Interpreter::privateExecute):
1715         * jit/JITOpcodes.cpp:
1716         (JSC::JIT::emit_op_get_global_var):
1717         (JSC::JIT::emit_op_put_global_var):
1718         (JSC::JIT::emit_op_resolve_global):
1719         (JSC::JIT::emitSlow_op_resolve_global):
1720         (JSC::JIT::emit_op_resolve_global_dynamic):
1721         (JSC::JIT::emitSlow_op_resolve_global_dynamic):
1722         * jit/JITOpcodes32_64.cpp:
1723         (JSC::JIT::emit_op_get_global_var):
1724         (JSC::JIT::emit_op_put_global_var):
1725         (JSC::JIT::emit_op_resolve_global):
1726         (JSC::JIT::emitSlow_op_resolve_global):
1727         * jit/JITStubs.cpp:
1728         (JSC::cti_op_resolve_global):
1729         * runtime/Executable.cpp:
1730         (JSC::FunctionExecutable::compileForCallInternal):
1731         (JSC::FunctionExecutable::compileForConstructInternal):
1732         (JSC::FunctionExecutable::reparseExceptionInfo):
1733
1734 2010-08-05  Gavin Barraclough  <barraclough@apple.com>
1735
1736         Reviewed by Sam Weinig.
1737
1738         Bug 43185 - Switch RegisterFile over to use PageAllocation
1739
1740         Remove platform-specific memory allocation code.
1741
1742         * interpreter/RegisterFile.cpp:
1743         (JSC::RegisterFile::~RegisterFile):
1744         (JSC::RegisterFile::releaseExcessCapacity):
1745         * interpreter/RegisterFile.h:
1746         (JSC::RegisterFile::RegisterFile):
1747         (JSC::RegisterFile::grow):
1748         (JSC::RegisterFile::checkAllocatedOkay):
1749         * wtf/PageAllocation.cpp:
1750         (WTF::PageAllocation::lastError):
1751         * wtf/PageAllocation.h:
1752         (WTF::PageAllocation::allocate):
1753         (WTF::PageAllocation::allocateAt):
1754         (WTF::PageAllocation::allocateAligned):
1755         (WTF::PageAllocation::pageSize):
1756         (WTF::PageAllocation::isPageAligned):
1757         (WTF::PageAllocation::isPowerOfTwo):
1758         * wtf/PageReservation.h:
1759         (WTF::PageReservation::commit):
1760         (WTF::PageReservation::decommit):
1761         (WTF::PageReservation::reserve):
1762         (WTF::PageReservation::reserveAt):
1763
1764 2010-08-05  Michael Saboff  <msaboff@apple.com>
1765
1766         Reviewed by Darin Adler.
1767
1768         Fixed https://bugs.webkit.org/show_bug.cgi?id=43401 where array 
1769         content aren't properly initialized as part of unshift.  
1770
1771         * runtime/JSArray.cpp:
1772         (JSC::JSArray::unshiftCount):
1773
1774 2010-08-05  Jian Li  <jianli@chromium.org>
1775
1776         Reviewed by David Levin.
1777
1778         Unify blob related feature defines to ENABLE(BLOB).
1779         https://bugs.webkit.org/show_bug.cgi?id=43081
1780
1781         * Configurations/FeatureDefines.xcconfig:
1782
1783 2010-08-05  Gustavo Noronha Silva  <gustavo.noronha@collabora.co.uk>
1784
1785         Rubber-stamped by Xan Lopez.
1786
1787         Remove GHashTable left-overs. GHashTable is ref-counted, and is
1788         correctly supported by GRefPtr.
1789
1790         * wtf/gobject/GOwnPtr.h:
1791
1792 2010-08-05  Gustavo Noronha Silva  <gustavo.noronha@collabora.co.uk>
1793
1794         Unreviewed.
1795
1796         Typo fix that makes distcheck happy.
1797
1798         * GNUmakefile.am:
1799
1800 2010-08-03  Geoffrey Garen  <ggaren@apple.com>
1801
1802         Reviewed by Oliver Hunt and Beth Dakin.
1803
1804         https://bugs.webkit.org/show_bug.cgi?id=43461
1805         Invalid NaN parsing
1806         
1807         * wtf/dtoa.cpp: Turn off the dtoa feature that allows you to specify a
1808         non-standard NaN representation, since our NaN encoding assumes that all
1809         true NaNs have the standard bit pattern.
1810
1811         * API/JSValueRef.cpp:
1812         (JSValueMakeNumber): Don't allow an API client to accidentally specify
1813         a non-standard NaN either.
1814
1815 2010-08-04  Gavin Barraclough  <barraclough@apple.com>
1816
1817         Windows build fix part II.
1818
1819         * wtf/PageReservation.h:
1820         (WTF::PageReservation::systemReserve):
1821
1822 2010-08-04  Gavin Barraclough  <barraclough@apple.com>
1823
1824         Windows build fix.
1825
1826         * wtf/PageReservation.h:
1827         (WTF::PageReservation::systemReserve):
1828
1829 2010-08-04  Gavin Barraclough  <barraclough@apple.com>
1830
1831         Build fix - add new header to !Mac projects.
1832
1833         * GNUmakefile.am:
1834         * JavaScriptCore.gypi:
1835         * JavaScriptCore.vcproj/WTF/WTF.vcproj:
1836
1837 2010-08-04  Gavin Barraclough  <barraclough@apple.com>
1838
1839         Reviewed by Sam Weinig.
1840
1841         Bug 43515 - Fix small design issues with PageAllocation, split out PageReservation.
1842
1843         The PageAllocation class has a number of issues:
1844         * Changes in bug #43269 accidentally switched SYMBIAN over to use malloc/free to allocate
1845           blocks of memory for the GC heap, instead of allocating RChunks.  Revert this change in
1846           behaviour.
1847         * In order for PageAllocation to work correctly on WinCE we should be decommitting memory
1848           before deallocating.  In order to simplify understanding the expected state at deallocate,
1849           split behaviour out into PageAllocation and PageReservation classes.  Require that all
1850           memory be decommitted before calling deallocate on a PageReservation, add asserts to
1851           enforce this.
1852         * add many missing asserts.
1853         * inline more functions.
1854         * remove ability to create sub-PageAllocations from an existing PageAllocations object -
1855           this presented an interface that would allow sub regions to be deallocated, which would
1856           not have provided expected behaviour.
1857         * remove writable/executable arguments to commit, this value can be cached at the point
1858           the memory is reserved.
1859         * remove writable/executable arguments to allocateAligned, protection other than RW is not
1860           supported.
1861         * add missing checks for overflow & failed allocation to mmap path through allocateAligned.
1862
1863         * JavaScriptCore.xcodeproj/project.pbxproj:
1864         * jit/ExecutableAllocator.cpp:
1865         (JSC::ExecutableAllocator::intializePageSize):
1866         * jit/ExecutableAllocator.h:
1867         (JSC::ExecutablePool::Allocation::Allocation):
1868         (JSC::ExecutablePool::Allocation::base):
1869         (JSC::ExecutablePool::Allocation::size):
1870         (JSC::ExecutablePool::Allocation::operator!):
1871         * jit/ExecutableAllocatorFixedVMPool.cpp:
1872         (JSC::FixedVMPoolAllocator::reuse):
1873         (JSC::FixedVMPoolAllocator::coalesceFreeSpace):
1874         (JSC::FixedVMPoolAllocator::FixedVMPoolAllocator):
1875         (JSC::FixedVMPoolAllocator::alloc):
1876         (JSC::FixedVMPoolAllocator::free):
1877         (JSC::FixedVMPoolAllocator::allocInternal):
1878         * runtime/AlignedMemoryAllocator.h:
1879         (JSC::::allocate):
1880         (JSC::::AlignedMemoryAllocator):
1881         * runtime/Collector.cpp:
1882         (JSC::Heap::allocateBlock):
1883         * runtime/Collector.h:
1884         * wtf/PageAllocation.cpp:
1885         * wtf/PageAllocation.h:
1886         (WTF::PageAllocation::operator!):
1887         (WTF::PageAllocation::allocate):
1888         (WTF::PageAllocation::allocateAt):
1889         (WTF::PageAllocation::allocateAligned):
1890         (WTF::PageAllocation::deallocate):
1891         (WTF::PageAllocation::pageSize):
1892         (WTF::PageAllocation::systemAllocate):
1893         (WTF::PageAllocation::systemAllocateAt):
1894         (WTF::PageAllocation::systemAllocateAligned):
1895         (WTF::PageAllocation::systemDeallocate):
1896         (WTF::PageAllocation::systemPageSize):
1897         * wtf/PageReservation.h: Copied from JavaScriptCore/wtf/PageAllocation.h.
1898         (WTF::PageReservation::PageReservation):
1899         (WTF::PageReservation::commit):
1900         (WTF::PageReservation::decommit):
1901         (WTF::PageReservation::reserve):
1902         (WTF::PageReservation::reserveAt):
1903         (WTF::PageReservation::deallocate):
1904         (WTF::PageReservation::systemCommit):
1905         (WTF::PageReservation::systemDecommit):
1906         (WTF::PageReservation::systemReserve):
1907         (WTF::PageReservation::systemReserveAt):
1908         * wtf/Platform.h:
1909
1910 2010-08-04  Sheriff Bot  <webkit.review.bot@gmail.com>
1911
1912         Unreviewed, rolling out r64655.
1913         http://trac.webkit.org/changeset/64655
1914         https://bugs.webkit.org/show_bug.cgi?id=43496
1915
1916         JavaScriptCore references patch seems to have caused
1917         regressions in QT and GTK builds (Requested by nlawrence on
1918         #webkit).
1919
1920         * bytecode/CodeBlock.cpp:
1921         (JSC::CodeBlock::markAggregate):
1922         * runtime/Collector.cpp:
1923         (JSC::Heap::markConservatively):
1924         * runtime/JSCell.h:
1925         (JSC::JSValue::asCell):
1926         (JSC::MarkStack::append):
1927         * runtime/JSGlobalObject.cpp:
1928         (JSC::markIfNeeded):
1929         * runtime/JSONObject.cpp:
1930         (JSC::Stringifier::Holder::object):
1931         * runtime/JSObject.h:
1932         (JSC::JSObject::prototype):
1933         * runtime/JSStaticScopeObject.cpp:
1934         (JSC::JSStaticScopeObject::markChildren):
1935         * runtime/JSValue.h:
1936         (JSC::JSValue::):
1937         (JSC::JSValue::JSValue):
1938         (JSC::JSValue::asCell):
1939         * runtime/MarkStack.h:
1940         * runtime/NativeErrorConstructor.cpp:
1941         * runtime/NativeErrorConstructor.h:
1942         * runtime/Structure.h:
1943         (JSC::Structure::storedPrototype):
1944
1945 2010-08-04  Gavin Barraclough  <barraclough@apple.com>
1946
1947         Rubber stamped by Sam Weinig.
1948
1949         Enable JSVALUE64 for CPU(PPC64).
1950         Basic browsing seems to work.
1951
1952         * wtf/Platform.h:
1953
1954 2010-08-04  Nathan Lawrence  <nlawrence@apple.com>
1955
1956         Reviewed by Darin Adler.
1957
1958         Refactoring MarkStack::append to take a reference.  This is in
1959         preparation for movable objects when we will need to update pointers.
1960         http://bugs.webkit.org/show_bug.cgi?id=41177
1961
1962         Unless otherwise noted, all changes are to either return by reference
1963         or pass a reference to MarkStack::append.
1964
1965         * bytecode/CodeBlock.cpp:
1966         (JSC::CodeBlock::markAggregate):
1967         * runtime/Collector.cpp:
1968         (JSC::Heap::markConservatively):
1969             Added a temporary variable to prevent marking from changing an
1970             unknown value on the stack
1971         * runtime/JSCell.h:
1972         (JSC::JSValue::asCell):
1973         (JSC::MarkStack::append):
1974         (JSC::MarkStack::appendInternal):
1975         * runtime/JSGlobalObject.cpp:
1976         (JSC::markIfNeeded):
1977         * runtime/JSONObject.cpp:
1978         (JSC::Stringifier::Holder::object):
1979         * runtime/JSObject.h:
1980         (JSC::JSObject::prototype):
1981         * runtime/JSStaticScopeObject.cpp:
1982         (JSC::JSStaticScopeObject::markChildren):
1983         * runtime/JSValue.h:
1984         (JSC::JSValue::JSValue):
1985         (JSC::JSValue::asCell):
1986         * runtime/MarkStack.h:
1987         * runtime/NativeErrorConstructor.cpp:
1988         (JSC::NativeErrorConstructor::createStructure):
1989             Changed the structure flags to include a custom markChildren.
1990         (JSC::NativeErrorConstructor::markChildren):
1991             Update the prototype of the stored structure.
1992         * runtime/NativeErrorConstructor.h:
1993             Added structure flags.
1994         * runtime/Structure.h:
1995         (JSC::Structure::storedPrototype):
1996
1997 2010-08-03  Nathan Lawrence  <nlawrence@apple.com>
1998
1999         Reviewed by Oliver Hunt.
2000
2001         Tightened up some get_by_id_chain* code generation
2002         https://bugs.webkit.org/show_bug.cgi?id=40935
2003
2004         This is in the style of
2005         https://bugs.webkit.org/show_bug.cgi?id=30539, and changed code to
2006         call accessor functions when it was not necessary to directly access
2007         the private variables.
2008
2009         * jit/JIT.h:
2010         * jit/JITPropertyAccess.cpp:
2011         (JSC::JIT::compileGetDirectOffset):
2012         (JSC::JIT::testPrototype):
2013         (JSC::JIT::privateCompilePutByIdTransition):
2014         (JSC::JIT::privateCompileGetByIdChainList):
2015         (JSC::JIT::privateCompileGetByIdChain):
2016         * jit/JITPropertyAccess32_64.cpp:
2017         (JSC::JIT::testPrototype):
2018         (JSC::JIT::privateCompilePutByIdTransition):
2019         (JSC::JIT::privateCompileGetByIdChainList):
2020         (JSC::JIT::privateCompileGetByIdChain):
2021
2022 2010-08-03  Adam Roben  <aroben@apple.com>
2023
2024         Turn on PLATFORM_STRATEGIES on Windows
2025
2026         Fixes <http://webkit.org/b/43431>.
2027
2028         Reviewed by Anders Carlsson.
2029
2030         * wtf/Platform.h:
2031
2032 2010-08-04  Gabor Loki  <loki@webkit.org>
2033
2034         Reviewed by Geoffrey Garen.
2035
2036         Enable JSValue32_64 for GCC on ARM by default
2037         https://bugs.webkit.org/show_bug.cgi?id=43410
2038
2039         * wtf/Platform.h:
2040
2041 2010-08-03  Gavin Barraclough  <barraclough@apple.com>
2042
2043         Speculative windows build fix.
2044
2045         * wtf/Bitmap.h:
2046
2047 2010-08-03  Gavin Barraclough  <barraclough@apple.com>
2048
2049         Build fix following r64624.
2050
2051         * JavaScriptCore.xcodeproj/project.pbxproj:
2052         * wtf/PageAllocation.h:
2053
2054 2010-08-03  Nathan Lawrence  <nlawrence@apple.com>
2055
2056         Reviewed by Gavin Barraclough.
2057
2058         https://bugs.webkit.org/show_bug.cgi?id=43269
2059
2060         Added new allocateAligned methods to PageAllocation.  In order to
2061         prevent a regress in performance, the function needs to be inlined.
2062
2063         Additionally, I ported the symbian block allocator to use
2064         PageAllocation and added a new WTF::Bitmap class to support this.
2065
2066         * GNUmakefile.am:
2067         * JavaScriptCore.gypi:
2068         * JavaScriptCore.xcodeproj/project.pbxproj:
2069         * runtime/AlignedMemoryAllocator.h: Added.
2070         (JSC::AlignedMemory::deallocate):
2071         (JSC::AlignedMemory::base):
2072         (JSC::AlignedMemory::AlignedMemory):
2073         (JSC::AlignedMemoryAllocator::destroy):
2074         (JSC::AlignedMemoryAllocator::allocate):
2075         (JSC::AlignedMemoryAllocator::AlignedMemoryAllocator):
2076         (JSC::AlignedMemoryAllocator::~AlignedMemoryAllocator):
2077         (JSC::AlignedMemoryAllocator::free):
2078         * runtime/Collector.cpp:
2079         (JSC::Heap::Heap):
2080         (JSC::Heap::destroy):
2081         (JSC::Heap::allocateBlock):
2082         (JSC::Heap::freeBlock):
2083         (JSC::Heap::freeBlocks):
2084         (JSC::Heap::allocate):
2085         (JSC::Heap::shrinkBlocks):
2086         (JSC::Heap::markConservatively):
2087         (JSC::Heap::clearMarkBits):
2088         (JSC::Heap::markedCells):
2089         * runtime/Collector.h:
2090         (JSC::CollectorHeap::collectorBlock):
2091         * runtime/CollectorHeapIterator.h:
2092         (JSC::CollectorHeapIterator::operator*):
2093         (JSC::LiveObjectIterator::operator++):
2094         (JSC::DeadObjectIterator::operator++):
2095         * wtf/Bitmap.h: Added.
2096         (WTF::Bitmap::get):
2097         (WTF::Bitmap::set):
2098         (WTF::Bitmap::clear):
2099         (WTF::Bitmap::clearAll):
2100         (WTF::Bitmap::advanceToNextFreeBit):
2101         (WTF::Bitmap::count):
2102         (WTF::Bitmap::isEmpty):
2103         (WTF::Bitmap::isFull):
2104         * wtf/PageAllocation.h:
2105         (WTF::PageAllocation::operator UnspecifiedBoolType):
2106         (WTF::PageAllocation::allocateAligned):
2107         (WTF::PageAllocation::reserveAligned):
2108         * wtf/Platform.h:
2109         * wtf/symbian: Removed.
2110         * wtf/symbian/BlockAllocatorSymbian.cpp: Removed.
2111         * wtf/symbian/BlockAllocatorSymbian.h: Removed.
2112
2113 2010-08-03  Michael Saboff  <msaboff@apple.com>
2114
2115         Reviewed by Gavin Barraclough.
2116
2117         Fix for https://bugs.webkit.org/show_bug.cgi?id=43314.  The prior code
2118         was using the wrong "length" value to move array contents when adding
2119         space to the beginning of an array for an unshift() or similar
2120         operation.  Instead of using m_vectorLength, the length of the
2121         allocated JSValue array, the code was using m_length, the declared
2122         length of the array.  These two values do not need to match.
2123
2124         * JavaScriptCore.xcodeproj/project.pbxproj:
2125         * runtime/JSArray.cpp:
2126         (JSC::JSArray::increaseVectorPrefixLength):
2127
2128 2010-08-03  Chao-ying Fu  <fu@mips.com>
2129
2130         Reviewed by Gavin Barraclough.
2131
2132         Fix following https://bugs.webkit.org/show_bug.cgi?id=43089
2133         (accidentally inverted a compiler version check).
2134
2135         * jit/ExecutableAllocator.h:
2136         (JSC::ExecutableAllocator::cacheFlush):
2137
2138 2010-08-03  Patrick Gansterer  <paroga@paroga.com>
2139
2140         Reviewed by Gavin Barraclough.
2141
2142         Implement DEFINE_STUB_FUNCTION for WinCE.
2143         https://bugs.webkit.org/show_bug.cgi?id=34953
2144
2145         * jit/JITStubs.cpp:
2146         (JSC::):
2147         (JSC::DEFINE_STUB_FUNCTION):
2148
2149 2010-08-02  Gavin Barraclough  <barraclough@apple.com>
2150
2151         Reviewed by Oliver Hunt.
2152
2153         Bug 43390 - Do not CRASH if we run out of room for jit code.
2154
2155         Change the ExecutableAllocator implementations not to crash, and to return 0 if memory cannot be allocated.
2156         The assemblers should pass this through without trying to use it in executableCopy.
2157         Change the LinkBuffer to handle this, and to provide an allocationSuccessful() method to test for this.
2158
2159         Change the JIT to throw an exception if allocation fails.
2160         Make JIT optimizations fail gracefully if memory cannot be allocated (use non-optimized path).
2161         Change YARR JIT to fallback to PCRE 
2162
2163         * assembler/ARMAssembler.cpp:
2164         (JSC::ARMAssembler::executableCopy):
2165         * assembler/ARMv7Assembler.h:
2166         (JSC::ARMv7Assembler::executableCopy):
2167         * assembler/LinkBuffer.h:
2168         (JSC::LinkBuffer::allocationSuccessful):
2169         * assembler/MIPSAssembler.h:
2170         (JSC::MIPSAssembler::executableCopy):
2171         * assembler/X86Assembler.h:
2172         (JSC::X86Assembler::executableCopy):
2173         * bytecode/StructureStubInfo.h:
2174         (JSC::StructureStubInfo::initGetByIdProto):
2175         (JSC::StructureStubInfo::initGetByIdChain):
2176         (JSC::StructureStubInfo::initGetByIdSelfList):
2177         (JSC::StructureStubInfo::initGetByIdProtoList):
2178         (JSC::StructureStubInfo::initPutByIdTransition):
2179         * jit/ExecutableAllocator.cpp:
2180         (JSC::ExecutablePool::systemAlloc):
2181         * jit/ExecutableAllocatorFixedVMPool.cpp:
2182         (JSC::FixedVMPoolAllocator::allocInternal):
2183         * jit/JIT.cpp:
2184         (JSC::JIT::privateCompile):
2185         * jit/JIT.h:
2186         (JSC::JIT::compileGetByIdProto):
2187         (JSC::JIT::compileGetByIdSelfList):
2188         (JSC::JIT::compileGetByIdProtoList):
2189         (JSC::JIT::compileGetByIdChainList):
2190         (JSC::JIT::compileGetByIdChain):
2191         (JSC::JIT::compilePutByIdTransition):
2192         (JSC::JIT::compilePatchGetArrayLength):
2193         * jit/JITOpcodes.cpp:
2194         (JSC::JIT::privateCompileCTIMachineTrampolines):
2195         * jit/JITOpcodes32_64.cpp:
2196         (JSC::JIT::privateCompileCTIMachineTrampolines):
2197         (JSC::JIT::privateCompileCTINativeCall):
2198         * jit/JITPropertyAccess.cpp:
2199         (JSC::JIT::stringGetByValStubGenerator):
2200         (JSC::JIT::privateCompilePutByIdTransition):
2201         (JSC::JIT::privateCompilePatchGetArrayLength):
2202         (JSC::JIT::privateCompileGetByIdProto):
2203         (JSC::JIT::privateCompileGetByIdSelfList):
2204         (JSC::JIT::privateCompileGetByIdProtoList):
2205         (JSC::JIT::privateCompileGetByIdChainList):
2206         (JSC::JIT::privateCompileGetByIdChain):
2207         * jit/JITPropertyAccess32_64.cpp:
2208         (JSC::JIT::stringGetByValStubGenerator):
2209         (JSC::JIT::privateCompilePutByIdTransition):
2210         (JSC::JIT::privateCompilePatchGetArrayLength):
2211         (JSC::JIT::privateCompileGetByIdProto):
2212         (JSC::JIT::privateCompileGetByIdSelfList):
2213         (JSC::JIT::privateCompileGetByIdProtoList):
2214         (JSC::JIT::privateCompileGetByIdChainList):
2215         (JSC::JIT::privateCompileGetByIdChain):
2216         * jit/JITStubs.cpp:
2217         (JSC::JITThunks::tryCachePutByID):
2218         (JSC::JITThunks::tryCacheGetByID):
2219         (JSC::DEFINE_STUB_FUNCTION):
2220         (JSC::setupPolymorphicProtoList):
2221         * jit/JITStubs.h:
2222         * jit/SpecializedThunkJIT.h:
2223         (JSC::SpecializedThunkJIT::finalize):
2224         * runtime/ExceptionHelpers.cpp:
2225         (JSC::createOutOfMemoryError):
2226         * runtime/ExceptionHelpers.h:
2227         * runtime/Executable.cpp:
2228         (JSC::EvalExecutable::compileInternal):
2229         (JSC::ProgramExecutable::compileInternal):
2230         (JSC::FunctionExecutable::compileForCallInternal):
2231         (JSC::FunctionExecutable::compileForConstructInternal):
2232         (JSC::FunctionExecutable::reparseExceptionInfo):
2233         (JSC::EvalExecutable::reparseExceptionInfo):
2234         * yarr/RegexJIT.cpp:
2235         (JSC::Yarr::RegexGenerator::compile):
2236
2237 2010-08-03  Geoffrey Garen  <ggaren@apple.com>
2238
2239         Reviewed by Oliver Hunt.
2240
2241         Fixed a crash seen on the GTK 64bit buildbot.
2242         
2243         When JSArray is allocated for the vptr stealing hack, it's not allocated
2244         in the heap, so the JSArray constructor can't safely call Heap::heap().
2245         
2246         Since this was subtle enough to confuse smart people, I've changed JSArray
2247         to have an explicit vptr stealing constructor.
2248
2249         * JavaScriptCore.xcodeproj/project.pbxproj:
2250         * runtime/JSArray.cpp:
2251         (JSC::JSArray::JSArray):
2252         * runtime/JSArray.h:
2253         (JSC::JSArray::):
2254         * runtime/JSGlobalData.cpp:
2255         (JSC::JSGlobalData::storeVPtrs):
2256
2257 2010-08-03  Alex Milowski  <alex@milowski.com>
2258
2259         Reviewed by Beth Dakin.
2260
2261         Changed the ENABLE_MATHML value to enable MathML by default.
2262
2263         * Configurations/FeatureDefines.xcconfig:
2264
2265 2010-08-03  Michael Saboff  <msaboff@apple.com>
2266
2267         Reviewed by Gavin Barraclough.
2268
2269         Change to keep returned pointer from malloc family functions to
2270         quiet memory leak detect.  The pointer is saved in the new m_allocBase
2271         member of the ArrayStorage structure.  This fixes the issue found in 
2272         https://bugs.webkit.org/show_bug.cgi?id=43229.
2273
2274         As part of this change, we use m_allocBase when reallocating and
2275         freeing the memory associated with ArrayStorage.
2276
2277         * runtime/JSArray.cpp:
2278         (JSC::JSArray::JSArray):
2279         (JSC::JSArray::~JSArray):
2280         (JSC::JSArray::putSlowCase):
2281         (JSC::JSArray::increaseVectorLength):
2282         (JSC::JSArray::increaseVectorPrefixLength):
2283         * runtime/JSArray.h:
2284
2285 2010-08-03  Geoffrey Garen  <ggaren@apple.com>
2286
2287         Reviewed by Mark Rowe.
2288
2289         https://bugs.webkit.org/show_bug.cgi?id=43444
2290         PLATFORM(CF) is false on Windows in JavaScriptCore
2291
2292         Moved some PLATFORM(WIN) #defines down into JavaScriptCore.
2293
2294         * wtf/Platform.h: Added WTF_PLATFORM_CF 1 and WTF_USE_PTHREADS 0, inherited
2295         from WebCore/config.h. Removed WTF_USE_WININET 1 since WebCore/config.h
2296         just #undefined that later.
2297
2298 2010-08-03  Geoffrey Garen  <ggaren@apple.com>
2299
2300         Try to fix Windows build: Don't use GCActivityCallbackCF on Windows, since
2301         PLATFORM(CF) is not defined on Windows.
2302         
2303         We'll need to enable the GC activity callback some other way, but this
2304         change should get the build back to normal.
2305
2306         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
2307
2308         * runtime/GCActivityCallbackCF.cpp: Make it easier to detect this error
2309         in the future with an explicit error message.
2310
2311 2010-08-03  Geoffrey Garen  <ggaren@apple.com>
2312
2313         Try to fix Windows build: update .def file.
2314
2315         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
2316
2317 2010-08-03  Nathan Lawrence  <nlawrence@apple.com>
2318
2319         Reviewed by Oliver Hunt.
2320
2321         https://bugs.webkit.org/show_bug.cgi?id=41318
2322         GC should reclaim garbage even when new objects are not being allocated rapidly
2323
2324         Added a callback in JavaScriptCore that gets triggered after an
2325         allocation causes the heap to reset.  This is useful for adding a
2326         timer that will trigger garbage collection after the "last" allocation.
2327
2328         Also needed was to add lock and unlock methods to JSLock that needed
2329         only a JSGlobalData object versus an ExecState object.
2330
2331         * CMakeLists.txt:
2332         * GNUmakefile.am:
2333         * JavaScriptCore.exp:
2334         * JavaScriptCore.gypi:
2335         * JavaScriptCore.pro:
2336         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
2337         * JavaScriptCore.xcodeproj/project.pbxproj:
2338         * jit/JITPropertyAccess.cpp:
2339         (JSC::JIT::emit_op_put_by_val):
2340         * runtime/Collector.cpp:
2341         (JSC::Heap::Heap):
2342         (JSC::Heap::reset):
2343         (JSC::Heap::setActivityCallback):
2344         * runtime/Collector.h:
2345         * runtime/GCActivityCallback.cpp: Added.
2346         (JSC::DefaultGCActivityCallback::DefaultGCActivityCallback):
2347         (JSC::DefaultGCActivityCallback::~DefaultGCActivityCallback):
2348         (JSC::DefaultGCActivityCallback::operator()):
2349         * runtime/GCActivityCallback.h: Added.
2350         (JSC::GCActivityCallback::~GCActivityCallback):
2351         (JSC::GCActivityCallback::operator()):
2352         (JSC::GCActivityCallback::GCActivityCallback):
2353         (JSC::DefaultGCActivityCallback::create):
2354         * runtime/GCActivityCallbackCF.cpp: Added.
2355         (JSC::DefaultGCActivityCallbackPlatformData::trigger):
2356         (JSC::DefaultGCActivityCallback::DefaultGCActivityCallback):
2357         (JSC::DefaultGCActivityCallback::~DefaultGCActivityCallback):
2358         (JSC::DefaultGCActivityCallback::operator()):
2359         * runtime/JSLock.cpp:
2360         (JSC::JSLock::JSLock):
2361         * runtime/JSLock.h:
2362
2363 2010-08-02  Kevin Ollivier  <kevino@theolliviers.com>
2364
2365         [wx] Build fix after removal of need to compile ExecutableAllocatorPosix.cpp
2366
2367         * wscript:
2368
2369 2010-08-02  Mahesh Kulkarni  <mahesh.kulkarni@nokia.com>
2370
2371         Reviewed by Simon Hausmann.
2372
2373         [QT] build fix for symbian
2374         https://bugs.webkit.org/show_bug.cgi?id=43234
2375
2376         1) wrong order of passing param's
2377         2) static_cast complains on symbian so using reinterpret_cast
2378
2379         No new tests added. Just a build fix for qt symbian
2380
2381         * wtf/PageAllocation.cpp:
2382         (WTF::PageAllocation::commit):
2383         (WTF::PageAllocation::decommit):
2384         (WTF::PageAllocation::reserve):
2385
2386 2010-07-30  Luiz Agostini  <luiz.agostini@openbossa.org>
2387
2388         Reviewed by Simon Fraser.
2389
2390         Enabling view modes to all platforms
2391         https://bugs.webkit.org/show_bug.cgi?id=37505
2392
2393         Removing ENABLE_WIDGETS_10_SUPPORT flag.
2394
2395         As view mode media feature is not part of widget 1.0 specification
2396         any more the ENABLE_WIDGETS_10_SUPPORT flag may be removed. The only use
2397         of this flag was related to view mode media feature implementation in Qt. 
2398
2399         * wtf/Platform.h:
2400
2401 2010-07-30  Andy Estes  <aestes@apple.com>
2402
2403         Reviewed by David Kilzer.
2404
2405         Add Xcode support for compiling WebKit against iOS SDKs.
2406         https://bugs.webkit.org/show_bug.cgi?id=42796
2407
2408         * Configurations/Base.xcconfig:
2409         * Configurations/DebugRelease.xcconfig:
2410         * Configurations/FeatureDefines.xcconfig:
2411
2412 2010-07-30  Dumitru Daniliuc  <dumi@chromium.org>
2413
2414         Reviewed by Davin Levin.
2415
2416         Added a yield() function.
2417         https://bugs.webkit.org/show_bug.cgi?id=42843
2418
2419         * JavaScriptCore.exp:
2420         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
2421         * wtf/Threading.h:
2422         * wtf/ThreadingPthreads.cpp:
2423         (WTF::yield):
2424         * wtf/ThreadingWin.cpp:
2425         (WTF::yield):
2426         * wtf/gtk/ThreadingGtk.cpp:
2427         (WTF::yield):
2428         * wtf/qt/ThreadingQt.cpp:
2429         (WTF::yield):
2430
2431 2010-07-30  Rafael Antognolli  <antognolli@profusion.mobi>
2432
2433         Reviewed by Antonio Gomes.
2434
2435         [EFL] Add library version and soname to EFL generated libraries and binary.
2436         https://bugs.webkit.org/show_bug.cgi?id=43212
2437
2438         Add version and soname to libjavascriptcore.so and libwtf.so in case of
2439         linking as shared libraries, and version to jsc executable.
2440
2441         * CMakeLists.txt:
2442         * jsc/CMakeLists.txt:
2443         * wtf/CMakeLists.txt:
2444
2445 2010-07-30  Mahesh Kulkarni  <mahesh.kulkarni@nokia.com>
2446
2447         Reviewed by Simon Hausmann.
2448
2449         [QT] build fix for symbian
2450         https://bugs.webkit.org/show_bug.cgi?id=43234
2451
2452         * wtf/PageAllocation.h:
2453         (WTF::PageAllocation::PageAllocation):
2454
2455 2010-07-29  Sheriff Bot  <webkit.review.bot@gmail.com>
2456
2457         Unreviewed, rolling out r64313.
2458         http://trac.webkit.org/changeset/64313
2459         https://bugs.webkit.org/show_bug.cgi?id=43233
2460
2461         Some Chromium bots are not happy with it for some unknown
2462         reason. (Requested by dumi on #webkit).
2463
2464         * JavaScriptCore.exp:
2465         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
2466         * wtf/Threading.h:
2467         * wtf/ThreadingPthreads.cpp:
2468         * wtf/ThreadingWin.cpp:
2469         * wtf/gtk/ThreadingGtk.cpp:
2470         * wtf/qt/ThreadingQt.cpp:
2471
2472 2010-07-29  Sheriff Bot  <webkit.review.bot@gmail.com>
2473
2474         Unreviewed, rolling out r64302.
2475         http://trac.webkit.org/changeset/64302
2476         https://bugs.webkit.org/show_bug.cgi?id=43223
2477
2478         Assertion is bogus (Requested by olliej on #webkit).
2479
2480         * assembler/ARMAssembler.cpp:
2481         (JSC::ARMAssembler::executableCopy):
2482         * assembler/AssemblerBuffer.h:
2483         (JSC::AssemblerBuffer::putShortUnchecked):
2484         (JSC::AssemblerBuffer::putIntUnchecked):
2485         (JSC::AssemblerBuffer::putInt64Unchecked):
2486         * jit/JITStubs.cpp:
2487         * pcre/pcre_compile.cpp:
2488         (jsRegExpCompile):
2489         * wtf/FastMalloc.cpp:
2490         (WTF::PageHeapAllocator::New):
2491         (WTF::TCMalloc_Central_FreeList::Populate):
2492         * wtf/MD5.cpp:
2493         (WTF::reverseBytes):
2494         (WTF::MD5::addBytes):
2495         (WTF::MD5::checksum):
2496         * wtf/StdLibExtras.h:
2497         * wtf/Vector.h:
2498         (WTF::VectorBuffer::inlineBuffer):
2499         * wtf/qt/StringQt.cpp:
2500         (WebCore::String::String):
2501
2502 2010-07-29  Michael Saboff  <msaboff@apple.com>
2503
2504         Reviewed by Gavin Barraclough.
2505
2506         Changed the handling for removing and adding elements at the front
2507         of an array.  The code now keeps a bias that indicates the amount of
2508         JSValue sized holes are prior to the ArrayStorage block.  This means
2509         that shift operations are now memmove's of the header part of
2510         the ArrayStorage and unshift operations are similar, but may require a
2511         realloc first to create the space.  Similar operations are performed
2512         for special cases of splice and slice.
2513         Also optimized the new Array(size) case so that we don't allocate and
2514         initialize array elements until the JS code starts using elements.
2515         The array growth code is slightly more aggressive for initial growth
2516         based on size growth of any previous array.
2517
2518         * Configurations/JavaScriptCore.xcconfig:
2519         * jit/JITPropertyAccess.cpp:
2520         (JSC::JIT::emit_op_get_by_val):
2521         (JSC::JIT::emit_op_put_by_val):
2522         (JSC::JIT::privateCompilePatchGetArrayLength):
2523         * jit/JITPropertyAccess32_64.cpp:
2524         (JSC::JIT::emit_op_get_by_val):
2525         (JSC::JIT::emit_op_put_by_val):
2526         (JSC::JIT::privateCompilePatchGetArrayLength):
2527         * runtime/ArrayPrototype.cpp:
2528         (JSC::arrayProtoFuncShift):
2529         (JSC::arrayProtoFuncSplice):
2530         (JSC::arrayProtoFuncUnShift):
2531         * runtime/JSArray.cpp:
2532         (JSC::JSArray::JSArray):
2533         (JSC::JSArray::~JSArray):
2534         (JSC::JSArray::getOwnPropertySlot):
2535         (JSC::JSArray::getOwnPropertyDescriptor):
2536         (JSC::JSArray::put):
2537         (JSC::JSArray::putSlowCase):
2538         (JSC::JSArray::deleteProperty):
2539         (JSC::JSArray::getOwnPropertyNames):
2540         (JSC::JSArray::getNewVectorLength):
2541         (JSC::JSArray::increaseVectorLength):
2542         (JSC::JSArray::increaseVectorPrefixLength):
2543         (JSC::JSArray::setLength):
2544         (JSC::JSArray::pop):
2545         (JSC::JSArray::push):
2546         (JSC::JSArray::shiftCount):
2547         (JSC::JSArray::unshiftCount):
2548         (JSC::JSArray::sortNumeric):
2549         (JSC::JSArray::sort):
2550         (JSC::JSArray::fillArgList):
2551         (JSC::JSArray::copyToRegisters):
2552         (JSC::JSArray::compactForSorting):
2553         (JSC::JSArray::subclassData):
2554         (JSC::JSArray::setSubclassData):
2555         (JSC::JSArray::checkConsistency):
2556         * runtime/JSArray.h:
2557         (JSC::JSArray::length):
2558         (JSC::JSArray::canGetIndex):
2559         (JSC::JSArray::getIndex):
2560         (JSC::JSArray::setIndex):
2561         (JSC::JSArray::uncheckedSetIndex):
2562         (JSC::JSArray::arrayStorage):
2563         (JSC::JSArray::setArrayStorage):
2564         (JSC::JSArray::markChildrenDirect):
2565
2566 2010-07-29  Michael Saboff  <msaboff@apple.com>
2567
2568         Reviewed by Darin Adler.
2569
2570         Changed MINIMUM_CELL_SIZE to be fixed at 64 bytes.
2571
2572         * runtime/Collector.h:
2573
2574 2010-07-28  Dumitru Daniliuc  <dumi@chromium.org>
2575
2576         Reviewed by David Levin.
2577
2578         Added a yield() function.
2579         https://bugs.webkit.org/show_bug.cgi?id=42843
2580
2581         * JavaScriptCore.exp:
2582         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
2583         * wtf/Threading.h:
2584         * wtf/ThreadingPthreads.cpp:
2585         (WTF::yield):
2586         * wtf/ThreadingWin.cpp:
2587         (WTF::yield):
2588         * wtf/gtk/ThreadingGtk.cpp:
2589         (WTF::yield):
2590         * wtf/qt/ThreadingQt.cpp:
2591         (WTF::yield):
2592
2593 2010-07-29  Michael Saboff  <msaboff@apple.com>
2594
2595         Reviewed by Oliver Hunt.
2596
2597         Fixed issue where RegExp greedy jit code loops when no input is
2598         consumed.  Changed the code to only loop if some input was consumed,
2599         but fall through if we successfully match an alternative that 
2600         doesn't consume any input.
2601         https://bugs.webkit.org/show_bug.cgi?id=42664
2602
2603         * yarr/RegexJIT.cpp:
2604         (JSC::Yarr::RegexGenerator::generateParenthesesGreedyNoBacktrack):
2605
2606 2010-07-29  Gabor Loki  <loki@webkit.org>
2607
2608         Reviewed by Gavin Barraclough.
2609
2610         Avoid increasing required alignment of target type warning on ARM
2611         https://bugs.webkit.org/show_bug.cgi?id=38045
2612
2613         The reinterpret_cast<Type1*>([pointer to Type2]) expressions - where
2614         sizeof(Type1) > sizeof(Type2) - cause the following warning on ARM:
2615         increases required alignment of target type warnings.
2616         Casting the type of [pointer to Type2] object to void* bypasses the
2617         warning.
2618
2619         * assembler/ARMAssembler.cpp:
2620         (JSC::ARMAssembler::executableCopy):
2621         * assembler/AssemblerBuffer.h:
2622         (JSC::AssemblerBuffer::putShortUnchecked):
2623         (JSC::AssemblerBuffer::putIntUnchecked):
2624         (JSC::AssemblerBuffer::putInt64Unchecked):
2625         * jit/JITStubs.cpp:
2626         * pcre/pcre_compile.cpp:
2627         (jsRegExpCompile):
2628         * wtf/FastMalloc.cpp:
2629         (WTF::PageHeapAllocator::New):
2630         (WTF::TCMalloc_Central_FreeList::Populate):
2631         * wtf/MD5.cpp:
2632         (WTF::reverseBytes):
2633         (WTF::MD5::addBytes):
2634         (WTF::MD5::checksum):
2635         * wtf/StdLibExtras.h:
2636         (reinterpret_cast_ptr):
2637         * wtf/Vector.h:
2638         (WTF::VectorBuffer::inlineBuffer):
2639         * wtf/qt/StringQt.cpp:
2640         (WebCore::String::String):
2641
2642 2010-07-29  Martin Robinson  <mrobinson@igalia.com>
2643
2644         Unreviewed build fix.
2645
2646         Include a missing header in the source list to fix 'make dist.'
2647
2648         * GNUmakefile.am: Include missing header.
2649
2650 2010-07-28  Gavin Barraclough  <barraclough@apple.com>
2651
2652         Reviewed by Darin Adler.
2653
2654         Bug 43162 - Add support for MADV_FREE to PageAllocation.
2655
2656         * wtf/PageAllocation.cpp:
2657         (WTF::PageAllocation::commit):
2658         (WTF::PageAllocation::decommit):
2659
2660 2010-07-27  Kinuko Yasuda  <kinuko@chromium.org>
2661
2662         Reviewed by Ojan Vafai.
2663
2664         Add FILE_SYSTEM build flag for FileSystem API
2665         https://bugs.webkit.org/show_bug.cgi?id=42915
2666
2667         * Configurations/FeatureDefines.xcconfig:
2668
2669 2010-07-27  Gavin Barraclough  <barraclough@apple.com>
2670
2671         Temporarily rolling out http://trac.webkit.org/changeset/64177,
2672         this seems to give QT ARM/Win a headache (specifically, looks
2673         like structure layour differs, objects get too large - 
2674         "..\..\..\JavaScriptCore\runtime\ArrayPrototype.cpp:41:"
2675         "error: size of array 'dummyclass_fits_in_cell' is negative").
2676
2677         * jit/JITPropertyAccess.cpp:
2678         (JSC::JIT::emit_op_get_by_val):
2679         (JSC::JIT::emit_op_put_by_val):
2680         (JSC::JIT::privateCompilePatchGetArrayLength):
2681         * jit/JITPropertyAccess32_64.cpp:
2682         (JSC::JIT::emit_op_get_by_val):
2683         (JSC::JIT::emit_op_put_by_val):
2684         (JSC::JIT::privateCompilePatchGetArrayLength):
2685         * runtime/ArrayPrototype.cpp:
2686         (JSC::arrayProtoFuncShift):
2687         (JSC::arrayProtoFuncSplice):
2688         (JSC::arrayProtoFuncUnShift):
2689         * runtime/JSArray.cpp:
2690         (JSC::increasedVectorLength):
2691         (JSC::JSArray::JSArray):
2692         (JSC::JSArray::~JSArray):
2693         (JSC::JSArray::getOwnPropertySlot):
2694         (JSC::JSArray::getOwnPropertyDescriptor):
2695         (JSC::JSArray::put):
2696         (JSC::JSArray::putSlowCase):
2697         (JSC::JSArray::deleteProperty):
2698         (JSC::JSArray::getOwnPropertyNames):
2699         (JSC::JSArray::increaseVectorLength):
2700         (JSC::JSArray::setLength):
2701         (JSC::JSArray::pop):
2702         (JSC::JSArray::push):
2703         (JSC::JSArray::sortNumeric):
2704         (JSC::JSArray::sort):
2705         (JSC::JSArray::fillArgList):
2706         (JSC::JSArray::copyToRegisters):
2707         (JSC::JSArray::compactForSorting):
2708         (JSC::JSArray::subclassData):
2709         (JSC::JSArray::setSubclassData):
2710         (JSC::JSArray::checkConsistency):
2711         * runtime/JSArray.h:
2712         (JSC::JSArray::length):
2713         (JSC::JSArray::canGetIndex):
2714         (JSC::JSArray::getIndex):
2715         (JSC::JSArray::setIndex):
2716         (JSC::JSArray::uncheckedSetIndex):
2717         (JSC::JSArray::markChildrenDirect):
2718
2719 2010-07-27  Gavin Barraclough  <barraclough@apple.com>
2720
2721         Speculative build fix for Chromium/Win
2722
2723         * wtf/Platform.h:
2724
2725 2010-07-27  Gavin Barraclough  <barraclough@apple.com>
2726
2727         Oh! that makes more sense!  Maybe C++-style comments are bringing teh bad mojo.
2728
2729         * wtf/Platform.h:
2730
2731 2010-07-27  Gavin Barraclough  <barraclough@apple.com>
2732
2733         Speculative build fix for GTK/64 ... seems to be barfing on a comment o_O
2734
2735         * wtf/Platform.h:
2736
2737 2010-07-27  Michael Saboff  <msaboff@apple.com>
2738
2739         Reviewed by Gavin Barraclough.
2740
2741         Changed the handling for removing and adding elements at the front
2742         of an array.  The code now keeps a bias that indicates the amount of
2743         JSValue sized holes are prior to the ArrayStorage block.  This means
2744         that shift operations are now memmove's of the header part of
2745         the ArrayStorage and unshift operations are similar, but may require a
2746         realloc first to create the space.  Similar operations are performed
2747         for special cases of splice and slice.
2748         Also optimized the new Array(size) case so that we don't allocate and
2749         initialize array elements until the JS code starts using elements.
2750         The array growth code is slightly more aggressive for initial growth
2751         based on size growth of any previous array.
2752
2753         * Configurations/JavaScriptCore.xcconfig:
2754         * jit/JITPropertyAccess.cpp:
2755         (JSC::JIT::emit_op_get_by_val):
2756         (JSC::JIT::emit_op_put_by_val):
2757         (JSC::JIT::privateCompilePatchGetArrayLength):
2758         * jit/JITPropertyAccess32_64.cpp:
2759         (JSC::JIT::emit_op_get_by_val):
2760         (JSC::JIT::emit_op_put_by_val):
2761         (JSC::JIT::privateCompilePatchGetArrayLength):
2762         * runtime/ArrayPrototype.cpp:
2763         (JSC::arrayProtoFuncShift):
2764         (JSC::arrayProtoFuncSplice):
2765         (JSC::arrayProtoFuncUnShift):
2766         * runtime/JSArray.cpp:
2767         (JSC::JSArray::JSArray):
2768         (JSC::JSArray::~JSArray):
2769         (JSC::JSArray::getOwnPropertySlot):
2770         (JSC::JSArray::getOwnPropertyDescriptor):
2771         (JSC::JSArray::put):
2772         (JSC::JSArray::putSlowCase):
2773         (JSC::JSArray::deleteProperty):
2774         (JSC::JSArray::getOwnPropertyNames):
2775         (JSC::JSArray::getNewVectorLength):
2776         (JSC::JSArray::increaseVectorLength):
2777         (JSC::JSArray::increaseVectorPrefixLength):
2778         (JSC::JSArray::setLength):
2779         (JSC::JSArray::pop):
2780         (JSC::JSArray::push):
2781         (JSC::JSArray::shiftCount):
2782         (JSC::JSArray::unshiftCount):
2783         (JSC::JSArray::sortNumeric):
2784         (JSC::JSArray::sort):
2785         (JSC::JSArray::fillArgList):
2786         (JSC::JSArray::copyToRegisters):
2787         (JSC::JSArray::compactForSorting):
2788         (JSC::JSArray::subclassData):
2789         (JSC::JSArray::setSubclassData):
2790         (JSC::JSArray::checkConsistency):
2791         * runtime/JSArray.h:
2792         (JSC::JSArray::length):
2793         (JSC::JSArray::canGetIndex):
2794         (JSC::JSArray::getIndex):
2795         (JSC::JSArray::setIndex):
2796         (JSC::JSArray::uncheckedSetIndex):
2797         (JSC::JSArray::arrayStorage):
2798         (JSC::JSArray::setArrayStorage):
2799         (JSC::JSArray::markChildrenDirect):
2800
2801 2010-07-27  Gavin Barraclough  <barraclough@apple.com>
2802
2803         Reviewed by Oliver Hunt.
2804
2805         Bug 43089 - Cleanup JIT related switched in Platform.h
2806
2807         The code the enable to JIT checks every permutation of platform & OS individually, but
2808         now the JIT is enabled on the majority much all x86/x86-64/ARM/MIPS systems.  It should
2809         be cleaner to just enable by default on these platforms, and explicitly disable on configs
2810         that don't aren't supported.
2811
2812         Also, rename ENABLE_JIT_OPTIMIZE_MOD to ENABLE_JIT_USE_SOFT_MODULO.  I always find this
2813         confusing since enabling this "optimization" would be possible, but would be a regression
2814         on x86/x86-64 systems!  I think it's clearer to reserve "JIT_OPTIMIZE" for compiler
2815         technologies applicable to all platforms, and make a more optional behaviour like this a
2816         "USE".
2817
2818         * jit/ExecutableAllocator.h:
2819         (JSC::ExecutableAllocator::cacheFlush):
2820         * jit/JIT.h:
2821         * jit/JITArithmetic.cpp:
2822         (JSC::JIT::emit_op_mod):
2823         (JSC::JIT::emitSlow_op_mod):
2824         * jit/JITArithmetic32_64.cpp:
2825         (JSC::JIT::emit_op_mod):
2826         (JSC::JIT::emitSlow_op_mod):
2827         * jit/JITOpcodes.cpp:
2828         (JSC::JIT::privateCompileCTIMachineTrampolines):
2829         * jit/JITOpcodes32_64.cpp:
2830         (JSC::JIT::privateCompileCTIMachineTrampolines):
2831         * wtf/Platform.h:
2832
2833 2010-07-27  James Robinson  <jamesr@chromium.org>
2834
2835         Reviewed by Darin Fisher.
2836
2837         [chromium] Make PLATFORM(CHROMIUM) and not OS(MAC) turn USE(GLES2_RENDERING) on
2838         https://bugs.webkit.org/show_bug.cgi?id=43084
2839
2840         This turns USE(GLES2_RENDERING) on for chromium on windows/linux.  This causes no
2841         change in behavior, that's all controlled by ENABLE() macros that are currently off.
2842
2843         * wtf/Platform.h:
2844
2845 2010-07-23  Helder Correia  <heldercorreia@codeaurora.org>
2846
2847         Reviewed by Darin Adler.
2848
2849         Canvas tests 2d.imageData.object.round and 2d.imageData.object.wrap are
2850         failing. For canvas image data manipulation, the values passed should
2851         be truncated and wrapped. Also fix the canvas-ImageData-behaviour test
2852         to expect wrapping rather than clamping, and add some new checkings.
2853         https://bugs.webkit.org/show_bug.cgi?id=40272
2854
2855         * runtime/JSByteArray.h:
2856         (JSC::JSByteArray::setIndex):
2857         (JSC::JSByteArray::JSByteArray):
2858
2859 2010-07-27  Gavin Barraclough  <barraclough@apple.com>
2860
2861         Reviewed by Oliver Hunt.
2862
2863         Bug 42621 - Add a bump allocator for the YARR interpreter
2864
2865         The regex engine requires lifo allocation, however currently uses the general purpose
2866         malloc/free memory allocation.  A simple bump pointer allocator should provide a lower
2867         overhead allocation solution.
2868
2869         When using YARR interpreter, 15% progression on v8-regex.
2870
2871         * JavaScriptCore.xcodeproj/project.pbxproj:
2872         * runtime/JSGlobalData.h:
2873         * runtime/RegExp.cpp:
2874         (JSC::RegExp::compile):
2875         * wtf/BumpPointerAllocator.h: Added.
2876         (WTF::BumpPointerPool::ensureCapacity):
2877         (WTF::BumpPointerPool::alloc):
2878         (WTF::BumpPointerPool::dealloc):
2879         (WTF::BumpPointerPool::operator new):
2880         (WTF::BumpPointerPool::BumpPointerPool):
2881         (WTF::BumpPointerPool::create):
2882         (WTF::BumpPointerPool::shrink):
2883         (WTF::BumpPointerPool::destroy):
2884         (WTF::BumpPointerPool::ensureCapacityCrossPool):
2885         (WTF::BumpPointerPool::deallocCrossPool):
2886         (WTF::BumpPointerAllocator::BumpPointerAllocator):
2887         (WTF::BumpPointerAllocator::~BumpPointerAllocator):
2888         (WTF::BumpPointerAllocator::startAllocator):
2889         (WTF::BumpPointerAllocator::stopAllocator):
2890         * yarr/RegexInterpreter.cpp:
2891         (JSC::Yarr::Interpreter::allocDisjunctionContext):
2892         (JSC::Yarr::Interpreter::freeDisjunctionContext):
2893         (JSC::Yarr::Interpreter::allocParenthesesDisjunctionContext):
2894         (JSC::Yarr::Interpreter::freeParenthesesDisjunctionContext):
2895         (JSC::Yarr::Interpreter::interpret):
2896         (JSC::Yarr::Interpreter::Interpreter):
2897         (JSC::Yarr::ByteCompiler::compile):
2898         (JSC::Yarr::byteCompileRegex):
2899         * yarr/RegexInterpreter.h:
2900         (JSC::Yarr::BytecodePattern::BytecodePattern):
2901
2902 2010-07-26  Gavin Barraclough  <barraclough@apple.com>
2903
2904         Windows build fix from Chromium/GTK build fix!
2905
2906         * wtf/PageAllocation.cpp:
2907
2908 2010-07-26  Gavin Barraclough  <barraclough@apple.com>
2909
2910         Chromium/GTK build fix
2911
2912         * wtf/PageAllocation.cpp:
2913
2914 2010-07-26  Gavin Barraclough  <barraclough@apple.com>
2915
2916         Build fix for !Mac platforms.
2917
2918         * Android.mk:
2919         * CMakeLists.txt:
2920         * GNUmakefile.am:
2921         * JavaScriptCore.gypi:
2922         * JavaScriptCore.pro:
2923         * JavaScriptCore.vcproj/WTF/WTF.vcproj:
2924
2925 2010-07-26  Gavin Barraclough  <barraclough@apple.com>
2926
2927         Reviewed by Oliver Hunt.
2928
2929         Bug 43009 - Abstract out page allocation from executable allocators
2930
2931         It would be great to have a single platform abstraction for block allocation, rather than copy/paste code.
2932
2933         In this initial implementation I've made Symbian fall back to use malloc/free for non-executable memory.
2934         I think this will match current behaviour for the next client we will want to port across (RegisterFile &
2935         Collector).
2936
2937         * CMakeListsEfl.txt:
2938         * GNUmakefile.am:
2939         * JavaScriptCore.gypi:
2940         * JavaScriptCore.pro:
2941         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
2942         * JavaScriptCore.xcodeproj/project.pbxproj:
2943         * jit/ExecutableAllocator.cpp:
2944         (JSC::ExecutableAllocator::intializePageSize):
2945         (JSC::ExecutablePool::systemAlloc):
2946         (JSC::ExecutablePool::systemRelease):
2947         (JSC::ExecutableAllocator::isValid):
2948         * jit/ExecutableAllocator.h:
2949         (JSC::ExecutablePool::ExecutablePool):
2950         (JSC::ExecutablePool::poolAllocate):
2951         * jit/ExecutableAllocatorFixedVMPool.cpp:
2952         (JSC::FixedVMPoolAllocator::release):
2953         (JSC::FixedVMPoolAllocator::reuse):
2954         (JSC::FixedVMPoolAllocator::FixedVMPoolAllocator):
2955         (JSC::FixedVMPoolAllocator::alloc):
2956         (JSC::FixedVMPoolAllocator::free):
2957         (JSC::FixedVMPoolAllocator::isValid):
2958         (JSC::FixedVMPoolAllocator::isWithinVMPool):
2959         (JSC::ExecutablePool::systemAlloc):
2960         (JSC::ExecutablePool::systemRelease):
2961         * jit/ExecutableAllocatorPosix.cpp: Removed.
2962         * jit/ExecutableAllocatorSymbian.cpp: Removed.
2963         * jit/ExecutableAllocatorWin.cpp: Removed.
2964         * wscript:
2965         * wtf/PageAllocator.cpp: Added.
2966         (WTF::protection):
2967         (WTF::PageAllocation::commit):
2968         (WTF::PageAllocation::decommit):
2969         (WTF::PageAllocator::allocate):
2970         (WTF::PageAllocator::reserve):
2971         (WTF::PageAllocator::deallocate):
2972         (WTF::PageAllocator::pagesize):
2973         * wtf/PageAllocator.h: Added.
2974         (WTF::PageAllocation::PageAllocation):
2975         (WTF::PageAllocation::base):
2976         (WTF::PageAllocation::size):
2977         (WTF::PageAllocation::chunk):
2978         (WTF::PageAllocation::operator!):
2979         (WTF::PageAllocator::):
2980
2981 2010-07-26  Gavin Barraclough  <barraclough@apple.com>
2982
2983         Rolling out r64097:64100, oops, more b0rked than I relized by my last changes, sorry!
2984
2985         * CMakeListsEfl.txt:
2986         * GNUmakefile.am:
2987         * JavaScriptCore.gypi:
2988         * JavaScriptCore.pro:
2989         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
2990         * JavaScriptCore.xcodeproj/project.pbxproj:
2991         * jit/ExecutableAllocator.cpp:
2992         (JSC::ExecutableAllocator::reprotectRegion):
2993         (JSC::ExecutableAllocator::cacheFlush):
2994         * jit/ExecutableAllocator.h:
2995         (JSC::ExecutablePool::ExecutablePool):
2996         (JSC::ExecutablePool::poolAllocate):
2997         * jit/ExecutableAllocatorFixedVMPool.cpp:
2998         (JSC::FixedVMPoolAllocator::release):
2999         (JSC::FixedVMPoolAllocator::reuse):
3000         (JSC::FixedVMPoolAllocator::FixedVMPoolAllocator):
3001         (JSC::FixedVMPoolAllocator::alloc):
3002         (JSC::FixedVMPoolAllocator::free):
3003         (JSC::FixedVMPoolAllocator::isValid):
3004         (JSC::FixedVMPoolAllocator::isWithinVMPool):
3005         (JSC::ExecutablePool::systemAlloc):
3006         (JSC::ExecutablePool::systemRelease):
3007         * jit/ExecutableAllocatorPosix.cpp: Added.
3008         (JSC::ExecutableAllocator::intializePageSize):
3009         (JSC::ExecutablePool::systemAlloc):
3010         (JSC::ExecutablePool::systemRelease):
3011         (JSC::ExecutableAllocator::isValid):
3012         * jit/ExecutableAllocatorSymbian.cpp: Added.
3013         (JSC::ExecutableAllocator::intializePageSize):
3014         (JSC::ExecutablePool::systemAlloc):
3015         (JSC::ExecutablePool::systemRelease):
3016         (JSC::ExecutableAllocator::isValid):
3017         * jit/ExecutableAllocatorWin.cpp: Added.
3018         (JSC::ExecutableAllocator::intializePageSize):
3019         (JSC::ExecutablePool::systemAlloc):
3020         (JSC::ExecutablePool::systemRelease):
3021         (JSC::ExecutableAllocator::isValid):
3022         * wscript:
3023         * wtf/PageAllocation.cpp: Removed.
3024         * wtf/PageAllocation.h: Removed.
3025
3026 2010-07-26  Gavin Barraclough  <barraclough@apple.com>
3027
3028         Speculative !debug build fix II.
3029
3030         * wtf/PageAllocation.h:
3031         (WTF::PageAllocation::PageAllocation):
3032
3033 2010-07-26  Gavin Barraclough  <barraclough@apple.com>
3034
3035         Speculative !debug build fix.
3036
3037         * wtf/PageAllocation.h:
3038         (WTF::PageAllocation::PageAllocation):
3039
3040 2010-07-26  Gavin Barraclough  <barraclough@apple.com>
3041
3042         Reviewed by Oliver Hunt.
3043
3044         Bug 43009 - Abstract out page allocation from executable allocators
3045
3046         It would be great to have a single platform abstraction for block allocation, rather than copy/paste code.
3047
3048         In this initial implementation I've made Symbian fall back to use malloc/free for non-executable memory.
3049         I think this will match current behaviour for the next client we will want to port across (RegisterFile &
3050         Collector).
3051
3052         * CMakeListsEfl.txt:
3053         * GNUmakefile.am:
3054         * JavaScriptCore.gypi:
3055         * JavaScriptCore.pro:
3056         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
3057         * JavaScriptCore.xcodeproj/project.pbxproj:
3058         * jit/ExecutableAllocator.cpp:
3059         (JSC::ExecutableAllocator::intializePageSize):
3060         (JSC::ExecutablePool::systemAlloc):
3061         (JSC::ExecutablePool::systemRelease):
3062         (JSC::ExecutableAllocator::isValid):
3063         * jit/ExecutableAllocator.h:
3064         (JSC::ExecutablePool::ExecutablePool):
3065         (JSC::ExecutablePool::poolAllocate):
3066         * jit/ExecutableAllocatorFixedVMPool.cpp:
3067         (JSC::FixedVMPoolAllocator::release):
3068         (JSC::FixedVMPoolAllocator::reuse):
3069         (JSC::FixedVMPoolAllocator::FixedVMPoolAllocator):
3070         (JSC::FixedVMPoolAllocator::alloc):
3071         (JSC::FixedVMPoolAllocator::free):
3072         (JSC::FixedVMPoolAllocator::isValid):
3073         (JSC::FixedVMPoolAllocator::isWithinVMPool):
3074         (JSC::ExecutablePool::systemAlloc):
3075         (JSC::ExecutablePool::systemRelease):
3076         * jit/ExecutableAllocatorPosix.cpp: Removed.
3077         * jit/ExecutableAllocatorSymbian.cpp: Removed.
3078         * jit/ExecutableAllocatorWin.cpp: Removed.
3079         * wscript:
3080         * wtf/PageAllocator.cpp: Added.
3081         (WTF::protection):
3082         (WTF::PageAllocation::commit):
3083         (WTF::PageAllocation::decommit):
3084         (WTF::PageAllocator::allocate):
3085         (WTF::PageAllocator::reserve):
3086         (WTF::PageAllocator::deallocate):
3087         (WTF::PageAllocator::pagesize):
3088         * wtf/PageAllocator.h: Added.
3089         (WTF::PageAllocation::PageAllocation):
3090         (WTF::PageAllocation::base):
3091         (WTF::PageAllocation::size):
3092         (WTF::PageAllocation::chunk):
3093         (WTF::PageAllocation::operator!):
3094         (WTF::PageAllocator::):
3095
3096 2009-10-30  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>
3097
3098         Reviewed by Kenneth Rohde Christiansen.
3099
3100         [Qt] Use the default timeout interval for JS as the HTML tokenizer delay for setHtml()
3101
3102         This ensures that long-running JavaScript (for example due to a modal alert() dialog),
3103         will not trigger a deferred load after only 500ms (the default tokenizer delay) while
3104         still giving a reasonable timeout (10 seconds) to prevent deadlock.
3105
3106         https://bugs.webkit.org/show_bug.cgi?id=29381
3107
3108         * runtime/TimeoutChecker.h: Add getter for the timeout interval
3109
3110 2010-07-25  Patrick Gansterer  <paroga@paroga.com>
3111
3112         Reviewed by Kent Tamura.
3113
3114         [WINCE] Buildfix for JSC in release mode
3115         https://bugs.webkit.org/show_bug.cgi?id=42934
3116
3117         * jsc.cpp: Don't use __try on WinCE.
3118
3119 2010-07-24  Patrick Gansterer  <paroga@paroga.com>
3120
3121         Reviewed by Darin Adler.
3122
3123         [MSVC] Ensure 4 byte alignment on ARM
3124         https://bugs.webkit.org/show_bug.cgi?id=42935
3125
3126         * jit/JITStubs.h: Added #pragma pack(4) around JITStackFrame.
3127
3128 2010-07-24  Patrick Gansterer  <paroga@paroga.com>
3129
3130         Reviewed by Darin Adler.
3131
3132         [WINCE] Cleanup defines in Platform.h
3133         https://bugs.webkit.org/show_bug.cgi?id=42933
3134
3135         * wtf/Platform.h:
3136
3137 2010-07-23  Rafael Antognolli  <antognolli@profusion.mobi>
3138
3139         Reviewed by Antonio Gomes.
3140
3141         [EFL] Cleanup glib support (make it optional)
3142         https://bugs.webkit.org/show_bug.cgi?id=42480
3143
3144         Remove gobject/GRefPtr.cpp if not using soup/glib.
3145
3146         * wtf/CMakeListsEfl.txt:
3147
3148 2010-07-23  Patrick Gansterer  <paroga@paroga.com>
3149
3150         Reviewed by Adam Roben.
3151
3152         [WINCE] Implement TCSpinLock.
3153         https://bugs.webkit.org/show_bug.cgi?id=41792
3154
3155         Implement the SpinLock with InterlockedExchange from the Windows API.
3156
3157         * wtf/TCSpinLock.h:
3158         (TCMalloc_SpinLock::Lock):
3159         (TCMalloc_SpinLock::Unlock):
3160         (TCMalloc_SpinLock::IsHeld):
3161         (TCMalloc_SpinLock::Init):
3162         (TCMalloc_SlowLock):
3163
3164 2010-07-22  Csaba Osztrogonác  <ossy@webkit.org>
3165
3166         Unreviewed rolling out r63947 and r63948, because they broke Qt Windows build.
3167
3168         * jit/JITStubs.cpp:
3169         * jit/JITStubs.h:
3170
3171 2010-07-22  Gavin Barraclough  <barraclough@apple.com>
3172
3173         Eeeep! r63947 hosed all non-x86 builds!
3174
3175         * jit/JITStubs.h:
3176
3177 2010-07-22  Gavin Barraclough  <barraclough@apple.com>
3178
3179         Reviewed by Oliver Hunt.
3180
3181         Bug 42818 - [Qt] REGRESSION(63348): jsc is broken
3182         Speculative fix, need fastcall conventions on Qt/Win.
3183
3184         * jit/JITStubs.cpp:
3185         * jit/JITStubs.h:
3186
3187 2010-07-22  Oliver Hunt  <oliver@apple.com>
3188
3189         Reviewed by Gavin Barraclough.
3190
3191         Do more constant folding
3192         https://bugs.webkit.org/show_bug.cgi?id=42867
3193
3194         Constant fold a few more operations.  SunSpider says this is
3195         a win but I suspect that's just code motion at play.
3196
3197         * parser/ASTBuilder.h:
3198         (JSC::ASTBuilder::makeModNode):
3199         (JSC::ASTBuilder::makeURightShiftNode):
3200         (JSC::ASTBuilder::makeBitOrNode):
3201         (JSC::ASTBuilder::makeBitAndNode):
3202         (JSC::ASTBuilder::makeBitXOrNode):
3203         (JSC::ASTBuilder::makeBinaryNode):
3204
3205 2010-07-22  Kent Hansen  <kent.hansen@nokia.com>
3206
3207         Reviewed by Kent Tamura.
3208
3209         Error properties of the Global Object are missing the DontEnum attribute
3210         https://bugs.webkit.org/show_bug.cgi?id=28771
3211
3212         Add the attributes to become spec compliant.
3213
3214         * runtime/JSGlobalObject.cpp:
3215         (JSC::JSGlobalObject::reset):
3216
3217 2010-07-20  Steve Falkenburg  <sfalken@apple.com>
3218
3219         Reviewed by Adam Roben.
3220
3221         WebKit on Windows should build optionally with an unversioned ICU DLL
3222         https://bugs.webkit.org/show_bug.cgi?id=42722
3223         <rdar://problem/8211743> JavaScriptCore needs to link against unversioned ICU
3224         
3225         Dynamically create a new header, ICUVersion.h, as part of build-generated-files.sh.
3226         Header contains a preprocessor define (U_DISABLE_RENAMING) indicating to ICU whether the ICU API
3227         should be namespaced with the current ICU version number. Proper value is determined
3228         by checking for the presence of libicuuc.lib, the unversioned copy of ICU.
3229         
3230         To get the proper value for U_DISABLE_RENAMING into all source files, we force
3231         the include of ICUVersion.h (our generated header) via the compiler options.
3232         
3233         Since the versioned and unversioned ICU have different filenames (libicuuc.lib vs icuuc.lib)
3234         we copy the ICU lib to an intermediate location under obj with a common name. This
3235         allows us to link properly with either without adding a new build configuration.
3236
3237         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreCommon.vsprops:
3238         Copy ICU libs into a common location with a common name.
3239         Add additional library search path to pick up icu lib.
3240         Change ICU library filename specified to linker.
3241         Add forced include of ICUVersion.h.
3242         * JavaScriptCore.vcproj/JavaScriptCore/build-generated-files.sh: Generate ICUVersion.h
3243         * JavaScriptCore.vcproj/WTF/WTFCommon.vsprops: Add forced include of ICUVersion.h.
3244         * JavaScriptCore.vcproj/jsc/jscCommon.vsprops:
3245         Copy ICU libs into a common location with a common name.
3246         Add additional library search path to pick up icu lib.
3247         Change ICU library filename specified to linker.
3248         Add forced include of ICUVersion.h.
3249         * JavaScriptCore.vcproj/testapi/testapiCommon.vsprops:
3250         Copy ICU libs into a common location with a common name.
3251         Add additional library search path to pick up icu lib.
3252         Change ICU library filename specified to linker.
3253         Add forced include of ICUVersion.h.
3254
3255 2010-07-20  Steve Falkenburg  <sfalken@apple.com>
3256
3257         Re-save vsprops files after no-op edits in Visual Studio
3258         to fix manual edit issues.
3259
3260 2010-07-20  Mahesh Kulkarni  <mahesh.kulkarni@nokia.com>
3261
3262         Reviewed by Steve Block.
3263
3264         Need to be able to configure Geolocation policy regarding user permissions
3265         https://bugs.webkit.org/show_bug.cgi?id=42068
3266
3267         If CLIENT_BASED_GEOLOCATION is enabled, enable preemtive permission policy
3268         by default 
3269
3270         * wtf/Platform.h:
3271         
3272 2010-07-20  Sheriff Bot  <webkit.review.bot@gmail.com>
3273
3274         Unreviewed, rolling out r63742.
3275         http://trac.webkit.org/changeset/63742
3276         https://bugs.webkit.org/show_bug.cgi?id=42641
3277
3278         Broke Leopard Intel build. (Requested by bbandix on #webkit).
3279
3280         * wtf/Platform.h:
3281
3282 2010-07-20  Mahesh Kulkarni  <mahesh.kulkarni@nokia.com>
3283
3284         Reviewed by Steve Block.
3285
3286         Need to be able to configure Geolocation policy regarding user permissions
3287         https://bugs.webkit.org/show_bug.cgi?id=42068
3288
3289         If CLIENT_BASED_GEOLOCATION is enabled, enable preemtive permission policy
3290         by default 
3291
3292         * wtf/Platform.h:
3293         
3294 2010-07-19  Dirk Schulze  <krit@webkit.org>
3295
3296         Reviewed by Nikolas Zimmermann.
3297
3298         SVG CleanUp of SVGPathData parsing
3299         https://bugs.webkit.org/show_bug.cgi?id=41410
3300
3301         Added piOverTwo to MathExtras.
3302
3303         * wtf/MathExtras.h:
3304
3305 2010-07-19  Mike Moretti  <mike.moretti@nokia.com>
3306
3307         Reviewed by Laszlo Gombos.
3308
3309         [Symbian] Build fix after r63404.
3310
3311         Implement isValid() function for the Symbian executable allocator.
3312
3313         * jit/ExecutableAllocatorSymbian.cpp:
3314         (JSC::ExecutableAllocator::isValid):
3315
3316 2010-07-19  Chris Marrin  <cmarrin@apple.com>
3317
3318         Reviewed by Darin Adler.
3319
3320         https://bugs.webkit.org/show_bug.cgi?id=42118
3321         Disable WebGL on Leopard for now. 
3322
3323         LayoutTests fail on some graphics hardware on Leopard because one of the features we use,
3324         GL_ARB_framebuffer_object, is not universally available in Leopard like it is in
3325         SnowLeopard. This will allow LayoutTests to pass on Leopard until we add logic to use a
3326         software OpenGL driver on machines without this support.
3327
3328         * Configurations/FeatureDefines.xcconfig:
3329
3330 2010-07-16  Darin Adler  <darin@apple.com>
3331
3332         Reviewed by Sam Weinig.
3333
3334         Use OwnPtr for CodeBlock objects
3335         https://bugs.webkit.org/show_bug.cgi?id=42490
3336
3337         * runtime/Executable.cpp:
3338         (JSC::EvalExecutable::EvalExecutable): Moved this here and made it non-inline.
3339         Eliminated the code that used to initialize the raw pointer since it's now
3340         an OwnPtr.
3341         (JSC::EvalExecutable::~EvalExecutable): Removed the explicit delete here.
3342         (JSC::ProgramExecutable::ProgramExecutable): Ditto.
3343         (JSC::ProgramExecutable::~ProgramExecutable): Ditto.
3344         (JSC::FunctionExecutable::FunctionExecutable): Ditto.
3345         (JSC::FunctionExecutable::~FunctionExecutable): Ditto.
3346         (JSC::EvalExecutable::compileInternal): Added use of adoptPtr and get.
3347         (JSC::ProgramExecutable::compileInternal): Ditto.
3348         (JSC::FunctionExecutable::compileForCallInternal): Ditto.
3349         (JSC::FunctionExecutable::compileForConstructInternal): Ditto.
3350         (JSC::FunctionExecutable::recompile): Use clear instead of delete followed
3351         by assignment of 0.
3352
3353         * runtime/Executable.h: Moved constructors to the cpp file and changed
3354         raw pointers to OwnPtr.
3355
3356 2010-07-19  Lucas De Marchi  <lucas.demarchi@profusion.mobi>
3357
3358         Reviewed by Kenneth Rohde Christiansen.
3359
3360         [EFL] Fix build on 64-bit systems. According to
3361         JavaScriptCore/wtf/Platform.h, x86_64 uses fixed allocator, which
3362         needs jit/ExecutableAllocatorFixedVMPool.cpp to be included in build
3363         system.
3364         https://bugs.webkit.org/show_bug.cgi?id=42559
3365
3366         * CMakeListsEfl.txt: add missing file for x86_64.
3367
3368 2010-07-16  Leandro Pereira  <leandro@profusion.mobi>
3369
3370         [EFL] Unreviewed build system cleanup.
3371
3372         Move ExecutableAllocator{FixedVMPool,Posix,Symbian,Win}.cpp from
3373         root CMakeLists.txt to the platform CMakeLists.txt.
3374
3375         * CMakeLists.txt:
3376         * CMakeListsEfl.txt: Add ExecutableAllocatorPosix.cpp.
3377
3378 2010-07-16  Oliver Hunt  <oliver@apple.com>
3379
3380         Reviewed by Geoffrey Garen.
3381
3382         ES5 allows use of reserved words as IdentifierName
3383         https://bugs.webkit.org/show_bug.cgi?id=42471
3384
3385         Modify the lexer to allow us to avoid identifying reserved
3386         words in those contexts where they are valid identifiers, and
3387         we know it's safe.  Additionally tag the reserved word tokens
3388         so we can easily identify them in those cases where we can't
3389         guarantee that we've skipped reserved word identification.
3390
3391         * parser/JSParser.cpp:
3392         (JSC::JSParser::next):
3393         (JSC::JSParser::parseProperty):
3394         (JSC::JSParser::parseMemberExpression):
3395         * parser/JSParser.h:
3396         (JSC::):
3397         * parser/Lexer.cpp:
3398         (JSC::Lexer::lex):
3399         * parser/Lexer.h:
3400         (JSC::Lexer::):
3401
3402 2010-07-16  Anders Carlsson  <andersca@apple.com>
3403
3404         Reviewed by Sam Weinig.
3405
3406         clang++ build fixes for JavaScriptCore and WebCore
3407         https://bugs.webkit.org/show_bug.cgi?id=42478
3408
3409         * runtime/RegExpKey.h:
3410         (JSC::operator==):
3411         Move the RegExpKey equals operator into the JSC namespace so it can be found by ADL.
3412
3413 2010-07-16  Anders Carlsson  <andersca@apple.com>
3414
3415         Reviewed by David Levin.
3416
3417         Really add WARN_UNUSED_RESULT to leakRef
3418         https://bugs.webkit.org/show_bug.cgi?id=42464
3419
3420         * wtf/PassRefPtr.h:
3421         (WTF::PassRefPtr::):
3422         (WTF::NonNullPassRefPtr::):
3423         Put the WARN_UNUSED_RESULT attribute at the right place.
3424
3425         * wtf/RetainPtr.h:
3426         (WTF::RetainPtr::releaseRef):
3427         Remove WARN_UNUSED_RESULT here for now, it leads to two warnings that need
3428         to be fixed first.
3429
3430 2010-07-15  Victor Wang  <victorw@chromium.org>
3431
3432         Reviewed by David Levin.
3433
3434         [Chromium] Disable c4291 for chromium windows multi dll build.
3435
3436         https://bugs.webkit.org/show_bug.cgi?id=42177
3437
3438         * JavaScriptCore.gyp/JavaScriptCore.gyp:
3439
3440 2010-07-15  Geoffrey Garen  <ggaren@apple.com>
3441
3442         Reviewed by Maciej Stachowiak.
3443
3444         Crash entering mail.yahoo.com
3445         https://bugs.webkit.org/show_bug.cgi?id=42394
3446     
3447         * bytecompiler/BytecodeGenerator.cpp:
3448         (JSC::BytecodeGenerator::argumentNumberFor): Added a NULL check. If the
3449         identifier we're resolving is not a local variable, registerFor returns
3450         NULL.
3451
3452         * bytecompiler/NodesCodegen.cpp:
3453         (JSC::FunctionBodyNode::emitBytecode): Unrelated to the crash, but I
3454         noticed this while working on it: No need to NULL-check returnNode,
3455         since an early return has already done so.
3456
3457 2010-07-15  Martin Robinson  <mrobinson@igalia.com>
3458
3459         Reviewed by Oliver Hunt.
3460
3461         [GTK] Simplify the distribution step
3462         https://bugs.webkit.org/show_bug.cgi?id=42414
3463
3464         * GNUmakefile.am: Add extra dist files directly to EXTRA_DIST instead
3465         of adding them by proxy via javascriptcore_dist. Sort the EXTRA_DIST list.
3466         Refer to create_hash_table and create_regexp_tables directly, as is the
3467         behavior with other code generation scripts.
3468
3469 2010-07-15  Oliver Hunt  <oliver@apple.com>
3470
3471         Reviewed by Geoff Garen.
3472
3473         Fix dumping of op_put_by_id.
3474
3475         * bytecode/CodeBlock.cpp:
3476         (JSC::CodeBlock::printPutByIdOp):
3477
3478 2010-07-15  Zoltan Herczeg  <zherczeg@webkit.org>
3479
3480         Reviewed by Darin Adler.
3481
3482         Refactoring some parts of the lexer
3483         https://bugs.webkit.org/show_bug.cgi?id=41845
3484
3485         This patch is a precursor of refactoring the identifier
3486         parsing, which currently slows down the lexer, and not
3487         ready for landing. This patch contains those sources,
3488         which does not slow down the lexer (mainly style changes).
3489
3490         SunSpider: no change (529.4ms to 528.7ms)
3491         --parse-only: no change (31.0ms to 31.2ms)
3492
3493         * parser/Lexer.cpp:
3494         (JSC::isIdentStart): using typesOfASCIICharacters to determine
3495              whether the current character is in identifier start
3496         (JSC::isIdentPart): using typesOfASCIICharacters to determine
3497              whether the current character is in identifier part
3498         (JSC::Lexer::parseString): style fix
3499         (JSC::Lexer::lex): removing the else after the main which
3500              which reduces code duplication
3501
3502 2010-07-15  Mark Rowe  <mrowe@apple.com>
3503
3504         Update the sorting in the Xcode project files.
3505
3506         * JavaScriptCore.xcodeproj/project.pbxproj:
3507
3508 2010-07-14  Oliver Hunt  <oliver@apple.com>
3509
3510         Reviewed by Gavin Barraclough.
3511
3512         Make sure that mixed interpreter/jit builds don't try to use the jit if the allocator fails
3513         https://bugs.webkit.org/show_bug.cgi?id=42310
3514
3515         Add some null checks to deal with the Fixed VM allocator failing
3516         to get the requested executable region, delay the creation of the
3517         JITStubs in JSGlobalData until after we know whether we're using
3518         the JIT.
3519
3520         * jit/ExecutableAllocator.h:
3521         (JSC::ExecutableAllocator::ExecutableAllocator):
3522         (JSC::ExecutableAllocator::poolForSize):
3523         * jit/ExecutableAllocatorFixedVMPool.cpp:
3524         (JSC::FixedVMPoolAllocator::FixedVMPoolAllocator):
3525         (JSC::FixedVMPoolAllocator::alloc):
3526         (JSC::FixedVMPoolAllocator::free):
3527         (JSC::FixedVMPoolAllocator::isValid):
3528         (JSC::ExecutableAllocator::isValid):
3529         (JSC::ExecutablePool::systemAlloc):
3530         (JSC::ExecutablePool::systemRelease):
3531         * jit/ExecutableAllocatorPosix.cpp:
3532         (JSC::ExecutableAllocator::isValid):
3533         * jit/ExecutableAllocatorWin.cpp:
3534         (JSC::ExecutableAllocator::isValid):
3535         * jit/JIT.cpp:
3536         (JSC::JIT::linkCall):
3537         (JSC::JIT::linkConstruct):
3538         * jit/JIT.h:
3539         (JSC::JIT::compileCTIMachineTrampolines):
3540         (JSC::JIT::compileCTINativeCall):
3541         * jit/JITArithmetic.cpp:
3542         (JSC::JIT::emit_op_mod):
3543         * jit/JITArithmetic32_64.cpp:
3544         (JSC::JIT::emit_op_mod):
3545         * jit/JITCall.cpp:
3546         (JSC::JIT::compileOpCallVarargs):
3547         (JSC::JIT::compileOpCall):
3548         (JSC::JIT::compileOpCallSlowCase):
3549         * jit/JITCall32_64.cpp:
3550         (JSC::JIT::compileOpCallVarargs):
3551         (JSC::JIT::compileOpCall):
3552         (JSC::JIT::compileOpCallSlowCase):
3553         * jit/JITOpcodes.cpp:
3554         (JSC::JIT::privateCompileCTINativeCall):
3555         * jit/JITStubs.cpp:
3556         (JSC::JITThunks::JITThunks):
3557         (JSC::JITThunks::tryCacheGetByID):
3558         (JSC::JITThunks::hostFunctionStub):
3559         * jit/ThunkGenerators.cpp:
3560         (JSC::charCodeAtThunkGenerator):
3561         (JSC::charAtThunkGenerator):
3562         (JSC::fromCharCodeThunkGenerator):
3563         (JSC::sqrtThunkGenerator):
3564         (JSC::powThunkGenerator):
3565         * runtime/Executable.h:
3566         (JSC::NativeExecutable::create):
3567         * runtime/JSGlobalData.cpp:
3568         (JSC::JSGlobalData::JSGlobalData):
3569         (JSC::JSGlobalData::getHostFunction):
3570         * runtime/JSGlobalData.h:
3571         (JSC::JSGlobalData::getCTIStub):
3572         * yarr/RegexJIT.cpp:
3573         (JSC::Yarr::jitCompileRegex):
3574
3575 2010-07-14  Gavin Barraclough  <barraclough@apple.com>
3576
3577         Speculative Qt/Windows build fix.
3578
3579         * jit/JITStubs.h:
3580
3581 2010-07-14  Gavin Barraclough  <barraclough@apple.com>
3582
3583         Reviewed by Oliver Hunt.
3584
3585         https://bugs.webkit.org/show_bug.cgi?id=42280
3586         JIT_STUB_ARGUMENT_VA_LIST is only slowing us down! Remove it!
3587
3588         * jit/JIT.h:
3589         * jit/JITInlineMethods.h:
3590         (JSC::JIT::restoreArgumentReferenceForTrampoline):
3591         * jit/JITStubs.cpp:
3592         * jit/JITStubs.h:
3593         * wtf/Platform.h:
3594
3595 2010-07-14  Oliver Hunt  <oliver@apple.com>
3596
3597         RS=Geoff Garen.
3598
3599         Guard the CF path of interpreter vs. jit selection with PLATFORM(CF)
3600
3601         This allows the code to work on windows as well.  Also unifies the
3602         environment variable with the preference name.
3603
3604         * runtime/JSGlobalData.cpp:
3605         (JSC::JSGlobalData::JSGlobalData):
3606
3607 2010-07-14  Oliver Hunt  <oliver@apple.com>
3608
3609         Reviewed by Don Melton.
3610
3611         Crash when trying to enable JIT and Interpreter in a single build.
3612
3613         CFPreferences code added at the last minute failed to account for
3614         the preference not being present and then attempted to CFRelease
3615         a null value.
3616
3617         * runtime/JSGlobalData.cpp:
3618         (JSC::JSGlobalData::JSGlobalData):
3619
3620 2010-07-14  Zoltan Herczeg  <zherczeg@webkit.org>
3621
3622         Reviewed by Darin Adler.
3623
3624         Change indentations in the lexer
3625         https://bugs.webkit.org/show_bug.cgi?id=41845
3626
3627         This patch fixes an old, indentation error comes from kjs,
3628         as webkit has a different style rule for switches, and change
3629         the indentation of the main switch, which is a temporary
3630         style error. This change makes easier to see the behavioural
3631         changes in the follow-up patch.
3632
3633         No behavioural changes.
3634
3635         * parser/Lexer.cpp:
3636         (JSC::singleEscape):
3637         (JSC::Lexer::lex):
3638
3639 2010-07-13  Sheriff Bot  <webkit.review.bot@gmail.com>
3640
3641         Unreviewed, rolling out r63262.
3642         http://trac.webkit.org/changeset/63262
3643         https://bugs.webkit.org/show_bug.cgi?id=42229
3644
3645         broke Windows compile (Requested by bweinstein on #webkit).
3646
3647         * API/tests/testapi.c:
3648         (assertEqualsAsCharactersPtr):
3649         (main):
3650         * testapi.pro: Removed.
3651
3652 2010-07-13  Oliver Hunt  <oliver@apple.com>
3653
3654         Reviewed by Gavin Barraclough.
3655