Add additional checks to StringBuffer.
[WebKit-https.git] / JavaScriptCore / ChangeLog
1 2010-09-29  Sam Weinig  <sam@webkit.org>
2
3         Reviewed by Darin Adler.
4
5         Add additional checks to StringBuffer.
6         <rdar://problem/7756381>
7
8         * wtf/text/StringBuffer.h:
9         (WTF::StringBuffer::StringBuffer):
10         (WTF::StringBuffer::resize):
11
12 2010-09-30  Chris Marrin  <cmarrin@apple.com>
13
14         Reviewed by Simon Fraser.
15
16         Make 2D accelerated canvas rendering build on Mac
17         https://bugs.webkit.org/show_bug.cgi?id=46007
18         
19         Added ACCELERATED_2D_CANVAS to FeatureDefines
20
21         * Configurations/FeatureDefines.xcconfig:
22
23 2010-09-30  Kevin Ollivier  <kevino@theolliviers.com>
24
25         [wx] wxMSW build fix. Make sure we copy the compiler flags and remove exception handling from
26         the copy so as not to alter global settings.
27
28         * wscript:
29
30 2010-09-30  Peter Varga  <pvarga@inf.u-szeged.hu>
31
32         Reviewed by Gavin Barraclough.
33
34         The case-insensitivity backreference checking isn't working with YARR
35         Interpreter
36         https://bugs.webkit.org/show_bug.cgi?id=46882
37
38         Add ignorecase checking to the Interpreter::tryConsumeBackReference() function.
39
40         * yarr/RegexInterpreter.cpp:
41         (JSC::Yarr::Interpreter::tryConsumeBackReference):
42
43 2010-09-30  Kwang Yul Seo  <skyul@company100.net>
44
45         Reviewed by Andreas Kling.
46
47         [BREWMP] Leave initializeRandomNumberGenerator empty.
48         https://bugs.webkit.org/show_bug.cgi?id=46851
49
50         On Brew MP, AEECLSID_RANDOM initializes itself.
51
52         * wtf/RandomNumberSeed.h:
53         (WTF::initializeRandomNumberGenerator):
54
55 2010-09-30  Gabor Loki  <loki@webkit.org>
56
57         Reviewed by Csaba Osztrogonác.
58
59         Remove unnecessary cacheFlush calls from Thumb-2
60         https://bugs.webkit.org/show_bug.cgi?id=46702
61
62         * assembler/ARMv7Assembler.h:
63         (JSC::ARMv7Assembler::relinkCall):
64         (JSC::ARMv7Assembler::repatchInt32):
65         (JSC::ARMv7Assembler::repatchPointer):
66
67 2010-09-29  Patrick Gansterer  <paroga@webkit.org>
68
69         Unreviewed.
70
71         Next try to fix cygwin build.
72
73         * wtf/Assertions.cpp:
74
75 2010-09-29  Patrick Gansterer  <paroga@webkit.org>
76
77         Unreviewed.
78
79         Build fix for cygwin #2. It's OS(WINDOWS), not OS(WIN).
80
81         * wtf/Assertions.cpp:
82
83 2010-09-29  Patrick Gansterer  <paroga@webkit.org>
84
85         Unreviewed.
86
87         Build fix for cygwin.
88
89         * wtf/Assertions.cpp:
90
91 2010-09-29  Patrick Gansterer  <paroga@webkit.org>
92
93         Reviewed by Andreas Kling.
94
95         [WINCE] Buildfix for Assertions.cpp after r68511.
96         https://bugs.webkit.org/show_bug.cgi?id=46807
97
98         Some, but not all WinCE environments have support for IsDebuggerPresent().
99         Add HAVE(ISDEBUGGERPRESENT) to make this a build option.
100         HAVE(ISDEBUGGERPRESENT) will be 1 for all OS(WIN) by default.
101
102         * wtf/Assertions.cpp:
103         * wtf/Platform.h:
104
105 2010-09-29  Peter Varga  <pvarga@inf.u-szeged.hu>
106
107         Reviewed by Csaba Osztrogonác.
108
109         JSC compile fails on 32bit platform when Regexp Tracing is enabled
110         https://bugs.webkit.org/show_bug.cgi?id=46713
111
112         Fix the cast of pointer in regexp tracing to avoid the warning.
113
114         * runtime/RegExp.cpp:
115         (JSC::RegExp::match):
116
117 2010-09-28  Anders Carlsson  <andersca@apple.com>
118
119         Reviewed by Sam Weinig.
120
121         Begin hooking up painting in the plug-in process
122         https://bugs.webkit.org/show_bug.cgi?id=46766
123
124         * JavaScriptCore.exp:
125         Add tryFastRealloc, used by WebKit2.
126
127 2010-09-28  Philippe Normand  <pnormand@igalia.com>
128
129         Reviewed by Martin Robinson.
130
131         Guard GRefPtr/GOwnPtr files with ENABLE(GLIB_SUPPORT)
132         https://bugs.webkit.org/show_bug.cgi?id=46721
133
134         Enable GOwnPtr/GRefPtr build only if glib support has been
135         explicitly enabled using the WTF_ENABLE_GLIB_SUPPORT macro.
136
137         * wtf/gobject/GOwnPtr.cpp:
138         * wtf/gobject/GOwnPtr.h:
139         * wtf/gobject/GRefPtr.cpp:
140         * wtf/gobject/GRefPtr.h:
141
142 2010-09-28  İsmail Dönmez  <ismail@namtrac.org>
143
144         Reviewed by Andreas Kling.
145
146         Test for WINCE instead of WINCEBASIC, compiler always defines WINCE.
147         Remove reference to unexisting path JavaScriptCore/os-wince.
148
149         * JavaScriptCore.pri:
150         * wtf/Assertions.cpp:
151
152 2010-09-27  Michael Saboff  <msaboff@apple.com>
153
154         Reviewed by Geoffrey Garen.
155
156         Changed the initialization of JSArray objects to have space for 
157         3 elements for the constructor that takes a ArgList argument.
158         This improves v8-deltablue performance by about 2.8% by reducing 
159         the number of realloc() calls.
160         https://bugs.webkit.org/show_bug.cgi?id=46664
161
162         * runtime/JSArray.cpp:
163         (JSC::JSArray::JSArray):
164
165 2010-09-27  Gavin Barraclough  <barraclough@apple.com>
166
167         Reviewed by Darin Adler.
168
169         Bug 46680 - Inlining string concatenation can regress interpreter performance
170         <rdar://problem/8362752> REGRESSION: ~6.4% sunspider regression in interpreter
171         Do not inline calls to string concatenation in the interpret loop.
172
173         * interpreter/Interpreter.cpp:
174         (JSC::concatenateStrings):
175         (JSC::Interpreter::privateExecute):
176
177 2010-09-27  Anders Carlsson  <andersca@apple.com>
178
179         Fix thinko.
180
181         * runtime/JSCell.h:
182
183 2010-09-27  Anders Carlsson  <andersca@apple.com>
184
185         Reviewed by Adam Roben.
186
187         Try to fix Windows build.
188
189         * runtime/JSCell.h:
190         (JSC::MSVCBugWorkaround::MSVCBugWorkaround):
191         (JSC::MSVCBugWorkaround::~MSVCBugWorkaround):
192
193 2010-09-27  Erik Arvidsson  <arv@chromium.org>
194
195         Reviewed by Darin Adler.
196
197         Add operator == for AtomicString and Vector<Uchar>
198         https://bugs.webkit.org/show_bug.cgi?id=46509
199
200         * JavaScriptCore.exp:
201         * wtf/text/AtomicString.cpp:
202         (WTF::operator==):
203         * wtf/text/AtomicString.h:
204         (WTF::operator==):
205         (WTF::operator!=):
206
207 2010-09-27  Anders Carlsson  <andersca@apple.com>
208
209         Try to fix the Windows build.
210
211         * wtf/Noncopyable.h:
212
213 2010-09-26  Anders Carlsson  <andersca@apple.com>
214
215         Reviewed by Alexey Proskuryakov and Adam Barth.
216
217         Add WTF_MAKE_NONCOPYABLE macro
218         https://bugs.webkit.org/show_bug.cgi?id=46589
219
220         Going forward, we'd like to get rid of the Noncopyable and FastAllocBase classes. The
221         reason for this is that the Itanium C++ ABI states that no empty classes of the same type
222         can be laid out at the same offset in the class. This can result in objects getting larger
223         which leads to memory regressions. (One example of this is the String class which grew by
224         sizeof(void*) when both its base class and its first member variable inherited indirectly
225         from FastAllocBase).
226
227         * wtf/Noncopyable.h:
228         Add a WTF_MAKE_NONCOPYABLE macro and get rid of NoncopyableCustomAllocated.
229         
230         * runtime/JSCell.h:
231         * wtf/RefCounted.h:
232         Don't inherit from NoncopyableCustomAllocated. Instead, use WTF_MAKE_NONCOPYABLE.
233
234 2010-09-27  Philippe Normand  <pnormand@igalia.com>
235
236         Reviewed by Martin Robinson.
237
238         [GTK] use ENABLE(GLIB_SUPPORT)
239         https://bugs.webkit.org/show_bug.cgi?id=46630
240
241         * wtf/Platform.h: Include GTypedefs.h only if glib support
242         is explicitly enabled.
243
244 2010-09-25  Holger Hans Peter Freyther  <holger@moiji-mobile.com>
245
246         Reviewed by Adam Barth.
247
248         jsc: Document the strcat opcode.
249         https://bugs.webkit.org/show_bug.cgi?id=46571
250
251         * interpreter/Interpreter.cpp:
252         (JSC::Interpreter::privateExecute):
253
254 2010-09-21  Holger Hans Peter Freyther  <holger@moiji-mobile.com>
255
256         Reviewed by Adam Barth.
257
258         make-bytecode-docs.pl: Add a comment to the generated HTML
259         https://bugs.webkit.org/show_bug.cgi?id=46570
260
261         Generate an HTML Comment that this file was generated from
262         Interpreter.cpp with the make-bytecode-docs.pl script.
263
264         * docs/make-bytecode-docs.pl:
265
266 2010-09-27  Patrick Gansterer  <paroga@webkit.org>
267
268         Reviewed by Adam Barth.
269
270         Remove WTF::stringHash functions
271         https://bugs.webkit.org/show_bug.cgi?id=46520
272
273         Since r68289 the stringHash functions are only wrappers around StringHasher::createHash.
274         So use StringHasher::createHash directly and remove stringHash.
275
276         * wtf/StringHashFunctions.h:
277         * wtf/text/StringImpl.h:
278         (WTF::StringImpl::computeHash): Use WTF::StringHasher::createHash directly.
279
280 2010-09-26  Patrick Gansterer  <paroga@webkit.org>
281
282         Reviewed by Adam Barth.
283
284         Add WTF::StringHasher::createBlobHash
285         https://bugs.webkit.org/show_bug.cgi?id=46514
286
287         Add this function for hashing FormElementKey and QualifiedNameComponents.
288
289         * wtf/StringHashFunctions.h:
290         (WTF::StringHasher::createBlobHash):
291
292 2010-09-26  Patrick Gansterer  <paroga@webkit.org>
293
294         Reviewed by Adam Barth.
295
296         REGRESSION (r68289): Assertion failure in StringHasher::addCharacter() (ch != invalidCharacterValue)
297         running websocket/tests/bad-sub-protocol-non-ascii.html
298         https://bugs.webkit.org/show_bug.cgi?id=46553
299
300         Because we use StringHasher for binary data too, so the check for invalid unicode input is wrong.
301         Add an additional member variable to indicate if we have an pending character
302         instead of only using an invalid character for this purpose.
303
304         * wtf/StringHashFunctions.h:
305         (WTF::StringHasher::StringHasher):
306         (WTF::StringHasher::addCharacters):
307         (WTF::StringHasher::addCharacter):
308         (WTF::StringHasher::hash):
309
310 2010-09-26  Mark Hahnenberg  <mhahnenb@gmail.com>
311
312         Reviewed by Oliver Hunt.
313
314         valueOf called in wrong order in atan2 and date constructors.
315         https://bugs.webkit.org/show_bug.cgi?id=26978
316
317         Fixed the bug where the arguments to atan2 were being evaluated 
318         out of order.
319
320         * runtime/MathObject.cpp:
321         (JSC::mathProtoFuncATan2):
322
323 2010-09-26  Mark Hahnenberg  <mhahnenb@gmail.com>
324
325         Reviewed by Oliver Hunt.
326
327         valueOf called in wrong order in atan2 and date constructors.
328         https://bugs.webkit.org/show_bug.cgi?id=26978
329
330         Fixed the issue where the parameters to the Date constructor
331         were being evaluated to numbers more than once.
332
333         * runtime/DateConstructor.cpp:
334         (JSC::constructDate):
335         (JSC::dateUTC):
336
337 2010-09-25  Oliver Hunt  <oliver@apple.com>
338
339         Fix various builds
340
341         Relearning the lesson that last minute changes are bad.
342
343         * bytecode/CodeBlock.cpp:
344         (JSC::CodeBlock::dump):
345         * bytecompiler/BytecodeGenerator.cpp:
346         (JSC::BytecodeGenerator::emitGetArgumentsLength):
347         * jit/JITOpcodes.cpp:
348         (JSC::JIT::emitSlow_op_get_argument_by_val):
349
350 2010-09-25  Oliver Hunt  <oliver@apple.com>
351
352         Reviewed by Cameron Zwarich.
353
354         Avoid constructing arguments object when accessing length and index properties
355         https://bugs.webkit.org/show_bug.cgi?id=46572
356
357         Add opcodes to read argument length and properties, and then implement them.
358         Much like other lazy opcodes these opcodes take a fast path when the arguments
359         object has not been instantiated, and fall back on generic access mechanisms
360         if they are acting on an instantiated object.
361
362         3% win on v8-earleyboyer, no change elsewhere.
363
364         * bytecode/CodeBlock.cpp:
365         (JSC::CodeBlock::dump):
366         * bytecode/Opcode.h:
367         * bytecompiler/BytecodeGenerator.cpp:
368         (JSC::BytecodeGenerator::emitGetArgumentsLength):
369         (JSC::BytecodeGenerator::emitGetArgumentByVal):
370         * bytecompiler/BytecodeGenerator.h:
371         * bytecompiler/NodesCodegen.cpp:
372         (JSC::BracketAccessorNode::emitBytecode):
373         (JSC::DotAccessorNode::emitBytecode):
374         * interpreter/Interpreter.cpp:
375         (JSC::Interpreter::privateExecute):
376         * jit/JIT.cpp:
377         (JSC::JIT::privateCompileMainPass):
378         (JSC::JIT::privateCompileSlowCases):
379         * jit/JIT.h:
380         * jit/JITOpcodes.cpp:
381         (JSC::JIT::emit_op_get_arguments_length):
382         (JSC::JIT::emitSlow_op_get_arguments_length):
383         (JSC::JIT::emit_op_get_argument_by_val):
384         (JSC::JIT::emitSlow_op_get_argument_by_val):
385         * jit/JITOpcodes32_64.cpp:
386         (JSC::JIT::emit_op_get_arguments_length):
387         (JSC::JIT::emitSlow_op_get_arguments_length):
388         (JSC::JIT::emit_op_get_argument_by_val):
389         (JSC::JIT::emitSlow_op_get_argument_by_val):
390
391 2010-09-25  Patrick Gansterer  <paroga@webkit.org>
392
393         Unreviewed.
394
395         Fix typo in StringHasher class
396         https://bugs.webkit.org/show_bug.cgi?id=45970
397
398         * wtf/StringHashFunctions.h:
399         (WTF::StringHasher::createHash):
400
401 2010-09-24  Patrick Gansterer  <paroga@paroga.com>
402
403         Reviewed by Gavin Barraclough.
404
405         Add WTF::StringHasher
406         https://bugs.webkit.org/show_bug.cgi?id=45970
407
408         StringHasher is a class for calculation stringHash out of character string.
409         This class will unify the different usages of the same algorithm.
410
411         * wtf/StringHashFunctions.h:
412         (WTF::StringHasher::StringHasher):
413         (WTF::StringHasher::addCharacters):
414         (WTF::StringHasher::addCharacter):
415         (WTF::StringHasher::hash):
416         (WTF::StringHasher::createHash):
417         (WTF::StringHasher::defaultCoverter):
418         (WTF::StringHasher::addCharactersToHash):
419         (WTF::stringHash):
420
421 2010-09-24  Oliver Hunt  <oliver@apple.com>
422
423         Reviewed by Geoffrey Garen.
424
425         Variable declarations inside a catch scope don't get propogated to the parent scope
426         https://bugs.webkit.org/show_bug.cgi?id=46501
427
428         Add logic to make variable declaration look for a scope for the
429         new variable.  This allows us to create a scope (eg. for catch)
430         and then seal it, so that additional variable declarations
431         contained are propogated to the correct target.  Strangely this
432         comes out as a performance win, but I think it's mostly cache
433         effects.
434
435         * parser/JSParser.cpp:
436         (JSC::JSParser::Scope::Scope):
437         (JSC::JSParser::Scope::preventNewDecls):
438         (JSC::JSParser::Scope::allowsNewDecls):
439         (JSC::JSParser::declareVariable):
440         (JSC::JSParser::parseVarDeclarationList):
441         (JSC::JSParser::parseConstDeclarationList):
442         (JSC::JSParser::parseTryStatement):
443         (JSC::JSParser::parseFormalParameters):
444         (JSC::JSParser::parseFunctionDeclaration):
445
446 2010-09-24  İsmail Dönmez  <ismail@namtrac.org>
447
448        Reviewed by Csaba Osztrogonác.
449
450        Add a Windows compatible inttypes.h header to fix WinCE build.
451        https://bugs.webkit.org/show_bug.cgi?id=46463
452
453        * os-win32/inttypes.h: Added.
454
455 2010-09-24  Oliver Hunt  <oliver@apple.com>
456
457         Reviewed by Gavin Barraclough.
458
459         REGRESSION(r68223): It broke 2-3 tests on bots (Requested by Ossy on #webkit).
460         https://bugs.webkit.org/show_bug.cgi?id=46448
461
462         Roll this back in, with additional logic to prevent us from delaying construction
463         of functions named "arguments"
464
465         * bytecode/CodeBlock.cpp:
466         (JSC::CodeBlock::dump):
467         * bytecode/Opcode.h:
468         * bytecompiler/BytecodeGenerator.cpp:
469         (JSC::BytecodeGenerator::BytecodeGenerator):
470         (JSC::BytecodeGenerator::emitInitLazyRegister):
471         (JSC::BytecodeGenerator::registerFor):
472         (JSC::BytecodeGenerator::createLazyRegisterIfNecessary):
473         (JSC::BytecodeGenerator::constRegisterFor):
474         (JSC::BytecodeGenerator::emitNewFunction):
475         (JSC::BytecodeGenerator::emitLazyNewFunction):
476         (JSC::BytecodeGenerator::emitNewFunctionInternal):
477         * bytecompiler/BytecodeGenerator.h:
478         * interpreter/Interpreter.cpp:
479         (JSC::Interpreter::privateExecute):
480         * jit/JIT.cpp:
481         (JSC::JIT::privateCompileMainPass):
482         * jit/JIT.h:
483         * jit/JITOpcodes.cpp:
484         (JSC::JIT::emit_op_init_lazy_reg):
485         (JSC::JIT::emit_op_new_func):
486         * jit/JITOpcodes32_64.cpp:
487         (JSC::JIT::emit_op_init_lazy_reg):
488         * parser/Nodes.h:
489         (JSC::ScopeNode::needsActivationForMoreThanVariables):
490
491 2010-09-23  Sheriff Bot  <webkit.review.bot@gmail.com>
492
493         Unreviewed, rolling out r68223.
494         http://trac.webkit.org/changeset/68223
495         https://bugs.webkit.org/show_bug.cgi?id=46448
496
497         It broke 2-3 tests on bots (Requested by Ossy on #webkit).
498
499         * bytecode/CodeBlock.cpp:
500         (JSC::CodeBlock::dump):
501         * bytecode/Opcode.h:
502         * bytecompiler/BytecodeGenerator.cpp:
503         (JSC::BytecodeGenerator::BytecodeGenerator):
504         (JSC::BytecodeGenerator::registerFor):
505         (JSC::BytecodeGenerator::constRegisterFor):
506         (JSC::BytecodeGenerator::emitNewFunction):
507         * bytecompiler/BytecodeGenerator.h:
508         * interpreter/Interpreter.cpp:
509         (JSC::Interpreter::privateExecute):
510         * jit/JIT.cpp:
511         (JSC::JIT::privateCompileMainPass):
512         * jit/JIT.h:
513         * jit/JITOpcodes.cpp:
514         (JSC::JIT::emit_op_new_func):
515         (JSC::JIT::emit_op_init_arguments):
516         * jit/JITOpcodes32_64.cpp:
517         (JSC::JIT::emit_op_new_func):
518         (JSC::JIT::emit_op_init_arguments):
519         * parser/Nodes.h:
520
521 2010-09-23  Oliver Hunt  <oliver@apple.com>
522
523         Reviewed by Geoffrey Garen.
524
525         Delay construction of functions that aren't captured
526         https://bugs.webkit.org/show_bug.cgi?id=46433
527
528         If a function isn't captured by an activation there's no
529         way it can be accessed indirectly, so we can delay the
530         construction until it's used (similar to what we do with
531         arguments).  We rename the existing op_init_arguments to
532         op_init_lazy_reg and removed its implicit handling of
533         the anonymous argument register, and make op_new_function
534         take a parameter to indicate whether it should null check
535         the target slot before creating the function object.
536
537         * bytecode/CodeBlock.cpp:
538         (JSC::CodeBlock::dump):
539         * bytecode/Opcode.h:
540         * bytecompiler/BytecodeGenerator.cpp:
541         (JSC::BytecodeGenerator::BytecodeGenerator):
542         (JSC::BytecodeGenerator::emitInitLazyRegister):
543         (JSC::BytecodeGenerator::registerFor):
544         (JSC::BytecodeGenerator::createLazyRegisterIfNecessary):
545         (JSC::BytecodeGenerator::constRegisterFor):
546         (JSC::BytecodeGenerator::emitNewFunction):
547         (JSC::BytecodeGenerator::emitLazyNewFunction):
548         (JSC::BytecodeGenerator::emitNewFunctionInternal):
549         * bytecompiler/BytecodeGenerator.h:
550         * interpreter/Interpreter.cpp:
551         (JSC::Interpreter::privateExecute):
552         * jit/JIT.cpp:
553         (JSC::JIT::privateCompileMainPass):
554         * jit/JIT.h:
555         * jit/JITOpcodes.cpp:
556         (JSC::JIT::emit_op_init_lazy_reg):
557         (JSC::JIT::emit_op_new_func):
558         * jit/JITOpcodes32_64.cpp:
559         (JSC::JIT::emit_op_init_lazy_reg):
560         * parser/Nodes.h:
561         (JSC::ScopeNode::needsActivationForMoreThanVariables):
562
563 2010-09-23  David Kilzer  <ddkilzer@apple.com>
564
565         <rdar://problem/8460731> ~9.9% speedup when compiling interpreter with llvm-gcc-4.2
566         https://bugs.webkit.org/show_bug.cgi?id=46423
567
568         Reviewed by Oliver Hunt.
569
570         * interpreter/Interpreter.cpp:
571         (JSC::Interpreter::privateExecute): Disable the gcc computed
572         goto hacks added in r55564 when compiling with llvm-gcc-4.2.
573
574 2010-09-23  Lucas De Marchi  <lucas.demarchi@profusion.mobi>
575
576         Reviewed by Darin Adler.
577
578         Fix usage of enum as if it was a define
579         https://bugs.webkit.org/show_bug.cgi?id=46355
580
581         pthread.h defines PTHREAD_MUTEX_DEFAULT and PTHREAD_MUTEX_NORMAL as an
582         enum.  Hence, it cannot be used by the preprocessor which always
583         evaluates that condition as true. This was giving a warning when
584         compiling with gcc and "-Wundef" flag.
585
586         The second path, when PTHREAD_MUTEX_DEFAULT is not the same of
587         PTHREAD_MUTEX_NORMAL, is not slow. So, let's eliminate the first path
588         and get rid of that #if.
589
590         * wtf/ThreadingPthreads.cpp: Always call pthread_mutexattr_init() to
591         set mutex type to PTHREAD_MUTEX_NORMAL.
592         (WTF::Mutex::Mutex):
593
594 2010-09-23  Michael Saboff  <msaboff@apple.com>
595
596         Reviewed by Geoffrey Garen.
597
598         Removed extraneous truncation of ovector on entry and error exit.
599         Changed the initialization to -1 of vector to only initialize
600         the start indecies, which is sufficient for the pattern/subpatterns.
601         Changed the JIT code to not clear the end index for subpatterns
602         as it isn't needed.  These changes are worth ~2.7% on v8-regexp.
603         https://bugs.webkit.org/show_bug.cgi?id=46404
604
605         * runtime/RegExp.cpp:
606         (JSC::RegExp::match):
607         * yarr/RegexJIT.cpp:
608         (JSC::Yarr::RegexGenerator::generateParenthesesSingle):
609
610 2010-09-22  Oliver Hunt  <oliver@apple.com>
611
612         Reviewed by Geoff Garen.
613
614         Only copy captured variables into activation
615         https://bugs.webkit.org/show_bug.cgi?id=46330
616
617         We now track free variable information which means that
618         we no longer need to copy every variable defined in a
619         function.  With this patch activations only retain those
620         variables needed for correctness.  In order to interact
621         safely with the inspector this means that JSActivation
622         now provides its own lookup functions so it can avoid 
623         trying to read or write to variables that have been
624         optimised out.
625
626         * bytecode/CodeBlock.h:
627         * bytecompiler/BytecodeGenerator.cpp:
628         (JSC::BytecodeGenerator::BytecodeGenerator):
629         * parser/Nodes.h:
630         (JSC::ScopeNode::capturedVariableCount):
631         (JSC::ScopeNode::captures):
632         * runtime/Arguments.h:
633         (JSC::JSActivation::copyRegisters):
634         * runtime/Executable.cpp:
635         (JSC::FunctionExecutable::FunctionExecutable):
636         (JSC::FunctionExecutable::compileForCallInternal):
637         (JSC::FunctionExecutable::compileForConstructInternal):
638         * runtime/Executable.h:
639         (JSC::FunctionExecutable::capturedVariableCount):
640         * runtime/JSActivation.cpp:
641         (JSC::JSActivation::markChildren):
642         (JSC::JSActivation::symbolTableGet):
643         (JSC::JSActivation::symbolTablePut):
644         (JSC::JSActivation::getOwnPropertyNames):
645         (JSC::JSActivation::symbolTablePutWithAttributes):
646         * runtime/JSActivation.h:
647
648 2010-09-23  Ismail Donmez  <ismail@namtrac.org>
649
650         Reviewed by Andreas Kling.
651
652         Fix jsc.exe build for Windows CE
653
654         * jsc.pro: Add mmtimer.lib for Windows CE.
655
656 2010-09-23  Ismail Donmez  <ismail@namtrac.org>
657
658         Unreviewed.
659
660         JIT should be disabled on Windows CE. Broken in r64176.
661
662         * wtf/Platform.h:
663
664 2010-09-23  Peter Varga  <pvarga@inf.u-szeged.hu>
665
666         Reviewed by Gavin Barraclough.
667
668         Reduce the number of BOL checks in YARR Interpreter
669         https://bugs.webkit.org/show_bug.cgi?id=46260
670
671         Extend the YARR Interpreter with an optimization which reduces the number of
672         BOL assertion checks. If a "TypeBodyAlternative" byteTerm is followed by a
673         "TypeAssertionBOL" byteTerm it will be checked just one time.
674
675         * yarr/RegexInterpreter.cpp:
676         (JSC::Yarr::Interpreter::matchDisjunction):
677         (JSC::Yarr::ByteCompiler::compile):
678         (JSC::Yarr::ByteCompiler::regexBegin):
679         (JSC::Yarr::ByteCompiler::alternativeBodyDisjunction):
680         (JSC::Yarr::ByteCompiler::emitDisjunction):
681         * yarr/RegexInterpreter.h:
682         (JSC::Yarr::ByteTerm::BodyAlternativeBegin):
683         (JSC::Yarr::ByteTerm::BodyAlternativeDisjunction):
684         (JSC::Yarr::ByteTerm::BodyAlternativeEnd):
685         (JSC::Yarr::ByteTerm::AlternativeBegin):
686         (JSC::Yarr::ByteTerm::AlternativeDisjunction):
687         (JSC::Yarr::ByteTerm::AlternativeEnd):
688
689 2010-09-22  Michael Saboff  <msaboff@apple.com>
690
691         Reviewed by Gavin Barraclough.
692
693         Fixed the cross over from alternatives executed once and
694         those that loop.  This fixed the problem where the index
695         was getting messed up for looping alternatives causing an
696         infinite loop.
697         https://bugs.webkit.org/show_bug.cgi?id=46189
698
699         * yarr/RegexJIT.cpp:
700         (JSC::Yarr::RegexGenerator::generateDisjunction):
701
702 2010-09-22  Steve Falkenburg  <sfalken@apple.com>
703
704         Rubber stamped by Jon Honeycutt.
705
706         Allow jsc.exe to be run against unversioned ICU.
707
708         * JavaScriptCore.vcproj/jsc/jscCommon.vsprops:
709
710 2010-09-22  Kwang Yul Seo  <skyul@company100.net>
711
712         Reviewed by Laszlo Gombos.
713
714         Use "typedef wchar_t JSChar" when compiled with RVCT
715         https://bugs.webkit.org/show_bug.cgi?id=40651
716
717         Use wchar_t for JSChar and UChar when compiled with RVCT.
718         Linux is the exception for this rule.
719
720         * API/JSStringRef.h:
721         * wtf/unicode/qt4/UnicodeQt4.h:
722
723 2010-09-22  Oliver Hunt  <oliver@apple.com>
724
725         Reviewed by Gavin Barraclough.
726
727         [INTERPRETER] Two tests fail with SputnikError: #1.1: if argArray is neither an array nor an arguments object (see 10.1.8), a TypeError exception is thrown
728         https://bugs.webkit.org/show_bug.cgi?id=44245
729
730         Remove incorrect code from op_load_varargs in the interpreter.
731
732         * interpreter/Interpreter.cpp:
733         (JSC::Interpreter::privateExecute):
734
735 2010-09-22  Oliver Hunt  <oliver@apple.com>
736
737         Reviewed by Gavin Barraclough.
738
739         [JIT] fast/js/sputnik/Conformance/15_Native_Objects/15.3_Function/15.3.5/S15.3.5.3_A2_T6.html fails
740         https://bugs.webkit.org/show_bug.cgi?id=44246
741
742         JIT code generated for instanceof was not checking to ensure that the prototype property was
743         an object, this patch ensures that it does.
744
745         * jit/JITOpcodes.cpp:
746         (JSC::JIT::emit_op_instanceof):
747         (JSC::JIT::emitSlow_op_instanceof):
748         * jit/JITOpcodes32_64.cpp:
749         (JSC::JIT::emit_op_instanceof):
750         (JSC::JIT::emitSlow_op_instanceof):
751
752 2010-09-22  Patrick Gansterer  <paroga@webkit.org>
753
754         Reviewed by Darin Adler.
755
756         Inline UTF8SequenceLength
757         https://bugs.webkit.org/show_bug.cgi?id=45589
758
759         * wtf/unicode/UTF8.cpp:
760         (WTF::Unicode::convertUTF8ToUTF16): Use inline version of UTF8SequenceLength to improve performance.
761
762 2010-09-21  Oliver Hunt  <oliver@apple.com>
763
764         RS=Gavin Barraclough.
765
766         Fix codeblock dumping
767
768         * bytecode/CodeBlock.cpp:
769         (JSC::CodeBlock::dump):
770         * runtime/Executable.h:
771         (JSC::ScriptExecutable::ScriptExecutable):
772
773 2010-09-21  Oliver Hunt  <oliver@apple.com>
774
775         Reviewed by Geoffrey Garen.
776
777         Speed up function.apply(..., arguments)
778         https://bugs.webkit.org/show_bug.cgi?id=46207
779
780         Add code to do argument copying inline in the case
781         where we're using Function.apply to forward our arguments
782         directly.
783
784         * jit/JIT.cpp:
785         (JSC::JIT::privateCompileSlowCases):
786            Splitted op_load_varargs into fast and slow paths, so add the call
787            to the slow path generator.
788         * jit/JIT.h:
789         * jit/JITCall32_64.cpp:
790           Remove 32bit specific emit_op_load_varargs as the logic is the
791           same for all value representations
792         * jit/JITOpcodes.cpp:
793         (JSC::JIT::emit_op_load_varargs):
794           Copy arguments inline
795         (JSC::JIT::emitSlow_op_load_varargs):
796
797 2010-09-21  Geoffrey Garen  <ggaren@apple.com>
798
799         Reviewed by Oliver Hunt.
800
801         <rdar://problem/8363003> REGRESSION: ~1.4% sunspider regression in
802         interpreter due to 54724 and 54596
803         
804         Fixed a typo (using "UNLIKELY" instead of "LIKELY").
805         
806         * wtf/PassRefPtr.h:
807         (WTF::refIfNotNull):
808         (WTF::derefIfNotNull): It is likely that m_ptr != 0 because most RefPtrs
809         hold real data. Also, in cases where they do not hold real data, the
810         compiler usually sees a call to release() right before the call to the
811         destructor, so it can probably optimize out the test completely.
812
813 2010-09-21  Fridrich Strba  <fridrich.strba@bluewin.ch>
814
815         Reviewed by Martin Robinson.
816
817         Build issues with Windows versions of the GTK+ port
818         https://bugs.webkit.org/show_bug.cgi?id=45844
819
820         Link with winmm.dll when necessary and specify the executable extension
821         explicitely so that the Programs/jsc-@WEBKITGTK_API_MAJOR_VERSION@
822         rule actually works.
823
824         Don't try to build the ThreadSpecificWin.cpp since GTK+ port uses
825         a section in ThreadSpecific.cpp
826
827         * GNUmakefile.am:
828
829 2010-09-21  Martin Robinson  <mrobinson@igalia.com>
830
831         Reviewed by Xan Lopez.
832
833         [GTK] 'make dist' should be fixed in preparation for the next release
834         https://bugs.webkit.org/show_bug.cgi?id=46129
835
836         * GNUmakefile.am: Update the sources list to include missing headers.
837
838 2010-09-21  Dave Tapuska  <dtapuska@rim.com>
839
840         Reviewed by Csaba Osztrogonác.
841
842         https://bugs.webkit.org/show_bug.cgi?id=45673
843
844         r65596 caused ENABLE_PROFILER_REFERENCE_OFFSET to not be
845         8 byte aligned. A non 8 byte divisible value for this will
846         cause the sp to become non 8 byte aligned.
847
848         Verify and correct offset values that r65596 effected that
849         weren't updated.
850
851         * jit/JITStubs.cpp:
852         * jit/JITStubs.h:
853
854 2010-09-21  Xan Lopez  <xlopez@igalia.com>
855
856         Reviewed by Martin Robinson.
857
858         Fix Opcode stats compilation
859         https://bugs.webkit.org/show_bug.cgi?id=46079
860
861         The FixedArray API had changed, and <stdio.h> was not included for
862         printf.
863
864         * bytecode/Opcode.cpp:
865         (JSC::OpcodeStats::~OpcodeStats):
866
867 2010-09-20  Michael Saboff  <msaboff@apple.com>
868
869         Reviewed by Gavin Barraclough.
870
871         Fixed detection of alternative smaller than the first alternative
872         to only check looping alternatives.
873         https://bugs.webkit.org/show_bug.cgi?id=46049
874
875         * yarr/RegexJIT.cpp:
876         (JSC::Yarr::RegexGenerator::generateDisjunction):
877
878 2010-09-20  Peter Varga  <pvarga@inf.u-szeged.hu>
879
880         Reviewed by Geoffrey Garen.
881
882         REGRESSION(67790): jsc tests are failed with YARR interpreter
883         https://bugs.webkit.org/show_bug.cgi?id=46083
884
885         Fix the initializing of the lastSubpatternId member of
886         parentheses.
887
888         * yarr/RegexCompiler.cpp:
889         (JSC::Yarr::RegexPatternConstructor::atomParenthesesEnd):
890
891 2010-09-20  Gavin Barraclough  <barraclough@apple.com>
892
893         Reviewed by Oliver Hunt.
894
895         Bug 46077 - ASSERT failure in YARR JIT
896
897         We will currently attempt to loop if there are multiple alternatives, they are all
898         BOL predicated, and the last alternative is longer then the first - however if all
899         alternatives are BOL predicated the head of loop label will not have been set, and
900         we'll try to link a jump to an undefined label. Stop doing so.
901
902         * yarr/RegexJIT.cpp:
903         (JSC::Yarr::RegexGenerator::generateDisjunction):
904
905 2010-09-20  Adam Roben  <aroben@apple.com>
906
907         Export RegExpObject::info from JavaScriptCore
908
909         This allows obj->inherits(&RegExpObject::info) to work correctly from
910         outside JavaScriptCore.dll on Windows.
911
912         Fixes <http://webkit.org/b/46098>
913         fast/loader/stateobjects/pushstate-object-types.html fails on Windows
914
915         Reviewed by John Sullivan.
916
917         * runtime/RegExpObject.h: Added JS_EXPORTDATA to the info member, as
918         we already have for some other classes whose info members have to be
919         used from outside the DLL.
920
921 2010-09-19  Gavin Barraclough  <barraclough@apple.com>
922
923         Windows build fix pt 2.
924
925         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
926
927 2010-09-19  Gavin Barraclough  <barraclough@apple.com>
928
929         Windows build fix pt 1.
930
931         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
932
933 2010-09-19  Gavin Barraclough  <barraclough@apple.com>
934
935         Build fix - implicit double-to-int conversion invalid on 32-bit.
936
937         * runtime/DatePrototype.cpp:
938         (JSC::fillStructuresUsingDateArgs):
939         (JSC::dateProtoFuncSetYear):
940
941 2010-09-19  Gavin Barraclough  <barraclough@apple.com>
942
943         Reviewed by Oliver Hunt.
944
945         Bug 46065 - Unify implementation of ToInt32 and ToUInt32, don't use fmod.
946
947         These methods implement the same conversion (see discussion in the notes
948         of sections of 9.5 and 9.6 of the spec), only differing in how the result
949         is interpretted.
950
951         Date prototype is incorrectly using toInt32, and this is causing us to
952         provide an output value indicating whether the input to ToInt32 was finite
953         (the corresponding methods on Date are actually spec'ed to use ToInteger,
954         not ToInt32).  This patch partially fixes this in order to remove this
955         bogus output value, hoewever more work will be require to bring Date
956         fully up to spec compliance (the constructor is still performing ToInt32
957         conversions).
958
959         * JavaScriptCore.exp:
960         * runtime/DatePrototype.cpp:
961         (JSC::fillStructuresUsingTimeArgs):
962         (JSC::fillStructuresUsingDateArgs):
963         (JSC::dateProtoFuncSetYear):
964         * runtime/JSValue.cpp:
965         (JSC::toInt32):
966         * runtime/JSValue.h:
967         (JSC::toUInt32):
968         (JSC::JSValue::toInt32):
969         (JSC::JSValue::toUInt32):
970
971 2010-09-18  Darin Adler  <darin@apple.com>
972
973         First step in fixing Windows build.
974
975         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
976         Removed incorrect symbol. The build will probably still fail,
977         but the failure will tell us what symbol to add.
978
979 2010-09-18  Michael Saboff  <msaboff@apple.com>
980
981         Reviewed by Gavin Barraclough.
982
983         Added code to unroll regular expressions containing ^.
984         Alternatives that begin with ^ are tagged during parsing
985         and rolled up in containing sub expression structs.
986         After parsing, a regular expression flagged as containing
987         a ^ (a.k.a. BOL) is processed further in optimizeBOL().
988         A copy of the disjunction is made excluding alternatives that
989         are rooted with BOL.  The original alternatives are flagged
990         to only be executed once.  The copy of the other alternatives are
991         added to the original expression.
992         In the case that all original alternatives are flagged, there
993         won't be any looping alternatives.
994         The JIT generator will emit code accordingly, executing the
995         original alternatives once and then looping over the
996         alternatives that aren't anchored with a BOL (if any).
997         https://bugs.webkit.org/show_bug.cgi?id=45787
998
999         * yarr/RegexCompiler.cpp:
1000         (JSC::Yarr::RegexPatternConstructor::assertionBOL):
1001         (JSC::Yarr::RegexPatternConstructor::atomParenthesesEnd):
1002         (JSC::Yarr::RegexPatternConstructor::copyDisjunction):
1003         (JSC::Yarr::RegexPatternConstructor::copyTerm):
1004         (JSC::Yarr::RegexPatternConstructor::optimizeBOL):
1005         (JSC::Yarr::compileRegex):
1006         * yarr/RegexJIT.cpp:
1007         (JSC::Yarr::RegexGenerator::generateDisjunction):
1008         * yarr/RegexPattern.h:
1009         (JSC::Yarr::PatternAlternative::PatternAlternative):
1010         (JSC::Yarr::PatternAlternative::setOnceThrough):
1011         (JSC::Yarr::PatternAlternative::onceThrough):
1012         (JSC::Yarr::PatternDisjunction::PatternDisjunction):
1013         (JSC::Yarr::RegexPattern::RegexPattern):
1014         (JSC::Yarr::RegexPattern::reset):
1015
1016 2010-09-18  Patrick Gansterer  <paroga@paroga.com>
1017
1018         Reviewed by Darin Adler.
1019
1020         Rename Wince files to WinCE
1021         https://bugs.webkit.org/show_bug.cgi?id=37287
1022
1023         * wtf/unicode/Unicode.h:
1024         * wtf/unicode/wince/UnicodeWinCE.cpp: Copied from JavaScriptCore/wtf/unicode/wince/UnicodeWince.cpp.
1025         * wtf/unicode/wince/UnicodeWinCE.h: Copied from JavaScriptCore/wtf/unicode/wince/UnicodeWince.h.
1026         * wtf/unicode/wince/UnicodeWince.cpp: Removed.
1027         * wtf/unicode/wince/UnicodeWince.h: Removed.
1028         * wtf/wince/FastMallocWinCE.h: Copied from JavaScriptCore/wtf/wince/FastMallocWince.h.
1029         * wtf/wince/FastMallocWince.h: Removed.
1030
1031 2010-09-18  Ademar de Souza Reis Jr  <ademar.reis@openbossa.org>
1032
1033         Reviewed by Kenneth Rohde Christiansen.
1034
1035         Enable Platform Strategies on Qt
1036
1037         [Qt] Turn on PLATFORM_STRATEGIES
1038         https://bugs.webkit.org/show_bug.cgi?id=45831
1039
1040         * wtf/Platform.h: Enable Platform Strategies when building QtWebkit
1041
1042 2010-09-17  Oliver Hunt  <oliver@apple.com>
1043
1044         Reviewed by Gavin Barraclough.
1045
1046         Imprecise tracking of variable capture leads to overly pessimistic creation of activations
1047         https://bugs.webkit.org/show_bug.cgi?id=46020
1048
1049         The old logic for track free and captured variables would cause us
1050         to decide we needed an activation in every function along the scope
1051         chain between a variable capture and its declaration.  We now track
1052         captured variables precisely which requires a bit of additional work
1053
1054         The most substantial change is that the parsing routine needs to
1055         be passed the list of function parameters when reparsing a function
1056         as when reparsing we don't parse the function declaration itself only
1057         its body.
1058
1059         * JavaScriptCore.exp:
1060         * parser/JSParser.cpp:
1061         (JSC::JSParser::Scope::Scope):
1062         (JSC::JSParser::Scope::needsFullActivation):
1063            We need to distinguish between use of a feature that requires
1064            an activation and eval so we now get this additional flag.
1065         (JSC::JSParser::Scope::collectFreeVariables):
1066         (JSC::JSParser::Scope::getCapturedVariables):
1067            We can't simply return the list of "capturedVariables" now as
1068            is insufficiently precise, so we compute them instead.
1069         (JSC::JSParser::popScope):
1070         (JSC::jsParse):
1071         (JSC::JSParser::JSParser):
1072         (JSC::JSParser::parseProgram):
1073         (JSC::JSParser::parseWithStatement):
1074         (JSC::JSParser::parseTryStatement):
1075         (JSC::JSParser::parseFunctionInfo):
1076         (JSC::JSParser::parseFunctionDeclaration):
1077         (JSC::JSParser::parseProperty):
1078         (JSC::JSParser::parseMemberExpression):
1079         * parser/JSParser.h:
1080         * parser/Parser.cpp:
1081         (JSC::Parser::parse):
1082         * parser/Parser.h:
1083         (JSC::Parser::parse):
1084         * runtime/Executable.cpp:
1085         (JSC::EvalExecutable::compileInternal):
1086         (JSC::ProgramExecutable::checkSyntax):
1087         (JSC::ProgramExecutable::compileInternal):
1088         (JSC::FunctionExecutable::compileForCallInternal):
1089         (JSC::FunctionExecutable::compileForConstructInternal):
1090         (JSC::FunctionExecutable::reparseExceptionInfo):
1091         (JSC::EvalExecutable::reparseExceptionInfo):
1092         (JSC::FunctionExecutable::fromGlobalCode):
1093            Pass function parameters (if available) to the parser.
1094
1095 2010-09-17  Anders Carlsson  <andersca@apple.com>
1096
1097         Reviewed by Sam Weinig.
1098
1099         Add IsFloatingPoint and IsArithmetic type traits
1100         https://bugs.webkit.org/show_bug.cgi?id=46018
1101
1102         * wtf/TypeTraits.h:
1103         * wtf/TypeTraits.cpp:
1104
1105 2010-09-17  Martin Robinson  <mrobinson@igalia.com>
1106
1107         Reviewed by Oliver Hunt.
1108
1109         [GTK] FontPlatformDataFreeType should use smart pointers to hold its members
1110         https://bugs.webkit.org/show_bug.cgi?id=45917
1111
1112         Added support to PlatformRefPtr for handling HashTableDeletedValue.
1113
1114         * wtf/PlatformRefPtr.h:
1115         (WTF::PlatformRefPtr::PlatformRefPtr): Added a constructor that takes HashTableDeletedValue.
1116         (WTF::PlatformRefPtr::isHashTableDeletedValue): Added.
1117
1118 2010-09-16  Oliver Hunt  <oliver@apple.com>
1119
1120         Reviewed by Geoffrey Garen.
1121
1122         Crash due to timer triggered GC on one heap while another heap is active
1123         https://bugs.webkit.org/show_bug.cgi?id=45932
1124         <rdar://problem/8318446>
1125
1126         The GC timer may trigger for one heap while another heap is active.  This
1127         is safe, but requires us to ensure that we have temporarily associated the
1128         thread's identifierTable with the heap we're collecting on.  Otherwise we
1129         may end up with the identifier tables in an inconsistent state leading to
1130         an eventual crash.
1131
1132         * runtime/Collector.cpp:
1133         (JSC::Heap::allocate):
1134         (JSC::Heap::reset):
1135         (JSC::Heap::collectAllGarbage):
1136            Add assertions to ensure we have the correct identifierTable active
1137            while collecting.
1138         * runtime/GCActivityCallbackCF.cpp:
1139         (JSC::DefaultGCActivityCallbackPlatformData::trigger):
1140            Temporarily make the expected IdentifierTable active
1141         * wtf/WTFThreadData.h:
1142         (JSC::IdentifierTable::remove):
1143            Make it possible to see when IdentifierTable::remove has succeeded
1144         * wtf/text/StringImpl.cpp:
1145         (WTF::StringImpl::~StringImpl):
1146            CRASH if an StringImpl is an Identifier but isn't present in the
1147            active IdentifierTable.  If we get to this state something has
1148            gone wrong and we should just crash immediately.
1149
1150 2010-09-16  Martin Robinson  <mrobinson@igalia.com>
1151
1152         Reviewed by Xan Lopez.
1153
1154         [GTK] Implement dissolveDragImageToFraction
1155         https://bugs.webkit.org/show_bug.cgi?id=45826
1156
1157         * wtf/gobject/GTypedefs.h: Added forward declarations for GtkWindow and GdkEventExpose.
1158
1159 2010-09-16  Eric Uhrhane  <ericu@chromium.org>
1160
1161         Reviewed by Jian Li.
1162
1163         Unify FILE_SYSTEM and FILE_WRITER enables under the name FILE_SYSTEM.
1164         https://bugs.webkit.org/show_bug.cgi?id=45798
1165
1166         * Configurations/FeatureDefines.xcconfig:
1167
1168 2010-09-15  Oliver Hunt  <oliver@apple.com>
1169
1170         Reviewed by Geoffrey Garen.
1171
1172         Use free variable analysis to improve activation performance
1173         https://bugs.webkit.org/show_bug.cgi?id=45837
1174
1175         Adds free and captured variable tracking to the JS parser.  This
1176         allows us to avoid construction of an activation object in some
1177         cases.  Future patches will make more use of this information to
1178         improve those cases where activations are still needed.
1179
1180         * parser/ASTBuilder.h:
1181         * parser/JSParser.cpp:
1182         (JSC::JSParser::Scope::Scope):
1183         (JSC::JSParser::Scope::declareVariable):
1184         (JSC::JSParser::Scope::useVariable):
1185         (JSC::JSParser::Scope::collectFreeVariables):
1186         (JSC::JSParser::Scope::capturedVariables):
1187         (JSC::JSParser::ScopeRef::ScopeRef):
1188         (JSC::JSParser::ScopeRef::operator->):
1189         (JSC::JSParser::ScopeRef::index):
1190         (JSC::JSParser::currentScope):
1191         (JSC::JSParser::pushScope):
1192         (JSC::JSParser::popScope):
1193         (JSC::JSParser::parseProgram):
1194         (JSC::JSParser::parseVarDeclarationList):
1195         (JSC::JSParser::parseConstDeclarationList):
1196         (JSC::JSParser::parseTryStatement):
1197         (JSC::JSParser::parseFormalParameters):
1198         (JSC::JSParser::parseFunctionInfo):
1199         (JSC::JSParser::parseFunctionDeclaration):
1200         (JSC::JSParser::parsePrimaryExpression):
1201         * parser/Nodes.cpp:
1202         (JSC::ScopeNodeData::ScopeNodeData):
1203         (JSC::ScopeNode::ScopeNode):
1204         (JSC::ProgramNode::ProgramNode):
1205         (JSC::ProgramNode::create):
1206         (JSC::EvalNode::EvalNode):
1207         (JSC::EvalNode::create):
1208         (JSC::FunctionBodyNode::FunctionBodyNode):
1209         (JSC::FunctionBodyNode::create):
1210         * parser/Nodes.h:
1211         (JSC::ScopeNode::needsActivation):
1212         (JSC::ScopeNode::hasCapturedVariables):
1213         * parser/Parser.cpp:
1214         (JSC::Parser::didFinishParsing):
1215         * parser/Parser.h:
1216         (JSC::Parser::parse):
1217         * parser/SyntaxChecker.h:
1218         * runtime/Executable.cpp:
1219         (JSC::EvalExecutable::compileInternal):
1220         (JSC::ProgramExecutable::compileInternal):
1221         (JSC::FunctionExecutable::compileForCallInternal):
1222         (JSC::FunctionExecutable::compileForConstructInternal):
1223         * runtime/Executable.h:
1224         (JSC::ScriptExecutable::needsActivation):
1225         (JSC::ScriptExecutable::recordParse):
1226
1227 2010-09-14  Hyung Song  <beergun@company100.net>
1228
1229         Reviewed by Kent Tamura.
1230
1231         [BREWMP] Add IMemGroup and IMemSpace to OwnPtr type.
1232         https://bugs.webkit.org/show_bug.cgi?id=44764
1233
1234         * wtf/OwnPtrCommon.h:
1235         * wtf/brew/OwnPtrBrew.cpp:
1236         (WTF::deleteOwnedPtr):
1237
1238 2010-09-14  Darin Adler  <darin@apple.com>
1239
1240         Reviewed by Geoffrey Garen.
1241
1242         Sort with non-numeric custom sort function fails on array with length but no values
1243         https://bugs.webkit.org/show_bug.cgi?id=45781
1244
1245         * runtime/JSArray.cpp:
1246         (JSC::JSArray::sort): Replaced early exit for an array of length zero to instead
1247         exit for any array without values, even if it has a non-0 length.
1248
1249 2010-09-14  Steve Falkenburg  <sfalken@apple.com>
1250
1251         Windows production build fix.
1252         Roll out r65143.
1253
1254         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreGenerated.make:
1255
1256 2010-09-14  Kwang Yul Seo  <skyul@company100.net>
1257
1258         Reviewed by Darin Adler.
1259
1260         Share UnicodeMacrosFromICU.h
1261         https://bugs.webkit.org/show_bug.cgi?id=45710
1262
1263         glib, qt4 and wince use the same macros from ICU.
1264         Remove the code duplication and use the same header file.
1265
1266         * wtf/unicode/UnicodeMacrosFromICU.h: Copied from JavaScriptCore/wtf/unicode/glib/UnicodeMacrosFromICU.h.
1267         * wtf/unicode/glib/UnicodeMacrosFromICU.h: Removed.
1268         * wtf/unicode/qt4/UnicodeQt4.h:
1269         * wtf/unicode/wince/UnicodeWince.h:
1270
1271 2010-09-13  Darin Adler  <darin@apple.com>
1272
1273         Reviewed by Adam Barth.
1274
1275         Preparation for eliminating deprecatedParseURL
1276         https://bugs.webkit.org/show_bug.cgi?id=45695
1277
1278         * wtf/text/WTFString.h: Added isAllSpecialCharacters, moved here from
1279         the HTML tree builder.
1280
1281 2010-09-13  Darin Fisher  <darin@chromium.org>
1282
1283         Reviewed by David Levin.
1284
1285         Add option to conditionally compile smooth scrolling support.
1286         https://bugs.webkit.org/show_bug.cgi?id=45689
1287
1288         ENABLE(SMOOTH_SCROLLING) is disabled by default for all platforms.
1289
1290         * wtf/Platform.h:
1291
1292 2010-09-13  Adam Roben  <aroben@apple.com>
1293
1294         Copy JavaScriptCore's generated sources to the right directory
1295
1296         * JavaScriptCore.vcproj/JavaScriptCore.make: Fixed typo.
1297
1298 2010-09-13  Kwang Yul Seo  <skyul@company100.net>
1299
1300         Reviewed by Kent Tamura.
1301
1302         [BREWMP] Don't call _msize
1303         https://bugs.webkit.org/show_bug.cgi?id=45556
1304
1305         Because Brew MP uses its own memory allocator, it is not correct to use
1306         _msize in fastMallocSize. Add !PLATFORM(BREWMP) guard.
1307
1308         * wtf/FastMalloc.cpp:
1309         (WTF::fastMallocSize):
1310
1311 2010-09-11  Simon Hausmann  <simon.hausmann@nokia.com>
1312
1313         Reviewed by Andreas Kling.
1314
1315         [Qt] V8 port: webcore project files changes
1316         https://bugs.webkit.org/show_bug.cgi?id=45141
1317
1318         * JavaScriptCore.pro: Moved wtf specific files to wtf.pri,
1319         so that they can also be used from WebCore.pro for v8 builds.
1320         * wtf/wtf.pri: Added.
1321
1322 2010-09-10  Fridrich Strba  <fridrich.strba@bluewin.ch>
1323
1324         Reviewed by Andreas Kling.
1325
1326         Add a define missing when building with glib unicode backend
1327         https://bugs.webkit.org/show_bug.cgi?id=45544
1328
1329         * wtf/unicode/glib/UnicodeMacrosFromICU.h:
1330
1331 2010-09-10  Stephanie Lewis  <slewis@apple.com>
1332
1333         Reviewed by Alexey Proskuryakov.
1334         
1335         Refactor JavaScriptCore memory statistics so that WebKit doesn't need to know 
1336         about the JIT and other implementation details of JavaScriptCore.  Necessary 
1337         to fix PPC build.
1338         
1339         https://bugs.webkit.org/show_bug.cgi?id=45528
1340
1341         * JavaScriptCore.exp:
1342         * JavaScriptCore.xcodeproj/project.pbxproj:
1343         * runtime/MemoryStatistics.cpp: Added.
1344         (JSC::memoryStatistics):
1345         * runtime/MemoryStatistics.h: Added.
1346
1347 2010-09-09  Michael Saboff  <msaboff@apple.com>
1348
1349         Reviewed by Gavin Barraclough.
1350
1351         Added a regular expression tracing facility.  This tracing is connected
1352         to jsc.  Every compiled regular expression object is added to a list.
1353         When the process exits, each regular expression dumps its pattern,
1354         JIT address, number of times it was executed and the number of matches.
1355         This tracing is controlled by the macro ENABLE_REGEXP_TRACING in
1356         wtf/Platform.h.
1357         https://bugs.webkit.org/show_bug.cgi?id=45401
1358
1359         * JavaScriptCore.exp:
1360         * jsc.cpp:
1361         (runWithScripts):
1362         * runtime/JSGlobalData.cpp:
1363         (JSC::JSGlobalData::JSGlobalData):
1364         (JSC::JSGlobalData::~JSGlobalData):
1365         (JSC::JSGlobalData::addRegExpToTrace):
1366         (JSC::JSGlobalData::dumpRegExpTrace):
1367         * runtime/JSGlobalData.h:
1368         * runtime/RegExp.cpp:
1369         (JSC::RegExp::RegExp):
1370         (JSC::RegExp::create):
1371         (JSC::RegExp::match):
1372         * runtime/RegExp.h:
1373         * wtf/Platform.h:
1374         * yarr/RegexJIT.h:
1375         (JSC::Yarr::RegexCodeBlock::getAddr):
1376
1377 2010-09-09  John Therrell  <jtherrell@apple.com>
1378
1379         32-bit build fix.
1380
1381         * jit/ExecutableAllocator.cpp:
1382         (JSC::ExecutableAllocator::committedByteCount):
1383
1384 2010-09-09  John Therrell  <jtherrell@apple.com>
1385
1386         Reviewed by Alexey Proskuryakov.
1387
1388         Added statistics sampling and reporting for JavaScriptCore's RegisterFile and ExecutableAllocator classes
1389         https://bugs.webkit.org/show_bug.cgi?id=45134
1390
1391         Added thread-safe committed byte counting and reporting functionality to RegisterFile and 
1392         ExecutableAllocator.
1393
1394         * JavaScriptCore.exp:
1395         Exported new symbols to allow for WebKit to get statistics from JavaScriptCore classes.
1396         
1397         * interpreter/RegisterFile.cpp:
1398         (JSC::registerFileStatisticsMutex):
1399         Added function which returns a static Mutex used for locking during read/write access to
1400         static committed byte count variable.
1401         (JSC::RegisterFile::~RegisterFile):
1402         Added call to addToStatistics since memory is decommitted here.
1403         (JSC::RegisterFile::releaseExcessCapacity):
1404         Added call to addToStatistics since memory is decommitted here.
1405         (JSC::RegisterFile::initializeThreading):
1406         Added function which calls registerFileStatisticsMutex().
1407         (JSC::RegisterFile::committedByteCount):
1408         Added function which returns the current committed byte count for RegisterFile.
1409         (JSC::RegisterFile::addToCommittedByteCount):
1410         Added function which updates committed byte count.
1411         
1412         * interpreter/RegisterFile.h:
1413         (JSC::RegisterFile::RegisterFile):
1414         Added call to addToStatistics since memory is committed here.
1415         (JSC::RegisterFile::grow):
1416         Added call to addToStatistics since memory is committed here.
1417         
1418         * jit/ExecutableAllocator.h:
1419         Added function prototype for public static function committedByteCount().
1420         
1421         * jit/ExecutableAllocatorFixedVMPool.cpp:
1422         (JSC::FixedVMPoolAllocator::release):
1423         Added call to addToStatistics since memory is decommitted here.
1424         (JSC::FixedVMPoolAllocator::reuse):
1425         Added call to addToStatistics since memory is committed here.
1426         (JSC::FixedVMPoolAllocator::addToCommittedByteCount):
1427         Added function which updates committed byte count.
1428         (JSC::ExecutableAllocator::committedByteCount):
1429         Added function which returns the current committed byte count for ExecutableAllocator.
1430         
1431         * runtime/InitializeThreading.cpp:
1432         (JSC::initializeThreadingOnce):
1433         Added call to RegisterFile::initializeThreading.
1434
1435 2010-09-09  Mark Rowe  <mrowe@apple.com>
1436
1437         Reviewed by Oliver Hunt.
1438
1439         <http://webkit.org/b/45502> JSObjectSetPrivateProperty does not handle NULL values as it claims
1440
1441         * API/JSObjectRef.cpp:
1442         (JSObjectSetPrivateProperty): Don't call toJS if we have a NULL value as that will cause an assertion
1443         failure. Instead map NULL directly to the null JSValue.
1444         * API/tests/testapi.c:
1445         (main): Add test coverage for the NULL value case.
1446
1447 2010-09-09  Csaba Osztrogonác  <ossy@webkit.org>
1448
1449         Reviewed by Gavin Barraclough.
1450
1451         [Qt] JSVALUE32_64 not works on Windows platform with MinGW compiler
1452         https://bugs.webkit.org/show_bug.cgi?id=29268
1453
1454         * wtf/Platform.h: Enable JSVALUE32_64 for Qt/Windows/MinGW, because it works now.
1455
1456 2010-09-08  Zoltan Herczeg  <zherczeg@webkit.org>
1457
1458         Reviewed by Darin Adler.
1459
1460         Removing doneSemicolon label in the lexer
1461         https://bugs.webkit.org/show_bug.cgi?id=45289
1462
1463         As a side effect of moving the multiline comment parsing
1464         to a separate function, an opportunity raised to simplify
1465         the single line comment parsing, and removing doneSemicolon
1466         label. Slight performance increase on --parse-only
1467         tests (from 32.8ms to 31.5ms)
1468
1469         * parser/Lexer.cpp:
1470         (JSC::Lexer::lex):
1471
1472 2010-09-08  Xan Lopez  <xlopez@igalia.com>
1473
1474         Reviewed by Alexey Proskuryakov.
1475
1476         Remove accessor for private member variable in JSParser
1477         https://bugs.webkit.org/show_bug.cgi?id=45378
1478
1479         m_token is private to JSParser, so it does not seem to be useful
1480         to have an accessor for it. On top of that, the file was both
1481         using the accessor and directly accessing the member variable,
1482         only one style should be used.
1483
1484 2010-09-08  Csaba Osztrogonác  <ossy@webkit.org>
1485
1486         Reviewed by Oliver Hunt.
1487
1488         [Qt] REGRESSION(63348): jsc is broken
1489         https://bugs.webkit.org/show_bug.cgi?id=42818
1490
1491         Need fastcall conventions on Qt/Win/MinGW.
1492         Based on patches of Gavin Barraclough: r63947 and r63948.
1493
1494         * jit/JITStubs.cpp:
1495         * jit/JITStubs.h:
1496
1497 2010-09-08  Robert Hogan  <robert@webkit.org>
1498
1499         Reviewed by Antonio Gomes.
1500
1501         Remove some unnecessary duplicate calls to string functions
1502
1503         https://bugs.webkit.org/show_bug.cgi?id=45314
1504
1505         * wtf/text/WTFString.cpp:
1506         (WTF::String::format):
1507
1508 2010-09-08  Jocelyn Turcotte  <jocelyn.turcotte@nokia.com>
1509
1510         Reviewed by Andreas Kling.
1511
1512         Re-Disable JIT for MSVC 64bit to fix the build on this compiler.
1513         https://bugs.webkit.org/show_bug.cgi?id=45382
1514
1515         It was enabled in the cleanup made in r64176, though it is still
1516         not implemented.
1517
1518         * wtf/Platform.h:
1519
1520 2010-09-08  Martin Robinson  <mrobinson@igalia.com>
1521
1522         Reviewed by Xan Lopez.
1523
1524         [GTK] Need a WebSocket implementation
1525         https://bugs.webkit.org/show_bug.cgi?id=45197
1526
1527         Add a GIO-based WebSocket implementation.
1528
1529         * wtf/gobject/GRefPtr.cpp: Added PlatformRefPtr support for GSource.
1530         (WTF::refPlatformPtr):
1531         (WTF::derefPlatformPtr):
1532         * wtf/gobject/GRefPtr.h: Added new template specialization declarations.
1533         * wtf/gobject/GTypedefs.h: Add some more GLib/GIO forward declarations.
1534
1535 2010-08-30  Maciej Stachowiak  <mjs@apple.com>
1536
1537         Reviewed by Darin Adler.
1538
1539         Handle MediaQueryExp memory management exclusively with smart pointers
1540         https://bugs.webkit.org/show_bug.cgi?id=44874
1541         
1542         Implemented a non-copying sort function to make it possible to sort a Vector
1543         of OwnPtrs (which cannot be copied). This is required for the above.
1544
1545         * wtf/NonCopyingSort.h: Added.
1546         (WTF::nonCopyingSort): It's secretly heapsort.
1547         (WTF::heapSort): heapsort implementation.
1548         (WTF::siftDown): Helper function for heapsort.
1549         (WTF::heapify): ditto
1550
1551         Adjust build systems.
1552         
1553         * GNUmakefile.am:
1554         * JavaScriptCore.gypi:
1555         * JavaScriptCore.vcproj/WTF/WTF.vcproj:
1556         * JavaScriptCore.xcodeproj/project.pbxproj:
1557
1558 2010-09-08  Zoltan Herczeg  <zherczeg@webkit.org>
1559
1560         Reviewed by Darin Adler.
1561
1562         Refactoring multiline comments in the lexer
1563         https://bugs.webkit.org/show_bug.cgi?id=45289
1564
1565         MultiLine comment parsing is moved to a separate function.
1566
1567         Slight performance increase on --parse-only tests (from 33.6ms to 32.8ms)
1568         SunSpider reports no change (from 523.1ms to 521.2ms).
1569
1570         * parser/Lexer.cpp:
1571         (JSC::Lexer::parseMultilineComment):
1572         (JSC::Lexer::lex):
1573         * parser/Lexer.h:
1574
1575 2010-09-07  James Robinson  <jamesr@chromium.org>
1576
1577         Compile fix attempt for windows.
1578
1579         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
1580
1581 2010-09-07  Mihai Parparita  <mihaip@chromium.org>
1582
1583         Reviewed by James Robinson.
1584
1585         Fix Windows build after r66936
1586         https://bugs.webkit.org/show_bug.cgi?id=45348
1587
1588         Add symbol names that were missing from r66936.
1589
1590         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
1591
1592 2010-09-07  Mihai Parparita  <mihaip@chromium.org>
1593
1594         Reviewed by Oliver Hunt.
1595
1596         pushState and replaceState do not clone RegExp objects correctly
1597         https://bugs.webkit.org/show_bug.cgi?id=44718
1598         
1599         Move internal representation of JSC::RegExp (which depends on wether
1600         YARR and YARR_JIT is enabled) into RegExpRepresentation which can live
1601         in the implementation only. This makes it feasible to use RegExp in
1602         WebCore without bringing in all of YARR.
1603
1604         * JavaScriptCore.exp: Export RegExp and RegExpObject functions that are
1605         needed inside WebCore's JSC bindings.
1606         * runtime/RegExp.cpp:
1607         (JSC::RegExpRepresentation::~RegExpRepresentation):
1608         (JSC::RegExp::RegExp):
1609         (JSC::RegExp::~RegExp):
1610         (JSC::RegExp::compile):
1611         (JSC::RegExp::match):
1612         * runtime/RegExp.h:
1613
1614 2010-09-07  Anders Carlsson  <andersca@apple.com>
1615
1616         Reviewed by Darin Adler.
1617
1618         <rdar://problem/8381749> -Wcast-align warning emitted when building with clang
1619
1620         Remove the -Wcast-align-warning since it isn't really useful, and clang is more aggressive about warning than gcc.
1621
1622         * Configurations/Base.xcconfig:
1623
1624 2010-09-07  Zoltan Horvath  <zoltan@webkit.org>
1625
1626         Reviewed by Darin Adler.
1627
1628         REGRESSION(66741): Undefined pthread macros
1629         https://bugs.webkit.org/show_bug.cgi?id=45246
1630
1631         PTHREAD_MUTEX_NORMAL and PTHREAD_MUTEX_DEFAULT (introduced in r60487) are not defined on Linux, 
1632         but used in a statement. Add an additional check to test this.
1633
1634         * wtf/FastMalloc.cpp:
1635         (WTF::TCMalloc_PageHeap::initializeScavenger):
1636
1637 2010-09-06  Oliver Hunt  <oliver@apple.com>
1638
1639         Windows build fix
1640
1641 2010-09-05  Oliver Hunt  <oliver@apple.com>
1642
1643         Reviewed by Sam Weinig.
1644
1645         SerializedScriptValue needs to use a flat storage mechanism
1646         https://bugs.webkit.org/show_bug.cgi?id=45244
1647
1648         Export JSArray::put
1649
1650         * JavaScriptCore.exp:
1651
1652 2010-09-06  Chao-ying Fu  <fu@mips.com>
1653
1654         Reviewed by Oliver Hunt.
1655
1656         Support JSVALUE32_64 on MIPS
1657         https://bugs.webkit.org/show_bug.cgi?id=43999
1658
1659         Add missing functions to support JSVALUE32_64 on MIPS.
1660         Remove JSVALUE32 as the default for MIPS.
1661
1662         * assembler/MIPSAssembler.h:
1663         (JSC::MIPSAssembler::divd):
1664         (JSC::MIPSAssembler::mthc1):
1665         (JSC::MIPSAssembler::cvtwd):
1666         * assembler/MacroAssemblerMIPS.h:
1667         (JSC::MacroAssemblerMIPS::neg32):
1668         (JSC::MacroAssemblerMIPS::branchOr32):
1669         (JSC::MacroAssemblerMIPS::set8):
1670         (JSC::MacroAssemblerMIPS::loadDouble):
1671         (JSC::MacroAssemblerMIPS::divDouble):
1672         (JSC::MacroAssemblerMIPS::convertInt32ToDouble):
1673         (JSC::MacroAssemblerMIPS::branchDouble):
1674         (JSC::MacroAssemblerMIPS::branchConvertDoubleToInt32):
1675         (JSC::MacroAssemblerMIPS::zeroDouble):
1676         * jit/JIT.h:
1677         * jit/JITOpcodes32_64.cpp:
1678         (JSC::JIT::privateCompileCTINativeCall):
1679         * jit/JITPropertyAccess32_64.cpp:
1680         (JSC::JIT::privateCompilePutByIdTransition):
1681         * jit/JITStubs.cpp:
1682         (JSC::JITThunks::JITThunks):
1683         * jit/JITStubs.h:
1684         * wtf/Platform.h:
1685
1686 2010-09-06  Robert Hogan  <robert@webkit.org>
1687
1688         Unreviewed, compile fix.
1689
1690         Fix compile failure in r66843
1691
1692         Revert to original patch in bugzilla. Leave bug open for
1693         discussion on potential removal of double utf8 conversion.
1694
1695         https://bugs.webkit.org/show_bug.cgi?id=45240
1696
1697         * wtf/text/WTFString.cpp:
1698         (WTF::String::format):
1699
1700 2010-09-06  Robert Hogan  <robert@webkit.org>
1701
1702         Reviewed by Andreas Kling.
1703
1704         [Qt] utf8 encoding of console() messages
1705
1706         Unskip:
1707         http/tests/security/xssAuditor/embed-tag-null-char.html
1708         http/tests/security/xssAuditor/object-embed-tag-null-char.html
1709
1710         Both tests failed because Qt's implementation of String::format()
1711         is casting a utf8 result to String, which assumes latin1 in
1712         its constructor. So instead of casting a QString to a String, use
1713         StringImpl::create() instead. Unfortunately, this involves a lot
1714         of extra casts but the end result is correct.
1715
1716         https://bugs.webkit.org/show_bug.cgi?id=45240
1717
1718         * wtf/text/WTFString.cpp:
1719         (WTF::String::format):
1720
1721 2010-09-03  Alexey Proskuryakov  <ap@apple.com>
1722
1723         Reviewed by Darin Adler.
1724
1725         https://bugs.webkit.org/show_bug.cgi?id=45135
1726         <rdar://problem/7823714> TCMalloc_PageHeap doesn't hold a mutex while manipulating shared data
1727
1728         * wtf/FastMalloc.cpp:
1729         (WTF::TCMalloc_PageHeap::initializeScavenger): Make sure to create a non-recursive mutex
1730         regardless of platform default, so that we can assert that it's held (this is for platforms
1731         that don't have libdispatch).
1732         (WTF::TCMalloc_PageHeap::signalScavenger): Assert that the mutex is held, so we can look
1733         at m_scavengeThreadActive. For platforms that have libdispatch, assert that pageheap_lock
1734         is held.
1735         (WTF::TCMalloc_PageHeap::periodicScavenge): Make sure that pageheap_lock is held before
1736         manipulating m_scavengeThreadActive. Otherwise, there is an obvious race condition, and we
1737         can make unbalanced calls to dispatch_resume().
1738
1739 2010-09-03  Lucas De Marchi  <lucas.demarchi@profusion.mobi>
1740
1741         Reviewed by Martin Robinson.
1742
1743         [EFL] Regression (66531) Build break with Glib Support
1744         https://bugs.webkit.org/show_bug.cgi?id=45011
1745
1746         Move GtkTypedefs.h to GTypedefs.h and let it inside gobject directory
1747         since when glib is enabled, EFL port needs it, too.
1748
1749         * CMakeListsEfl.txt: Include gobject directory to find new header
1750         file.
1751         * GNUmakefile.am: Ditto.
1752         * wtf/CMakeListsEfl.txt: Ditto.
1753         * wtf/Platform.h: Include header if port is EFL and glib support is
1754         enabled.
1755         * wtf/gtk/GtkTypedefs.h: Removed.
1756         * wtf/gobject/GTypedefs.h: Added. Sections specific to GTK are now
1757         guarded by PLATFORM(GTK).
1758
1759 2010-09-03  Csaba Osztrogonác  <ossy@webkit.org>
1760
1761         Reviewed by Simon Hausmann.
1762
1763         Fix warning in wtf/ByteArray.h
1764         https://bugs.webkit.org/show_bug.cgi?id=44672
1765
1766         * wtf/ByteArray.h: Use maximal sized array for MSVC and unsized array for other compilers.
1767
1768 2010-09-02  Adam Barth  <abarth@webkit.org>
1769
1770         Reviewed by Eric Seidel.
1771
1772         Actually parse a URL from ParsedURL
1773         https://bugs.webkit.org/show_bug.cgi?id=45080
1774
1775         This patch only handles standard URLs.  At some point we'll need to
1776         distinguish between standard URLs and other kinds of URLs.
1777
1778         * wtf/url/api/ParsedURL.cpp:
1779         (WTF::ParsedURL::ParsedURL):
1780
1781 2010-09-02  Adam Barth  <abarth@webkit.org>
1782
1783         Reviewed by Eric Seidel.
1784
1785         Add ParsedURL and URLString to WTFURL API
1786         https://bugs.webkit.org/show_bug.cgi?id=45078
1787
1788         Currently there's no actual URL parsing going on, but this patch is a
1789         start to sketching out the API.
1790
1791         * JavaScriptCore.xcodeproj/project.pbxproj:
1792         * wtf/url/api/ParsedURL.cpp: Added.
1793         (WTF::ParsedURL::ParsedURL):
1794         (WTF::ParsedURL::scheme):
1795         (WTF::ParsedURL::username):
1796         (WTF::ParsedURL::password):
1797         (WTF::ParsedURL::host):
1798         (WTF::ParsedURL::port):
1799         (WTF::ParsedURL::path):
1800         (WTF::ParsedURL::query):
1801         (WTF::ParsedURL::fragment):
1802         (WTF::ParsedURL::segment):
1803         * wtf/url/api/ParsedURL.h: Added.
1804         (WTF::ParsedURL::spec):
1805         * wtf/url/api/URLString.h: Added.
1806         (WTF::URLString::URLString):
1807         (WTF::URLString::string):
1808
1809 2010-09-02  Adam Barth  <abarth@webkit.org>
1810
1811         Reviewed by Eric Seidel.
1812
1813         Add WTFURL to the JavaScriptCore build on Mac
1814         https://bugs.webkit.org/show_bug.cgi?id=45075
1815
1816         Building code is good.
1817
1818         * JavaScriptCore.xcodeproj/project.pbxproj:
1819
1820 2010-09-02  Alexey Proskuryakov  <ap@apple.com>
1821
1822         Reviewed by Oliver Hunt.
1823
1824         https://bugs.webkit.org/show_bug.cgi?id=43230
1825         <rdar://problem/8254215> REGRESSION: Memory leak within JSParser::JSParser
1826
1827         One can't delete a ThreadSpecific object that has data in it. It's not even possible to
1828         enumerate data objects in all threads, much less destroy them from a thread that's destroying
1829         the ThreadSpecific.
1830
1831         * parser/JSParser.cpp:
1832         (JSC::JSParser::JSParser):
1833         * runtime/JSGlobalData.h: 
1834         * wtf/WTFThreadData.cpp:
1835         (WTF::WTFThreadData::WTFThreadData):
1836         * wtf/WTFThreadData.h:
1837         (WTF::WTFThreadData::approximatedStackStart):
1838         Moved stack guard tracking from JSGlobalData to WTFThreadData.
1839
1840         * wtf/ThreadSpecific.h: Made destructor unimplemented. It's dangerous, and we probably won't
1841         ever face a situation where we'd want to delete a ThreadSpecific object.
1842
1843 2010-09-01  Gavin Barraclough  <barraclough@apple.com>
1844
1845         Rubber stamped by Oliver Hunt.
1846
1847         Ecma-262 15.11.1.1 states that if the argument is undefined then an
1848         Error object's message property should be set to the empty string.
1849
1850         * runtime/ErrorInstance.cpp:
1851         (JSC::ErrorInstance::ErrorInstance):
1852         (JSC::ErrorInstance::create):
1853         * runtime/ErrorInstance.h:
1854         * runtime/ErrorPrototype.cpp:
1855         (JSC::ErrorPrototype::ErrorPrototype):
1856
1857 2010-08-31  Darin Adler  <darin@apple.com>
1858
1859         Reviewed by Anders Carlsson.
1860
1861         * wtf/FastMalloc.cpp:
1862         (WTF::TCMalloc_PageHeap::scavenge): Replaced somewhat-quirky code that
1863         mixed types with code that uses size_t.
1864
1865         * wtf/TCPageMap.h: Removed names of unused arguments to avoid warning.
1866
1867 2010-08-31  Martin Robinson  <mrobinson@igalia.com>
1868
1869         Reviewed by Gustavo Noronha Silva.
1870
1871         [GTK] Isolate all GTK+ typedefs into one file
1872         https://bugs.webkit.org/show_bug.cgi?id=44900
1873
1874         * GNUmakefile.am: Add GtkTypedefs.h to the source lists.
1875         * wtf/Platform.h: #include GtkTypedefs.h for the GTK+ build.
1876         * wtf/ThreadingPrimitives.h: Remove GTK+ typedefs.
1877         * wtf/gobject/GOwnPtr.h: Ditto.
1878         * wtf/gobject/GRefPtr.h: Ditto.
1879         * wtf/gtk/GtkTypedefs.h: Added.
1880
1881 2010-08-31  Martin Robinson  <mrobinson@igalia.com>
1882
1883         Reviewed by Gustavo Noronha Silva.
1884
1885         [GTK] Fix 'make dist' in preparation of the 1.3.3 release
1886         https://bugs.webkit.org/show_bug.cgi?id=44978
1887
1888         * GNUmakefile.am: Adding missing headers to the sources list.
1889
1890 2010-08-31  Chao-ying Fu  <fu@mips.com>
1891
1892         Reviewed by Oliver Hunt.
1893
1894         Support emit_op_mod() for MIPS
1895         https://bugs.webkit.org/show_bug.cgi?id=42855
1896
1897         This patch uses MIPS div instructions for op_mod to improve performance.
1898
1899         * assembler/MIPSAssembler.h:
1900         (JSC::MIPSAssembler::div):
1901         * jit/JITArithmetic.cpp:
1902         (JSC::JIT::emit_op_mod):
1903         (JSC::JIT::emitSlow_op_mod):
1904
1905 2010-08-31  Csaba Osztrogonác  <ossy@webkit.org>
1906
1907         Reviewed by Darin Adler.
1908
1909         Modify ASSERT_UNUSED and UNUSED_PARAM similar to Qt's Q_UNUSED.
1910         https://bugs.webkit.org/show_bug.cgi?id=44870
1911
1912         * wtf/Assertions.h:
1913         * wtf/UnusedParam.h:
1914
1915 2010-08-31  Benjamin Poulain  <benjamin.poulain@nokia.com>
1916
1917         Reviewed by Kenneth Rohde Christiansen.
1918
1919         JSC TimeoutChecker::didTimeOut overflows on ARM
1920         https://bugs.webkit.org/show_bug.cgi?id=38538
1921
1922         Make getCPUTime() return values relative to the first call.
1923         The previous implementation relied on simply on currentTime(), which
1924         return a time since epoch and not a time since the thread started. This
1925         made the return value of getCPUTime() overflow on 32 bits.
1926
1927         * runtime/TimeoutChecker.cpp:
1928         (JSC::getCPUTime):
1929
1930 2010-08-30  Mihai Parparita  <mihaip@chromium.org>
1931
1932         Reviewed by Adam Barth.
1933
1934         HISTORY_ALWAYS_ASYNC should be removed (history should always be async)
1935         https://bugs.webkit.org/show_bug.cgi?id=44315
1936
1937         Remove ENABLE_HISTORY_ALWAYS_ASYNC #define.
1938
1939         * wtf/Platform.h: 
1940
1941 2010-08-30  Chris Rogers  <crogers@google.com>
1942
1943         Reviewed by Kenneth Russell.
1944
1945         Fix namespace for wtf/Complex.h and wtf/Vector3.h
1946         https://bugs.webkit.org/show_bug.cgi?id=44892
1947
1948         * wtf/Complex.h:
1949         * wtf/Vector3.h:
1950
1951 2010-08-30  Andy Estes  <aestes@apple.com>
1952
1953         Reviewed by Eric Carlson.
1954
1955         Strings returned by asciiDebug() should be NULL-terminated.
1956         https://bugs.webkit.org/show_bug.cgi?id=44866
1957
1958         * wtf/text/WTFString.cpp:
1959         (asciiDebug):
1960
1961 2010-08-30  Zoltan Herczeg  <zherczeg@webkit.org>
1962
1963         Reviewed by Darin Adler.
1964
1965         Refactor number parsing in the lexer
1966         https://bugs.webkit.org/show_bug.cgi?id=44104
1967
1968         Number parsing was full of gotos, and needed a complete
1969         redesign to remove them (Only one remained). Furthermore
1970         integer arithmetic is empolyed for fast cases (= small
1971         integer numbers).
1972
1973         * parser/Lexer.cpp:
1974         (JSC::Lexer::parseHex):
1975         (JSC::Lexer::parseOctal):
1976         (JSC::Lexer::parseDecimal):
1977         (JSC::Lexer::parseNumberAfterDecimalPoint):
1978         (JSC::Lexer::parseNumberAfterExponentIndicator):
1979         (JSC::Lexer::lex):
1980         * parser/Lexer.h:
1981
1982 2010-08-29  Darin Adler  <darin@apple.com>
1983
1984         Fix Qt build.
1985
1986         * wtf/unicode/glib/UnicodeMacrosFromICU.h: Added U_IS_BMP.
1987         * wtf/unicode/qt4/UnicodeQt4.h: Ditto.
1988         * wtf/unicode/wince/UnicodeWince.h: Ditto.
1989
1990 2010-08-29  Kwang Yul Seo  <skyul@company100.net>
1991
1992         Reviewed by Kent Tamura.
1993
1994         [BREWMP] Port vprintf_stderr_common
1995         https://bugs.webkit.org/show_bug.cgi?id=33568
1996
1997         Use BREW's DBGPRINTF to output debug messages.
1998
1999         * wtf/Assertions.cpp:
2000
2001 2010-08-28  Gavin Barraclough  <barraclough@apple.com>
2002
2003         Reviewed by Oliver Hunt.
2004
2005         Bug 44830 - In Array's prototype functyions we're incorrectly handing large index values
2006
2007         We are in places casting doubles to unsigneds, and unsigneds to ints, without always check
2008         that the result is within bounds. This is problematic in the case of double-to-unsigned
2009         conversion because we should be saturating to array length.
2010
2011         Also, the error return value from Array.splice should be [], not undefined.
2012
2013         I don't see any security concerns here. These methods are spec'ed in such a way that they
2014         can be applied to non Array objects, so in all cases the (potentially bogus) indices are
2015         being passed to functions that will safely check accesses are within bounds.
2016
2017         * runtime/ArrayPrototype.cpp:
2018         (JSC::argumentClampedIndexFromStartOrEnd):
2019         (JSC::arrayProtoFuncJoin):
2020         (JSC::arrayProtoFuncConcat):
2021         (JSC::arrayProtoFuncReverse):
2022         (JSC::arrayProtoFuncShift):
2023         (JSC::arrayProtoFuncSlice):
2024         (JSC::arrayProtoFuncSort):
2025         (JSC::arrayProtoFuncSplice):
2026         (JSC::arrayProtoFuncUnShift):
2027         (JSC::arrayProtoFuncFilter):
2028         (JSC::arrayProtoFuncMap):
2029         (JSC::arrayProtoFuncEvery):
2030         (JSC::arrayProtoFuncForEach):
2031         (JSC::arrayProtoFuncSome):
2032         (JSC::arrayProtoFuncReduce):
2033         (JSC::arrayProtoFuncReduceRight):
2034         (JSC::arrayProtoFuncIndexOf):
2035         (JSC::arrayProtoFuncLastIndexOf):
2036         * runtime/JSValue.h:
2037         (JSC::JSValue::toUInt32):
2038
2039 2010-08-28  Pratik Solanki  <psolanki@apple.com>
2040
2041         Reviewed by Dan Bernstein.
2042
2043         Add an ENABLE define for purgeable memory support
2044         https://bugs.webkit.org/show_bug.cgi?id=44777
2045
2046         * wtf/Platform.h:
2047
2048 2010-08-27  Kimmo Kinnunen  <kimmo.t.kinnunen@nokia.com>
2049
2050         Reviewed by Kenneth Rohde Christiansen.
2051
2052         [Qt] NPAPI Plugin metadata should be cached, and loading a plugin should not require loading every plugin
2053         https://bugs.webkit.org/show_bug.cgi?id=43179
2054
2055         Add ENABLE_NETSCAPE_PLUGIN_METADATA_CACHE flag to enable persistent
2056         NPAPI Plugin Cache. The flag is enabled by default.
2057
2058         * wtf/Platform.h: Add ENABLE_NETSCAPE_PLUGIN_METADATA_CACHE
2059
2060 2010-07-27  Jer Noble  <jer.noble@apple.com>
2061
2062         Reviewed by Eric Carlson.
2063
2064         Add JavaScript API to allow a page to go fullscreen.
2065         rdar://problem/6867795
2066         https://bugs.webkit.org/show_bug.cgi?id=43099
2067
2068         * wtf/Platform.h: Enable FULLSCREEN_API mode for the Mac (except iOS).
2069
2070 2010-08-27  Gavin Barraclough  <barraclough@apple.com>
2071
2072         Windows build fix pt 2.
2073
2074         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
2075
2076 2010-08-27  Gavin Barraclough  <barraclough@apple.com>
2077
2078         Windows build fix pt 1.
2079
2080         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
2081
2082 2010-08-27  Gavin Barraclough  <barraclough@apple.com>
2083
2084         Reviewed by Oliver Hunt.
2085
2086         Bug 44745 - Number.toFixed/toExponential/toPrecision are inaccurate.
2087
2088         These methods should be using a version of dtoa that can generate results accurate
2089         to the requested precision, whereas our version of dtoa is only currently able to
2090         support producing results sufficiently accurate to distinguish the value from any
2091         other IEEE-754 double precision number.
2092
2093         This change has no impact on benchmarks we track.
2094
2095         On microbenchmarks for these functions, this is a slight regression where a high
2096         precision is requested (dtoa now need to iterate further to generate a a greater
2097         number of digits), but with smaller precision values (hopefully more common) this
2098         improves performance, since it reduced the accurate of result dtoa is required,
2099         to produce, and removes the need to pre-round values before calling dtoa. 
2100
2101         * JavaScriptCore.exp:
2102             doubleToStringInJavaScriptFormat renamed to numberToString
2103
2104         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
2105             doubleToStringInJavaScriptFormat renamed to numberToString
2106
2107         * runtime/UString.cpp:
2108         (JSC::UString::number):
2109             doubleToStringInJavaScriptFormat renamed to numberToString
2110
2111         * wtf/DecimalNumber.h:
2112         (WTF::DecimalNumber::DecimalNumber):
2113         (WTF::DecimalNumber::toStringDecimal):
2114         (WTF::DecimalNumber::toStringExponential):
2115             Remove all pre-rounding of values, instead call dtoa correctly.
2116
2117         * wtf/dtoa.cpp:
2118         (WTF::dtoa):
2119         * wtf/dtoa.h:
2120             Reenable support for rounding to specific-figures/decimal-places in dtoa.
2121             Modify to remove unbiased rounding, provide ECMA required away-from-zero.
2122             Rewrite doubleToStringInJavaScriptFormat to use DecimalNumber, rename to
2123             numberToString.
2124
2125 2010-08-27  Chao-ying Fu  <fu@mips.com>
2126
2127         Reviewed by Oliver Hunt.
2128
2129         Byte alignment issue on MIPS
2130         https://bugs.webkit.org/show_bug.cgi?id=29415
2131
2132         MIPS accesses one byte at a time for now to avoid the help from the
2133         kernel to fix unaligned accesses.
2134
2135         * wtf/text/AtomicString.cpp:
2136         (WebCore::equal):
2137         * wtf/text/StringHash.h:
2138         (WebCore::StringHash::equal):
2139
2140 2010-08-27  Xan Lopez  <xlopez@igalia.com>
2141
2142         Reviewed by Tor Arne Vestbø.
2143
2144         Fix a couple of typos in comment.
2145
2146         * bytecode/CodeBlock.h:
2147
2148 2010-08-26  Gavin Barraclough  <barraclough@apple.com>
2149
2150         Windows build fix.
2151
2152         * wtf/dtoa.cpp:
2153
2154 2010-08-26  Gavin Barraclough  <baraclough@apple.com>
2155
2156         Reviewed by Sam Weinig.
2157
2158         Bug 44735 - Clean up dtoa.cpp
2159         Remove unused & unmaintained code paths, reformat code to match
2160         coding standard & use platform #defines from Platform.h directly.
2161
2162         * wtf/dtoa.cpp:
2163         (WTF::storeInc):
2164         (WTF::multadd):
2165         (WTF::s2b):
2166         (WTF::lo0bits):
2167         (WTF::mult):
2168         (WTF::pow5mult):
2169         (WTF::lshift):
2170         (WTF::diff):
2171         (WTF::ulp):
2172         (WTF::b2d):
2173         (WTF::d2b):
2174         (WTF::ratio):
2175         (WTF::):
2176         (WTF::strtod):
2177         (WTF::quorem):
2178         (WTF::dtoa):
2179
2180 2010-08-26  Gavin Barraclough  <barraclough@apple.com>
2181
2182         Rubber Stamped by Oliver Hunt.
2183
2184         Partially revert r65959. The toString changes regressed the v8 tests,
2185         but keep the toFixed/toExponential/toPrecision changes.
2186
2187         * JavaScriptCore.exp:
2188         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
2189         * runtime/NumberPrototype.cpp:
2190         * runtime/UString.cpp:
2191         (JSC::UString::number):
2192         * wtf/DecimalNumber.h:
2193         * wtf/dtoa.cpp:
2194         (WTF::append):
2195         (WTF::doubleToStringInJavaScriptFormat):
2196         * wtf/dtoa.h:
2197         * wtf/text/WTFString.cpp:
2198         * wtf/text/WTFString.h:
2199
2200 2010-08-26  James Robinson  <jamesr@chromium.org>
2201
2202         Reviewed by Darin Fisher.
2203
2204         [chromium] Remove the USE(GLES2_RENDERING) define and associated code
2205         https://bugs.webkit.org/show_bug.cgi?id=43761
2206
2207         Remove WTF_USE_GLES2_RENDERING from the list of defines in chromium, it's unused.
2208
2209         * wtf/Platform.h:
2210
2211 2010-08-26  Gavin Barraclough  <barraclough@apple.com>
2212
2213         Rolling out r64608, this regressed performance.
2214
2215         * JavaScriptCore.xcodeproj/project.pbxproj:
2216         * assembler/ARMAssembler.cpp:
2217         (JSC::ARMAssembler::executableCopy):
2218         * assembler/LinkBuffer.h:
2219         (JSC::LinkBuffer::LinkBuffer):
2220         (JSC::LinkBuffer::~LinkBuffer):
2221         (JSC::LinkBuffer::performFinalization):
2222         * assembler/MIPSAssembler.h:
2223         (JSC::MIPSAssembler::executableCopy):
2224         * assembler/X86Assembler.h:
2225         (JSC::X86Assembler::executableCopy):
2226         * bytecode/StructureStubInfo.h:
2227         (JSC::StructureStubInfo::initGetByIdProto):
2228         (JSC::StructureStubInfo::initGetByIdChain):
2229         (JSC::StructureStubInfo::initGetByIdSelfList):
2230         (JSC::StructureStubInfo::initGetByIdProtoList):
2231         (JSC::StructureStubInfo::initPutByIdTransition):
2232         * jit/ExecutableAllocator.cpp:
2233         (JSC::ExecutablePool::systemAlloc):
2234         * jit/ExecutableAllocator.h:
2235         (JSC::ExecutablePool::create):
2236         (JSC::ExecutableAllocator::ExecutableAllocator):
2237         (JSC::ExecutableAllocator::poolForSize):
2238         (JSC::ExecutablePool::ExecutablePool):
2239         (JSC::ExecutablePool::poolAllocate):
2240         * jit/ExecutableAllocatorFixedVMPool.cpp:
2241         (JSC::FixedVMPoolAllocator::allocInternal):
2242         * jit/JIT.cpp:
2243         (JSC::JIT::privateCompile):
2244         * jit/JIT.h:
2245         (JSC::JIT::compileGetByIdProto):
2246         (JSC::JIT::compileGetByIdSelfList):
2247         (JSC::JIT::compileGetByIdProtoList):
2248         (JSC::JIT::compileGetByIdChainList):
2249         (JSC::JIT::compileGetByIdChain):
2250         (JSC::JIT::compilePutByIdTransition):
2251         (JSC::JIT::compilePatchGetArrayLength):
2252         * jit/JITOpcodes.cpp:
2253         (JSC::JIT::privateCompileCTIMachineTrampolines):
2254         * jit/JITOpcodes32_64.cpp:
2255         (JSC::JIT::privateCompileCTIMachineTrampolines):
2256         (JSC::JIT::privateCompileCTINativeCall):
2257         * jit/JITPropertyAccess.cpp:
2258         (JSC::JIT::stringGetByValStubGenerator):
2259         (JSC::JIT::privateCompilePutByIdTransition):
2260         (JSC::JIT::privateCompilePatchGetArrayLength):
2261         (JSC::JIT::privateCompileGetByIdProto):
2262         (JSC::JIT::privateCompileGetByIdSelfList):
2263         (JSC::JIT::privateCompileGetByIdProtoList):
2264         (JSC::JIT::privateCompileGetByIdChainList):
2265         (JSC::JIT::privateCompileGetByIdChain):
2266         * jit/JITPropertyAccess32_64.cpp:
2267         (JSC::JIT::stringGetByValStubGenerator):
2268         (JSC::JIT::privateCompilePutByIdTransition):
2269         (JSC::JIT::privateCompilePatchGetArrayLength):
2270         (JSC::JIT::privateCompileGetByIdProto):
2271         (JSC::JIT::privateCompileGetByIdSelfList):
2272         (JSC::JIT::privateCompileGetByIdProtoList):
2273         (JSC::JIT::privateCompileGetByIdChainList):
2274         (JSC::JIT::privateCompileGetByIdChain):
2275         * jit/JITStubs.cpp:
2276         (JSC::JITThunks::tryCachePutByID):
2277         (JSC::JITThunks::tryCacheGetByID):
2278         (JSC::DEFINE_STUB_FUNCTION):
2279         (JSC::getPolymorphicAccessStructureListSlot):
2280         * jit/JITStubs.h:
2281         * jit/SpecializedThunkJIT.h:
2282         (JSC::SpecializedThunkJIT::finalize):
2283         * runtime/ExceptionHelpers.cpp:
2284         * runtime/ExceptionHelpers.h:
2285         * runtime/Executable.cpp:
2286         (JSC::EvalExecutable::compileInternal):
2287         (JSC::ProgramExecutable::compileInternal):
2288         (JSC::FunctionExecutable::compileForCallInternal):
2289         (JSC::FunctionExecutable::compileForConstructInternal):
2290         (JSC::FunctionExecutable::reparseExceptionInfo):
2291         (JSC::EvalExecutable::reparseExceptionInfo):
2292         * yarr/RegexJIT.cpp:
2293         (JSC::Yarr::RegexGenerator::compile):
2294
2295 2010-08-26  Gavin Barraclough  <barraclough@apple.com>
2296
2297         Reviewed by Brady Eidson.
2298
2299         Bug 44655 - Add debug only convenience methods to obtain a Vector<char> from a String/StringImpl.
2300
2301         * wtf/text/WTFString.cpp:
2302         (asciiDebug):
2303             Return a Vector<char> containing the contents of a string as ASCII.
2304
2305 2010-08-26  Sam Weinig  <sam@webkit.org>
2306
2307         Reviewed by Darin Adler.
2308
2309         Add PassOwnArrayPtr
2310         https://bugs.webkit.org/show_bug.cgi?id=44627
2311
2312         * GNUmakefile.am:
2313         * JavaScriptCore.vcproj/WTF/WTF.vcproj:
2314         * JavaScriptCore.xcodeproj/project.pbxproj:
2315         Add the new files.
2316
2317         * wtf/Forward.h:
2318         Forward declare PassOwnArrayPtr.
2319         
2320         * wtf/OwnArrayPtr.h:
2321         Mimic the OwnPtr interface.
2322
2323         * wtf/OwnArrayPtrCommon.h: Added.
2324         (WTF::deleteOwnedArrayPtr):
2325         Move delete function here so it can be shared by OwnArrayPtr and
2326         PassOwnArrayPtr.
2327
2328         * wtf/PassOwnArrayPtr.h: Added.
2329         Mimic the PassOwnPtr interface.
2330
2331 2010-08-26  Oliver Hunt  <oliver@apple.com>
2332
2333         Reviewed by Gavin Barraclough.
2334
2335         [JSC] JavaScript parsing error when loading Equifax web page
2336         https://bugs.webkit.org/show_bug.cgi?id=42900
2337
2338         '-->' is ostensibly only meant to occur when there is only
2339         whitespace preceeding it on the line.  However firefox treats
2340         multiline comments as a space character, so they are allowed.
2341         One side effect of the firefox model is that any line terminators
2342         inside the multiline comment are ignored, so
2343
2344             foo/*
2345             */-->
2346
2347         is treated as
2348
2349             foo -->
2350
2351         and so '-->' will not be a comment in this case.  Happily this simply
2352         means that to fix this issue all we need to do is stop updating
2353         m_atLineStart when handling multiline comments.
2354
2355         * parser/Lexer.cpp:
2356         (JSC::Lexer::lex):
2357
2358 2010-08-25  Oliver Hunt  <oliver@apple.com>
2359
2360         Reviewed by Geoffrey Garen.
2361
2362         Improve overflow handling in StringImpl::Replace
2363         https://bugs.webkit.org/show_bug.cgi?id=42502
2364         <rdar://problem/8203794>
2365
2366         Harden StringImpl::replace against overflow -- I can't see how this
2367         could be abused, but it's better to be safe than sorry.
2368
2369         * wtf/text/StringImpl.cpp:
2370         (WTF::StringImpl::replace):
2371
2372 2010-08-26  Martin Robinson  <mrobinson@igalia.com>
2373
2374         Reviewed by Xan Lopez.
2375
2376         [GTK] The GNUmakefile.am files contain a myriad of confusing preprocessor and compiler flag definitions
2377         https://bugs.webkit.org/show_bug.cgi?id=44624
2378
2379         Clean up GNUmakefile.am.
2380
2381         * GNUmakefile.am: Alphabetize the include order in javascriptcore_cppflags. Move
2382         a couple include lines from the top-level GNUmakefile.am.
2383
2384 2010-08-25  Xan Lopez  <xlopez@igalia.com>
2385
2386         Reviewed by Kent Tamura.
2387
2388         Local variables 'k' and 'y' in s2b() in dtoa.cpp are computed but not used
2389         https://bugs.webkit.org/show_bug.cgi?id=29259
2390
2391         Remove unused code in dtoa.cpp, spotted by Wan-Teh Chang.
2392
2393         * wtf/dtoa.cpp:
2394         (WTF::s2b):
2395
2396 2010-08-25  Kwang Yul Seo  <skyul@company100.net>
2397
2398         Reviewed by Kevin Ollivier.
2399
2400         [BREWMP] Add build system
2401         https://bugs.webkit.org/show_bug.cgi?id=44645
2402
2403         Make waf script portable so that we can add more ports.
2404
2405         * wscript:
2406
2407 2010-08-25  Michael Saboff  <msaboff@apple.com>
2408
2409         Reviewed by Sam Weinig.
2410
2411         Remove the single entry regular expression cache introduced as part of
2412         the fix for https://bugs.webkit.org/show_bug.cgi?id=41238.
2413         The performance problem in Dromaeo that initiated that bug is no 
2414         longer present. Dromaeo has been modified so that the regular
2415         expression tests are somewhat random and don't benefit from a
2416         single entry cache.
2417
2418         * runtime/RegExp.cpp:
2419         (JSC::RegExp::RegExp):
2420         (JSC::RegExp::match):
2421         * runtime/RegExp.h:
2422
2423 2010-08-25  Martin Robinson  <mrobinson@igalia.com>
2424
2425         Reviewed by Gustavo Noronha Silva.
2426
2427         Cairo and EFL port shouldn't depend on glib.
2428         https://bugs.webkit.org/show_bug.cgi?id=44354
2429
2430         Replace GRefPtr with PlatformRefPtr. Keep GLib specific bits in
2431         GRefPtr.h.
2432
2433         * GNUmakefile.am: Add PlatformRefPtr.h to the source list.
2434         * wtf/PlatformRefPtr.h: Migrated from GRefPtr.h.
2435         (WTF::PlatformRefPtr::PlatformRefPtr): Ditto.
2436         (WTF::PlatformRefPtr::~PlatformRefPtr): Ditto.
2437         (WTF::PlatformRefPtr::clear): Ditto.
2438         (WTF::PlatformRefPtr::get): Ditto.
2439         (WTF::PlatformRefPtr::operator*): Ditto.
2440         (WTF::PlatformRefPtr::operator->): Ditto.
2441         (WTF::PlatformRefPtr::operator!): Ditto.
2442         (WTF::PlatformRefPtr::operator UnspecifiedBoolType): Ditto.
2443         (WTF::PlatformRefPtr::hashTableDeletedValue): Ditto.
2444         (WTF::::operator): Ditto.
2445         (WTF::::swap): Ditto.
2446         (WTF::swap): Ditto.
2447         (WTF::operator==): Ditto.
2448         (WTF::operator!=): Ditto.
2449         (WTF::static_pointer_cast): Ditto.
2450         (WTF::const_pointer_cast): Ditto.
2451         (WTF::getPtr): Ditto.
2452         (WTF::adoptPlatformRef): Ditto.
2453         * wtf/gobject/GRefPtr.cpp: Changes to reflect new names.
2454         (WTF::refPlatformPtr):
2455         (WTF::derefPlatformPtr):
2456         * wtf/gobject/GRefPtr.h: Ditto.
2457         (WTF::refPlatformPtr):
2458         (WTF::derefPlatformPtr):
2459
2460 2010-08-25  Xan Lopez  <xlopez@igalia.com>
2461
2462         Reviewed by Alexey Proskuryakov.
2463
2464         Remove dead code in JSGlobalObject
2465         https://bugs.webkit.org/show_bug.cgi?id=44615
2466
2467         The recursion data member in the JSGlobalObject and its getter
2468         plus inc/dec methods seems to be unused, remove them.
2469
2470         * runtime/JSGlobalObject.cpp:
2471         (JSC::JSGlobalObject::init):
2472         * runtime/JSGlobalObject.h:
2473
2474 2010-08-25  Michael Saboff  <msaboff@apple.com>
2475
2476         Reviewed by Geoffrey Garen.
2477
2478         Changed the initial and subsequent allocation of vector storage to
2479         Array()s. The changes are to limit sparse arrays to 100000 entries
2480         and fixed the sparse map to vector storage conversion to use the 
2481         minimum amount of memory needed to store the current number of entries.
2482         These changes address https://bugs.webkit.org/show_bug.cgi?id=43707
2483
2484         * runtime/JSArray.cpp:
2485         (JSC::JSArray::putSlowCase):
2486         (JSC::JSArray::getNewVectorLength):
2487
2488 2010-08-16  Gabor Loki  <loki@webkit.org>
2489
2490         Reviewed by Gavin Barraclough.
2491
2492         Avoid increasing required alignment of target type warning
2493         https://bugs.webkit.org/show_bug.cgi?id=43963
2494
2495         Fix platform independent alignment warnings.
2496
2497         * wtf/ListHashSet.h:
2498         (WTF::ListHashSetNodeAllocator::pool):
2499
2500 2010-08-19  Gabor Loki  <loki@webkit.org>
2501
2502         Reviewed by Gavin Barraclough.
2503
2504         Enable truncated floating point feature on ARM
2505         https://bugs.webkit.org/show_bug.cgi?id=44233
2506
2507         Enable truncated floating point feature with the help of VCVTR.S32.F64
2508         instruction. If VCVTR.S32.F64 can't fit the result into a 32-bit
2509         integer/register, it saturates at INT_MAX or INT_MIN. Testing this
2510         looks quicker than testing FPSCR for exception.
2511
2512         Inspired by Jacob Bramley's patch from JaegerMonkey
2513
2514         * assembler/ARMAssembler.h:
2515         (JSC::ARMAssembler::):
2516         (JSC::ARMAssembler::cmn_r):
2517         (JSC::ARMAssembler::vcvtr_s32_f64_r):
2518         * assembler/MacroAssemblerARM.h:
2519         (JSC::MacroAssemblerARM::supportsFloatingPointTruncate):
2520         (JSC::MacroAssemblerARM::branchTruncateDoubleToInt32):
2521
2522 2010-08-24  Gavin Barraclough  <barraclough@apple.com>
2523
2524         Windows build fix.
2525
2526         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
2527
2528 2010-08-24  Gavin Barraclough  <barraclough@apple.com>
2529
2530         Windows build fix.
2531
2532         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
2533         * wtf/DecimalNumber.h:
2534         (WTF::DecimalNumber::intPow10):
2535         * wtf/dtoa.cpp:
2536         * wtf/dtoa.h:
2537
2538 2010-08-23  Gavin Barraclough  <barraclough@apple.com>
2539
2540         Reviewed by Oliver Hunt.
2541
2542         https://bugs.webkit.org/show_bug.cgi?id=44487
2543
2544         Number.toExponential/toFixed/toPrecision all contain a spaghetti of duplicated
2545         code & unnecessary complexity. Add a new DecimalNumber class to encapsulate
2546         double to string conversion, share the implementations of rounding &
2547         decimal-fraction/exponential formatting.
2548
2549         * JavaScriptCore.exp:
2550             Update exports.
2551
2552         * runtime/NumberPrototype.cpp:
2553         (JSC::toThisNumber):
2554         (JSC::getIntegerArgumentInRange):
2555             Helper methods used in implementing toExponential/toFixed/toString.
2556         (JSC::numberProtoFuncToExponential):
2557         (JSC::numberProtoFuncToFixed):
2558         (JSC::numberProtoFuncToPrecision):
2559             Reimplemented using new DecimalNumber class.
2560             
2561         * runtime/UString.cpp:
2562         (JSC::UString::number):
2563             Updated to call numberToString.
2564
2565         * wtf/DecimalNumber.h: Added.
2566         (WTF::):
2567         (WTF::DecimalNumber::DecimalNumber):
2568         (WTF::DecimalNumber::toStringDecimal):
2569         (WTF::DecimalNumber::toStringExponential):
2570         (WTF::DecimalNumber::sign):
2571         (WTF::DecimalNumber::exponent):
2572         (WTF::DecimalNumber::significand):
2573         (WTF::DecimalNumber::precision):
2574         (WTF::DecimalNumber::init):
2575         (WTF::DecimalNumber::isZero):
2576         (WTF::DecimalNumber::roundToPrecision):
2577             New class to perform double to string conversion.
2578             Has three constructors, which allow conversion with no rounding,
2579             rounding to significant-figures, or rounding to decimal-places,
2580             and two methods for formatting strings, either using decimal
2581             fraction or exponential encoding. Internal implementation uses
2582             pre-rounding of the values before calling dtoa rather than
2583             relying on dtoa to correctly round, which does not produce
2584             fully accurate results. Hopefully we can address this in the
2585             near future.
2586
2587         * wtf/dtoa.cpp:
2588         (WTF::intPow10):
2589         * wtf/dtoa.h:
2590             intPow10 is used internally by DecimalNumber.
2591             
2592         * wtf/text/WTFString.cpp:
2593         (WTF::copyToString):
2594         (WTF::nanOrInfToString):
2595             Used internally in numberToString for NaN/Infinity handling.
2596         (WTF::numberToString):
2597             Added new method to convert doubles to strings.
2598
2599         * wtf/text/WTFString.h:
2600             Added declaration for numberToString. This is here because
2601             we should switch over to using this for all double to string
2602             conversion in WebCore (see section 2.4.4.3 of the HTML5 spec).
2603
2604 2010-08-24  Oliver Hunt  <oliver@apple.com>
2605
2606         Reviewed by Geoff Garen.
2607
2608         Don't seed the JS random number generator from time()
2609         https://bugs.webkit.org/show_bug.cgi?id=41868
2610         <rdar://problem/8171025>
2611
2612         Switch to using the secure random number generator to
2613         seed the fast random generator, and make the generator
2614         be per global object.
2615
2616         * runtime/JSGlobalData.cpp:
2617         (JSC::JSGlobalData::JSGlobalData):
2618         * runtime/JSGlobalData.h:
2619         * runtime/JSGlobalObject.h:
2620         (JSC::JSGlobalObject::JSGlobalObjectData::JSGlobalObjectData):
2621         (JSC::JSGlobalObject::weakRandomNumber):
2622         * runtime/MathObject.cpp:
2623         (JSC::mathProtoFuncRandom):
2624
2625 2010-08-24  Oliver Hunt  <oliver@apple.com>
2626
2627         Reviewed by Beth Dakin.
2628
2629         Make overflow guards in UString::utf8 explicit
2630         https://bugs.webkit.org/show_bug.cgi?id=44540
2631
2632         Add an explicit overflow check prior to allocating our buffer,
2633         rather than implicitly relying on the guard in convertUTF16ToUTF8.
2634
2635         * runtime/UString.cpp:
2636         (JSC::UString::utf8):
2637
2638 2010-08-24  Yael Aharon  <yael.aharon@nokia.com>
2639
2640         Reviewed by Simon Hausmann.
2641
2642         [Symbian] Fix commit/decommit of system memory using RChunk
2643
2644         Swap accidentially reversed start and m_base values for determining the
2645         offset within the RChunk.
2646
2647         * wtf/PageReservation.h:
2648         (WTF::PageReservation::systemCommit):
2649         (WTF::PageReservation::systemDecommit):
2650
2651 2010-08-23  Patrick Gansterer  <paroga@paroga.com>
2652
2653         Rubber-stamped by Gabor Loki.
2654
2655         [WINCE] Buildfix for GeneratedJITStubs after r64818
2656         https://bugs.webkit.org/show_bug.cgi?id=44469
2657
2658         Use " THUNK_RETURN_ADDRESS_OFFSET" instead of "#offset#".
2659
2660         * jit/JITStubs.cpp:
2661
2662 2010-08-23  Oliver Hunt  <oliver@apple.com>
2663
2664         Reviewed by Darin Adler.
2665
2666         [REGRESSION] Interpreter incorrectly excludes prototype chain when validating put_by_id_transition
2667         https://bugs.webkit.org/show_bug.cgi?id=44240
2668         <rdar://problem/8328995>
2669
2670         Fix an error I introduced when cleaning up the interpreter side of the logic
2671         to prevent setters being called in object initialisers.
2672
2673         * interpreter/Interpreter.cpp:
2674         (JSC::Interpreter::privateExecute):
2675
2676 2010-08-23  Michael Saboff  <msaboff@apple.com>
2677
2678         Reviewed by Oliver Hunt.
2679
2680         Fixed case where a single character search string in a string.replace()
2681         did not properly handle back reference replacement.  The fix is to 
2682         check for a '$' as part of the check to see if we can execute the
2683         single character replace optimization.
2684         https://bugs.webkit.org/show_bug.cgi?id=44067
2685
2686         * runtime/StringPrototype.cpp:
2687         (JSC::stringProtoFuncReplace):
2688
2689 2010-08-23  Oliver Hunt  <oliver@apple.com>
2690
2691         Reviewed by Gavin Barraclough.
2692
2693         JSON.stringify is much slower than Firefox on particular pathological input
2694         https://bugs.webkit.org/show_bug.cgi?id=44456
2695
2696         Make StringBuilder::reserveCapacity reserve additional space so we don't end up
2697         repeatedly copying the entire result string.
2698
2699         * runtime/StringBuilder.h:
2700         (JSC::StringBuilder::append):
2701         (JSC::StringBuilder::reserveCapacity):
2702
2703 2010-08-23  Jian Li  <jianli@chromium.org>
2704
2705         Reviewed by Darin Fisher.
2706
2707         Handle blob resource.
2708         https://bugs.webkit.org/show_bug.cgi?id=43941
2709
2710         * JavaScriptCore.exp: Add an export that is neede by BlobResourceHandle.
2711
2712 2010-08-19  Andreas Kling  <andreas.kling@nokia.com>
2713
2714         Reviewed by Geoffrey Garen.
2715
2716         JSC: Move the static_cast into to(U)Int32 fast case
2717         https://bugs.webkit.org/show_bug.cgi?id=44037
2718
2719         Do the static_cast<(u)int32_t> inline to avoid the function call overhead
2720         for easily converted values (within (u)int32_t range.)
2721
2722         * runtime/JSValue.cpp:
2723         (JSC::toInt32SlowCase):
2724         (JSC::toUInt32SlowCase):
2725         * runtime/JSValue.h:
2726         (JSC::JSValue::toInt32):
2727         (JSC::JSValue::toUInt32):
2728
2729 2010-08-18  Andreas Kling  <andreas.kling@nokia.com>
2730
2731         Reviewed by Geoffrey Garen.
2732
2733         REGRESSION(r58469): Math.pow() always returns double-backed JSValue which is extremely slow as array subscript
2734         https://bugs.webkit.org/show_bug.cgi?id=43742
2735
2736         Add codegen for pow() to return Int32 values when possible.
2737
2738         * jit/ThunkGenerators.cpp:
2739         (JSC::powThunkGenerator):
2740
2741 2010-08-18  Gabor Loki  <loki@webkit.org>
2742
2743         Reviewed by Gavin Barraclough.
2744
2745         The JITStackFrame is wrong using Thumb-2 JIT with JSVALUE32_64
2746         https://bugs.webkit.org/show_bug.cgi?id=43897
2747
2748         A 64 bits wide member in a structure is aligned to 8 bytes on ARM by
2749         default, but this is not taken into account in the offset defines of
2750         JITStackFrame.
2751
2752         * jit/JITStubs.cpp:
2753         * jit/JITStubs.h:
2754
2755 2010-08-18  Gavin Barraclough  <barraclough@apple.com>
2756
2757         Rubber stamped by Sam Weinig.
2758
2759         Rename UString::substr to substringSharingImpl, add to WTF::String.
2760         Now WTF::String can do everything that JSC::UString can do!
2761
2762         * JavaScriptCore.exp:
2763         * bytecode/CodeBlock.cpp:
2764         (JSC::escapeQuotes):
2765         * bytecompiler/NodesCodegen.cpp:
2766         (JSC::substitute):
2767         * parser/SourceProvider.h:
2768         (JSC::UStringSourceProvider::getRange):
2769         * runtime/FunctionPrototype.cpp:
2770         (JSC::insertSemicolonIfNeeded):
2771         * runtime/JSGlobalObjectFunctions.cpp:
2772         (JSC::parseInt):
2773         * runtime/JSONObject.cpp:
2774         (JSC::gap):
2775         (JSC::Stringifier::indent):
2776         (JSC::Stringifier::unindent):
2777         * runtime/JSString.cpp:
2778         (JSC::JSString::replaceCharacter):
2779         * runtime/NumberPrototype.cpp:
2780         (JSC::numberProtoFuncToFixed):
2781         (JSC::numberProtoFuncToPrecision):
2782         * runtime/StringPrototype.cpp:
2783         (JSC::stringProtoFuncReplace):
2784         (JSC::trimString):
2785         * runtime/UString.cpp:
2786         (JSC::UString::substringSharingImpl):
2787         * runtime/UString.h:
2788         * wtf/text/WTFString.cpp:
2789         (WTF::String::substringSharingImpl):
2790         * wtf/text/WTFString.h:
2791
2792 2010-08-18  Gavin Barraclough  <barraclough@apple.com>
2793
2794         Windows build fix.
2795
2796         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
2797         * JavaScriptCore.xcodeproj/project.pbxproj:
2798
2799 2010-08-18  Gavin Barraclough  <barraclough@apple.com>
2800
2801         Windows build fix.
2802
2803         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
2804         * JavaScriptCore.xcodeproj/project.pbxproj:
2805
2806 2010-08-17  Gavin Barraclough  <barraclough@apple.com>
2807
2808         Reviewed by Sam Weinig.
2809
2810         Bug 44146 - Remove toDouble/toUInt32 methods from UString.
2811
2812         These methods all implement JavaScript language specific behaviour, and as such
2813         are not suited to being on a generic string object.  They are also inefficient
2814         and incorrectly used, refactor & cleanup.  Uses of these methods really divide
2815         out into two cases.
2816
2817         ToNumber:
2818         Uses of toDouble from JSString and from parseFloat are implementing ecma's
2819         ToNumber conversion from strings (see ecma-262 9.3.1), so UString::toDouble
2820         should largely just be moved out to a global jsToNumber function.  ToNumber is
2821         capable of recognizing either decimal or hexadecimal numbers, but parseFloat
2822         should only recognize decimal values.  This is currently handled by testing for
2823         hexadecimal before calling toDouble, which should unnecessary - instead we can
2824         just split out the two parts to the grammar into separate functions. Also,
2825         strtod recognizes a set of literals (nan, inf, and infinity - all with any
2826         capitalization) - which are not defined by any of the specs we are implementing.
2827         To handle this we need to perform additional work in toDouble to convert the
2828         unsupported cases of infinities back to NaNs.  Instead we should simply remove
2829         support for this literals from strtod.  This should provide a more desirable
2830         behaviour for all clients of strtod.
2831
2832         Indexed properties:
2833         Uses of the toStrictUInt32 methods are were all converting property names to
2834         indices, and all uses of toUInt32 were incorrect; in all cases we should have
2835         been calling toUInt32.  This error results in some incorrect behaviour in the
2836         DOM (accessing property "0 " of a NodeList should fail; it currently does not).
2837         Move this method onto Identifier (our canonical property name), and make it
2838         always perform a strict conversion. Add a layout test to check NodeList does
2839         convert indexed property names correctly.
2840
2841         * JavaScriptCore.exp:
2842         * runtime/Arguments.cpp:
2843         (JSC::Arguments::getOwnPropertySlot):
2844         (JSC::Arguments::getOwnPropertyDescriptor):
2845         (JSC::Arguments::put):
2846         (JSC::Arguments::deleteProperty):
2847         * runtime/Identifier.cpp:
2848         (JSC::Identifier::toUInt32):
2849         * runtime/Identifier.h:
2850         (JSC::Identifier::toUInt32):
2851         * runtime/JSArray.cpp:
2852         (JSC::JSArray::getOwnPropertySlot):
2853         (JSC::JSArray::getOwnPropertyDescriptor):
2854         (JSC::JSArray::put):
2855         (JSC::JSArray::deleteProperty):
2856         * runtime/JSArray.h:
2857         (JSC::Identifier::toArrayIndex):
2858         * runtime/JSByteArray.cpp:
2859         (JSC::JSByteArray::getOwnPropertySlot):
2860         (JSC::JSByteArray::getOwnPropertyDescriptor):
2861         (JSC::JSByteArray::put):
2862         * runtime/JSGlobalObjectFunctions.cpp:
2863         (JSC::isInfinity):
2864         (JSC::jsHexIntegerLiteral):
2865         (JSC::jsStrDecimalLiteral):
2866         (JSC::jsToNumber):
2867         (JSC::parseFloat):
2868         * runtime/JSGlobalObjectFunctions.h:
2869         * runtime/JSString.cpp:
2870         (JSC::JSString::getPrimitiveNumber):
2871         (JSC::JSString::toNumber):
2872         (JSC::JSString::getStringPropertyDescriptor):
2873         * runtime/JSString.h:
2874         (JSC::JSString::getStringPropertySlot):
2875         * runtime/ObjectPrototype.cpp:
2876         (JSC::ObjectPrototype::put):
2877         * runtime/StringObject.cpp:
2878         (JSC::StringObject::deleteProperty):
2879         * runtime/UString.cpp:
2880         * runtime/UString.h:
2881         * wtf/dtoa.cpp:
2882         (WTF::strtod):
2883
2884 2010-08-17  Gavin Barraclough  <barraclough@apple.com>
2885
2886         Reviewed by Sam Weinig.
2887
2888         Bug 44099 - REGRESSION(r65468): Crashes in StringImpl::find
2889
2890         Bug 44080 introuduced a couple of cases in which array bounds could be overrun.
2891         One of these was fixed in r65493, this patch fixes the other and address the
2892         concerns voiced in comment #6 by restructuring the loops to remove the code
2893         dupliction without introducing an additional if check.
2894
2895         * wtf/text/StringImpl.cpp:
2896         (WTF::StringImpl::find):
2897         (WTF::StringImpl::findIgnoringCase):
2898         (WTF::StringImpl::reverseFind):
2899         (WTF::StringImpl::reverseFindIgnoringCase):
2900
2901 2010-08-17  No'am Rosenthal  <noam.rosenthal@nokia.com>
2902
2903         Reviewed by Ariya Hidayat.
2904
2905         [Qt] Move the accelerated compositing build flag to the right place
2906         https://bugs.webkit.org/show_bug.cgi?id=43882
2907
2908         * wtf/Platform.h:
2909
2910 2010-08-17  Yuta Kitamura  <yutak@chromium.org>
2911
2912         Reviewed by Shinichiro Hamaji.
2913
2914         Avoid uninitialized memory read in StringImpl::find().
2915
2916         REGRESSION(r65468): Crashes in StringImpl::find
2917         https://bugs.webkit.org/show_bug.cgi?id=44099
2918
2919         * wtf/text/StringImpl.cpp:
2920         (WTF::StringImpl::find):
2921
2922 2010-08-16  Gavin Barraclough  <barraclough@apple.com>
2923
2924         Rubber stamped by Sam Weinig
2925
2926         Add VectorTraits to String & DefaultHash traits to UString to unify behaviour.
2927
2928         * runtime/UString.h:
2929         (JSC::UStringHash::hash):
2930         (JSC::UStringHash::equal):
2931         (WTF::):
2932         * wtf/text/WTFString.h:
2933         (WTF::):
2934
2935 2010-08-16  Gavin Barraclough  <barraclough@apple.com>
2936
2937         Rubber stamped by Sam Weinig
2938
2939         Remove unnecessary includes from UString.h, add new includes as necessary.
2940
2941         * profiler/CallIdentifier.h:
2942         * profiler/ProfileNode.h:
2943         * runtime/DateConversion.cpp:
2944         * runtime/Identifier.h:
2945         (JSC::IdentifierRepHash::hash):
2946         * runtime/RegExpCache.h:
2947         * runtime/RegExpKey.h:
2948         * runtime/UString.cpp:
2949         (JSC::UString::substr):
2950         * runtime/UString.h:
2951         * wtf/text/WTFString.h:
2952
2953 2010-08-16  Gavin Barraclough  <barraclough@apple.com>
2954
2955         Reviewed by Sam Weinig
2956
2957         Bug 44080 - String find/reverseFind methods need tidying up
2958         These methods have a couple of problems with their interface, and implementation.
2959
2960         These methods take and int index, and return an int - however this is problematic
2961         since on 64-bit string indices may have a full 32-bit range.  This spills out into
2962         surrounding code, which unsafely casts string indices from unsigned to int. Code
2963         checking the result of these methods check for a mix of "== -1", "< 0", and
2964         "== notFound".  Clean this up by changing these methods to take an unsigned
2965         starting index, and return a size_t. with a failed match indicated by notFound.
2966         reverseFind also has a special meaning for the starting index argument, in that a
2967         negative index is interpreted as an offset back from the end of the string. Remove
2968         this functionality, in the (1!) case where it is used we should just calculate the
2969         offset by subtracting from the string's length.
2970
2971         The implementation has a few problems too.  The code is not in webkit style, in
2972         using assorted abbreviations in variable names, and implementations of similar
2973         find methods with differing argument types were unnecessarily inconsistent. When
2974         find is passed const char* data the string would be handled as latin1 (zero
2975         extended to UTF-16) for all characters but the first; this is sign extended.
2976         Case-insensitive find is broken for unicode strings; the hashing optimization is
2977         not unicode safe, and could result in false negatives.
2978
2979         Unify UString find methods to match String.
2980
2981         * JavaScriptCore.exp:
2982         * bytecode/CodeBlock.cpp:
2983         (JSC::escapeQuotes):
2984         * bytecompiler/NodesCodegen.cpp:
2985         (JSC::substitute):
2986         * runtime/JSString.cpp:
2987         (JSC::JSString::replaceCharacter):
2988         * runtime/RegExp.cpp:
2989         (JSC::RegExp::RegExp):
2990         * runtime/RegExpKey.h:
2991         (JSC::RegExpKey::getFlagsValue):
2992         * runtime/StringPrototype.cpp:
2993         (JSC::substituteBackreferencesSlow):
2994         (JSC::substituteBackreferences):
2995         (JSC::stringProtoFuncReplace):
2996         (JSC::stringProtoFuncIndexOf):
2997         (JSC::stringProtoFuncLastIndexOf):
2998         (JSC::stringProtoFuncSplit):
2999         * runtime/UString.cpp:
3000         * runtime/UString.h:
3001         (JSC::UString::find):
3002         (JSC::UString::reverseFind):
3003         * wtf/text/AtomicString.h:
3004         (WTF::AtomicString::find):
3005         * wtf/text/StringImpl.cpp:
3006         (WTF::StringImpl::find):
3007         (WTF::StringImpl::findCaseInsensitive):
3008         (WTF::StringImpl::reverseFind):
3009         (WTF::StringImpl::reverseFindCaseInsensitive):
3010         (WTF::StringImpl::endsWith):
3011         (WTF::StringImpl::replace):
3012         * wtf/text/StringImpl.h:
3013         (WTF::StringImpl::startsWith):
3014         * wtf/text/WTFString.cpp:
3015         (WTF::String::split):
3016         * wtf/text/WTFString.h:
3017         (WTF::String::find):
3018         (WTF::String::reverseFind):
3019         (WTF::String::findCaseInsensitive):
3020         (WTF::String::reverseFindCaseInsensitive):
3021         (WTF::String::contains):
3022         (WTF::find):
3023         (WTF::reverseFind):
3024
3025 2010-08-16  Kevin Ollivier  <kevino@theolliviers.com>
3026
3027         [wx] Build fix, do not build WebCore as a convenience library as this leads to
3028         errors in the Win build w/export symbols and causes problems with DOM bindings
3029         debugging in gdb. 
3030
3031         * wscript:
3032
3033 2010-08-16  Leandro Pereira  <leandro@profusion.mobi>
3034
3035         [EFL] Build fix after r65366.
3036
3037         * CMakeLists.txt: Use if (VAR) instead of if (${VAR}) to check if
3038         they're empty.
3039         * jsc/CMakeLists.txt: Ditto.
3040         * wtf/CMakeLists.txt: Ditto.
3041
3042 2010-08-15  Kevin Ollivier  <kevino@theolliviers.com>
3043
3044         [wx] Build fix, don't build intermediate source in DerivedSources dir.
3045
3046         * wscript:
3047
3048 2010-08-14  Patrick Gansterer  <paroga@paroga.com>
3049
3050         Reviewed by Kenneth Rohde Christiansen.
3051
3052         [CMake] Add preprocessor detection for generator scripts
3053         https://bugs.webkit.org/show_bug.cgi?id=43984
3054
3055         * CMakeLists.txt:
3056
3057 2010-08-14  Patrick Gansterer  <paroga@paroga.com>
3058
3059         Reviewed by Kenneth Rohde Christiansen.
3060
3061         [CMake] Set target properties only if available
3062         https://bugs.webkit.org/show_bug.cgi?id=43978
3063
3064         * CMakeLists.txt:
3065         * jsc/CMakeLists.txt:
3066         * wtf/CMakeLists.txt:
3067
3068 2010-08-13  Kevin Ollivier  <kevino@theolliviers.com>
3069
3070         [wx] Build fix, add CString to the list of forwards.
3071
3072         * wtf/Forward.h:
3073
3074 2010-08-13  Gavin Barraclough  <barraclough@apple.com>
3075
3076         Windows build fix
3077
3078         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
3079
3080 2010-08-13  Gavin Barraclough  <barraclough@apple.com>
3081
3082         Windows build fix
3083
3084         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
3085
3086 2010-08-13  Gavin Barraclough  <barraclough@apple.com>
3087
3088         Windows build fix
3089
3090         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
3091
3092 2010-08-13  Gavin Barraclough  <barraclough@apple.com>
3093
3094         Rubber stamped by Sam Weinig.
3095         Switch String::/UString::ascii() to return a CString.
3096
3097         * JavaScriptCore.exp:
3098         * JavaScriptCore.xcodeproj/project.pbxproj:
3099         * bytecode/CodeBlock.cpp:
3100         (JSC::CodeBlock::dump):
3101         * bytecode/SamplingTool.cpp:
3102         (JSC::SamplingTool::dump):
3103         * interpreter/CallFrame.cpp:
3104         (JSC::CallFrame::dumpCaller):
3105         * jsc.cpp:
3106         (runWithScripts):
3107         (runInteractive):
3108         * runtime/Identifier.h:
3109         (JSC::Identifier::ascii):
3110         * runtime/ScopeChain.cpp:
3111         (JSC::ScopeChainNode::print):
3112         * runtime/UString.cpp:
3113         (JSC::UString::ascii):
3114         (JSC::UString::latin1):
3115         * runtime/UString.h:
3116         * wtf/text/StringImpl.cpp:
3117         (WTF::StringImpl::asciiOLD):
3118         * wtf/text/StringImpl.h:
3119         * wtf/text/WTFString.cpp:
3120         (WTF::String::ascii):
3121         (WTF::String::latin1):
3122         * wtf/text/WTFString.h:
3123
3124 2010-08-13  Gabor Loki  <loki@webkit.org>
3125
3126         Reviewed by Gavin Barraclough.
3127
3128         Avoid increasing required alignment of target type warning on ARM
3129         https://bugs.webkit.org/show_bug.cgi?id=38045
3130
3131         The reinterpret_cast<Type1*>([pointer to Type2]) expressions - where
3132         sizeof(Type1) > sizeof(Type2) - cause the following warning on ARM:
3133         increases required alignment of target type warnings.
3134         Casting the type of [pointer to Type2] object to void* bypasses the
3135         warning.
3136
3137         * assembler/ARMAssembler.cpp:
3138         (JSC::ARMAssembler::executableCopy):
3139         * assembler/AssemblerBuffer.h:
3140         (JSC::AssemblerBuffer::putShortUnchecked):
3141         (JSC::AssemblerBuffer::putIntUnchecked):
3142         (JSC::AssemblerBuffer::putInt64Unchecked):
3143         * interpreter/RegisterFile.h:
3144         (JSC::RegisterFile::RegisterFile):
3145         (JSC::RegisterFile::grow):
3146         * jit/JITStubs.cpp:
3147         * pcre/pcre_compile.cpp:
3148         (jsRegExpCompile):
3149         * runtime/JSArray.cpp:
3150         (JSC::JSArray::putSlowCase):
3151         (JSC::JSArray::increaseVectorLength):
3152         (JSC::JSArray::increaseVectorPrefixLength):
3153         (JSC::JSArray::shiftCount):
3154         (JSC::JSArray::unshiftCount):
3155         * wtf/FastMalloc.cpp:
3156         (WTF::PageHeapAllocator::New):
3157         (WTF::TCMalloc_Central_FreeList::Populate):
3158         * wtf/MD5.cpp:
3159         (WTF::reverseBytes):
3160         (WTF::MD5::addBytes):
3161         (WTF::MD5::checksum):
3162         * wtf/StdLibExtras.h:
3163         (isPointerTypeAlignmentOkay):
3164         (reinterpret_cast_ptr):
3165         * wtf/Vector.h:
3166         (WTF::VectorBuffer::inlineBuffer):
3167         * wtf/qt/StringQt.cpp:
3168         (WTF::String::String):
3169
3170 2010-08-13  Gavin Barraclough  <barraclough@apple.com>
3171
3172         Reviewed by Sam Weinig
3173
3174         Unify UString::UTF8String() & String::utf8() methods,
3175         remove UString::cost() & make atArrayIndex a free function.
3176
3177         * JavaScriptCore.exp:
3178         * bytecode/CodeBlock.cpp:
3179         (JSC::constantName):
3180         (JSC::idName):
3181         (JSC::CodeBlock::registerName):
3182         (JSC::regexpName):
3183         (JSC::printGlobalResolveInfo):
3184         (JSC::printStructureStubInfo):
3185         (JSC::CodeBlock::printStructure):
3186         (JSC::CodeBlock::printStructures):
3187         * jsc.cpp:
3188         (functionPrint):
3189         (functionDebug):
3190         (runInteractive):
3191         (fillBufferWithContentsOfFile):
3192         * pcre/pcre_exec.cpp:
3193         (Histogram::~Histogram):
3194         * profiler/CallIdentifier.h:
3195         (JSC::CallIdentifier::c_str):
3196         * profiler/Profile.cpp:
3197         (JSC::Profile::debugPrintDataSampleStyle):
3198         * profiler/ProfileGenerator.cpp:
3199         (JSC::ProfileGenerator::willExecute):
3200         (JSC::ProfileGenerator::didExecute):
3201         * profiler/ProfileNode.cpp:
3202         (JSC::ProfileNode::debugPrintData):
3203         (JSC::ProfileNode::debugPrintDataSampleStyle):
3204         * runtime/Arguments.cpp:
3205         (JSC::Arguments::getOwnPropertySlot):
3206         (JSC::Arguments::getOwnPropertyDescriptor):
3207         (JSC::Arguments::put):
3208         (JSC::Arguments::deleteProperty):
3209         * runtime/DateConversion.cpp:
3210         (JSC::parseDate):
3211         * runtime/Identifier.h:
3212         (JSC::Identifier::toStrictUInt32):
3213         * runtime/JSArray.cpp:
3214         (JSC::JSArray::getOwnPropertySlot):
3215         (JSC::JSArray::getOwnPropertyDescriptor):
3216         (JSC::JSArray::put):
3217         (JSC::JSArray::deleteProperty):
3218         * runtime/JSArray.h:
3219         (JSC::toArrayIndex):
3220         * runtime/JSGlobalObjectFunctions.cpp:
3221         (JSC::encode):
3222         (JSC::parseInt):
3223         (JSC::globalFuncJSCPrint):
3224         * runtime/JSString.h:
3225         (JSC::RopeBuilder::JSString):
3226         * runtime/UString.cpp:
3227         (JSC::UString::toDouble):
3228         (JSC::putUTF8Triple):
3229         (JSC::UString::utf8):
3230         * runtime/UString.h:
3231         (JSC::UString::~UString):
3232         (JSC::UString::isNull):
3233         (JSC::UString::isEmpty):
3234         (JSC::UString::impl):
3235         * wtf/text/WTFString.cpp:
3236         (WTF::String::utf8):
3237         * wtf/text/WTFString.h:
3238         (WTF::String::~String):
3239         (WTF::String::swap):
3240         (WTF::String::isNull):
3241         (WTF::String::isEmpty):
3242         (WTF::String::impl):
3243         (WTF::String::length):
3244         (WTF::String::String):
3245         (WTF::String::isHashTableDeletedValue):
3246
3247 2010-08-12  Zoltan Herczeg  <zherczeg@webkit.org>
3248
3249         Reviewed by Gavin Barraclough.
3250
3251         Refactoring the fpu code generator for the ARM port
3252         https://bugs.webkit.org/show_bug.cgi?id=43842
3253
3254         Support up to 32 double precision registers, and the
3255         recent VFP instruction formats. This patch is mainly
3256         a style change which keeps the current functionality.
3257
3258         * assembler/ARMAssembler.h:
3259         (JSC::ARMRegisters::):
3260         (JSC::ARMAssembler::):
3261         (JSC::ARMAssembler::emitInst):
3262         (JSC::ARMAssembler::emitDoublePrecisionInst):
3263         (JSC::ARMAssembler::emitSinglePrecisionInst):
3264         (JSC::ARMAssembler::vadd_f64_r):
3265         (JSC::ARMAssembler::vdiv_f64_r):
3266         (JSC::ARMAssembler::vsub_f64_r):
3267         (JSC::ARMAssembler::vmul_f64_r):
3268         (JSC::ARMAssembler::vcmp_f64_r):
3269         (JSC::ARMAssembler::vsqrt_f64_r):
3270         (JSC::ARMAssembler::vmov_vfp_r):
3271         (JSC::ARMAssembler::vmov_arm_r):
3272         (JSC::ARMAssembler::vcvt_f64_s32_r):
3273         (JSC::ARMAssembler::vcvt_s32_f64_r):
3274         (JSC::ARMAssembler::vmrs_apsr):
3275         * assembler/MacroAssemblerARM.h:
3276         (JSC::MacroAssemblerARM::addDouble):
3277         (JSC::MacroAssemblerARM::divDouble):
3278         (JSC::MacroAssemblerARM::subDouble):
3279         (JSC::MacroAssemblerARM::mulDouble):
3280         (JSC::MacroAssemblerARM::sqrtDouble):
3281         (JSC::MacroAssemblerARM::convertInt32ToDouble):
3282         (JSC::MacroAssemblerARM::branchDouble):
3283         (JSC::MacroAssemblerARM::branchConvertDoubleToInt32):
3284
3285 2010-08-12  Sheriff Bot  <webkit.review.bot@gmail.com>
3286
3287         Unreviewed, rolling out r65295.
3288         http://trac.webkit.org/changeset/65295
3289         https://bugs.webkit.org/show_bug.cgi?id=43950
3290
3291         It broke 4 sputnik tests (Requested by Ossy on #webkit).
3292
3293         * JavaScriptCore.exp:
3294         * bytecode/CodeBlock.cpp:
3295         (JSC::constantName):
3296         (JSC::idName):
3297         (JSC::CodeBlock::registerName):
3298         (JSC::regexpName):
3299         (JSC::printGlobalResolveInfo):
3300         (JSC::printStructureStubInfo):
3301         (JSC::CodeBlock::printStructure):
3302         (JSC::CodeBlock::printStructures):
3303         * jsc.cpp:
3304         (functionPrint):
3305         (functionDebug):
3306         (runInteractive):
3307         (fillBufferWithContentsOfFile):
3308         * pcre/pcre_exec.cpp:
3309         (Histogram::~Histogram):
3310         * profiler/CallIdentifier.h:
3311         (JSC::CallIdentifier::c_str):
3312         * profiler/Profile.cpp:
3313         (JSC::Profile::debugPrintDataSampleStyle):
3314         * profiler/ProfileGenerator.cpp:
3315         (JSC::ProfileGenerator::willExecute):
3316         (JSC::ProfileGenerator::didExecute):
3317         * profiler/ProfileNode.cpp:
3318         (JSC::ProfileNode::debugPrintData):
3319         (JSC::ProfileNode::debugPrintDataSampleStyle):
3320         * runtime/Arguments.cpp:
3321         (JSC::Arguments::getOwnPropertySlot):
3322         (JSC::Arguments::getOwnPropertyDescriptor):
3323         (JSC::Arguments::put):
3324         (JSC::Arguments::deleteProperty):
3325         * runtime/DateConversion.cpp:
3326         (JSC::parseDate):
3327         * runtime/Identifier.h:
3328         (JSC::Identifier::Identifier):
3329         (JSC::Identifier::toArrayIndex):
3330         * runtime/JSArray.cpp:
3331         (JSC::JSArray::getOwnPropertySlot):
3332         (JSC::JSArray::getOwnPropertyDescriptor):
3333         (JSC::JSArray::put):
3334         (JSC::JSArray::deleteProperty):
3335         * runtime/JSArray.h:
3336         * runtime/JSGlobalObjectFunctions.cpp:
3337         (JSC::encode):
3338         (JSC::parseInt):
3339         (JSC::globalFuncJSCPrint):
3340         * runtime/JSString.h:
3341         (JSC::RopeBuilder::JSString):
3342         * runtime/UString.cpp:
3343         (JSC::UString::toDouble):
3344         (JSC::UString::UTF8String):
3345         * runtime/UString.h:
3346         (JSC::UString::isNull):
3347         (JSC::UString::isEmpty):
3348         (JSC::UString::impl):
3349         (JSC::UString::cost):
3350         (JSC::UString::~UString):
3351         (JSC::UString::toArrayIndex):
3352         * wtf/text/WTFString.cpp:
3353         (WTF::String::utf8):
3354         * wtf/text/WTFString.h:
3355         (WTF::String::String):
3356         (WTF::String::isHashTableDeletedValue):
3357         (WTF::String::length):
3358         (WTF::String::operator[]):
3359         (WTF::String::isNull):
3360         (WTF::String::isEmpty):
3361         (WTF::String::impl):
3362
3363 2010-08-12  Gavin Barraclough  <barraclough@apple.com>
3364
3365         Windows build fix.
3366
3367         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
3368
3369 2010-08-12  Gavin Barraclough  <barraclough@apple.com>
3370
3371         Reviewed by Sam Weinig
3372
3373         Unify UString::UTF8String() & String::utf8() methods,
3374         remove UString::cost() & make atArrayIndex a free function.
3375
3376         * JavaScriptCore.exp:
3377         * bytecode/CodeBlock.cpp:
3378         (JSC::constantName):
3379         (JSC::idName):
3380         (JSC::CodeBlock::registerName):
3381         (JSC::regexpName):
3382         (JSC::printGlobalResolveInfo):
3383         (JSC::printStructureStubInfo):
3384         (JSC::CodeBlock::printStructure):
3385         (JSC::CodeBlock::printStructures):
3386         * jsc.cpp:
3387         (functionPrint):
3388         (functionDebug):
3389         (runInteractive):
3390         (fillBufferWithContentsOfFile):
3391         * pcre/pcre_exec.cpp:
3392         (Histogram::~Histogram):
3393         * profiler/CallIdentifier.h:
3394         (JSC::CallIdentifier::c_str):
3395         * profiler/Profile.cpp:
3396         (JSC::Profile::debugPrintDataSampleStyle):
3397         * profiler/ProfileGenerator.cpp:
3398         (JSC::ProfileGenerator::willExecute):
3399         (JSC::ProfileGenerator::didExecute):
3400         * profiler/ProfileNode.cpp:
3401         (JSC::ProfileNode::debugPrintData):
3402         (JSC::ProfileNode::debugPrintDataSampleStyle):
3403         * runtime/Arguments.cpp:
3404         (JSC::Arguments::getOwnPropertySlot):
3405         (JSC::Arguments::getOwnPropertyDescriptor):
3406         (JSC::Arguments::put):
3407         (JSC::Arguments::deleteProperty):
3408         * runtime/DateConversion.cpp:
3409         (JSC::parseDate):
3410         * runtime/Identifier.h:
3411         (JSC::Identifier::toStrictUInt32):
3412         * runtime/JSArray.cpp:
3413         (JSC::JSArray::getOwnPropertySlot):
3414         (JSC::JSArray::getOwnPropertyDescriptor):
3415         (JSC::JSArray::put):
3416         (JSC::JSArray::deleteProperty):
3417         * runtime/JSArray.h:
3418         (JSC::toArrayIndex):
3419         * runtime/JSGlobalObjectFunctions.cpp:
3420         (JSC::encode):
3421         (JSC::parseInt):
3422         (JSC::globalFuncJSCPrint):
3423         * runtime/JSString.h:
3424         (JSC::RopeBuilder::JSString):
3425         * runtime/UString.cpp:
3426         (JSC::UString::toDouble):
3427         (JSC::putUTF8Triple):
3428         (JSC::UString::utf8):
3429         * runtime/UString.h:
3430         (JSC::UString::~UString):
3431         (JSC::UString::isNull):
3432         (JSC::UString::isEmpty):
3433         (JSC::UString::impl):
3434         * wtf/text/WTFString.cpp:
3435         (WTF::String::utf8):
3436         * wtf/text/WTFString.h:
3437         (WTF::String::~String):
3438         (WTF::String::swap):
3439         (WTF::String::isNull):
3440         (WTF::String::isEmpty):
3441         (WTF::String::impl):
3442         (WTF::String::length):
3443         (WTF::String::String):
3444         (WTF::String::isHashTableDeletedValue):
3445
3446 2010-08-12  Gavin Barraclough  <barraclough@apple.com>
3447
3448         Eeerk! - revert accidentally committed changes in UString!
3449
3450         * JavaScriptCore.exp:
3451         * runtime/UString.cpp:
3452         (JSC::UString::UString):
3453         * runtime/UString.h:
3454
3455 2010-08-12  Gavin Barraclough  <barraclough@apple.com>
3456
3457         Reviewed by Sam Weinig
3458
3459         Change UString constructors to match those in WTF::String.
3460         This changes behaviour of UString((char*)0) to create null
3461         strings, akin to UString() rather than UString::empty().
3462         (This matches String).  Remove unused constructors from
3463         UString, and add null-terminated UTF-16 constructor, to
3464         match String.  Move String's constructor into the .cpp to
3465         match UString.
3466
3467         * JavaScriptCore.exp:
3468         * debugger/DebuggerCallFrame.cpp:
3469         (JSC::DebuggerCallFrame::calculatedFunctionName):
3470         * runtime/RegExpKey.h:
3471         (JSC::RegExpKey::RegExpKey):
3472         * runtime/SmallStrings.cpp:
3473         (JSC::SmallStrings::createSingleCharacterString):
3474         * runtime/UString.cpp:
3475         (JSC::UString::UString):
3476         * runtime/UString.h:
3477         (JSC::UString::UString):
3478         (JSC::UString::swap):
3479         (JSC::UString::adopt):
3480         (JSC::UString::operator[]):
3481         * wtf/text/WTFString.h:
3482         (WTF::String::String):
3483         (WTF::String::adopt):
3484         (WTF::String::operator[]):
3485
3486 2010-08-12  David Levin  <levin@chromium.org>
3487
3488         Reviewed by NOBODY (build fix).
3489
3490         * runtime/UString.h: Removed unneccessary #include.
3491
3492 2010-08-12  Gavin Barraclough  <barraclough@apple.com>
3493
3494         Reviewed by Sam Weinig
3495
3496         Revert changes to ALWAYS_INLINEness of a couple of functions in UString.
3497         This appears to have degraded performance.
3498
3499         * runtime/UString.cpp:
3500         (JSC::UString::ascii):
3501         * runtime/UString.h:
3502         (JSC::UString::length):
3503         (JSC::UString::isEmpty):
3504         (JSC::UString::~UString):
3505
3506 2010-08-12  Csaba Osztrogonác  <ossy@webkit.org>
3507
3508         Reviewed by Antonio Gomes.
3509
3510         [Qt] Fix warnings: unknown conversion type character 'l' in format
3511         https://bugs.webkit.org/show_bug.cgi?id=43359
3512
3513         Qt port doesn't call any printf in String::format(...), consequently
3514         using __attribute__((format(printf,m,n))) is incorrect and causes
3515         false positive warnings on Windows if you build with MinGW.
3516
3517         Qt port calls QString::vsprintf(...) , which is platform
3518         independent, and handles %lli, %llu and %llx on all platforms.
3519         (http://trac.webkit.org/changeset/35712)
3520
3521         * wtf/text/WTFString.h:
3522
3523 2010-08-12  Gabor Loki  <loki@webkit.org>
3524
3525         Reviewed by Geoffrey Garen.
3526
3527         Fix the array subscript is above array bounds warning in ByteArray on ARM.
3528         https://bugs.webkit.org/show_bug.cgi?id=43358
3529
3530         The warning is very similar to this one: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37861
3531
3532         * wtf/ByteArray.cpp:
3533         (WTF::ByteArray::create):
3534
3535 2010-08-12  Gustavo Noronha Silva  <gustavo.noronha@collabora.co.uk>
3536
3537         Reviewed by Martin Robinson.
3538
3539         [GTK] Use GSettings to save/restore Web Inspector settings
3540         https://bugs.webkit.org/show_bug.cgi?id=43512
3541
3542         * wtf/gobject/GRefPtr.cpp: Added support for GVariant, used by our
3543         GSettings support.
3544         (WTF::refGPtr):
3545         (WTF::derefGPtr):
3546         * wtf/gobject/GRefPtr.h:
3547
3548 2010-08-12  Gabor Loki  <loki@webkit.org>
3549
3550         Reviewed by Simon Hausmann.
3551
3552         The scratch register should be saved in YARR with ARM JIT
3553         https://bugs.webkit.org/show_bug.cgi?id=43910
3554
3555         Reported by Jocelyn Turcotte.
3556
3557         * yarr/RegexJIT.cpp:
3558         (JSC::Yarr::RegexGenerator::generateEnter):
3559         (JSC::Yarr::RegexGenerator::generateReturn):
3560
3561 2010-08-11  Gavin Barraclough  <barraclough@apple.com>
3562
3563         Windows build fix.
3564
3565         * JavaScriptCore.xcodeproj/project.pbxproj:
3566         * wtf/Forward.h:
3567
3568 2010-08-11  Leo Yang  <leo.yang@torchmobile.com.cn>
3569
3570         Reviewed by Geoffrey Garen.
3571
3572         Date("") should be an invalid date. For IE, Firefox and Chrome, Date("") is invalid date,
3573         which means isNaN(new Date("")) should return true.
3574         https://bugs.webkit.org/show_bug.cgi?id=43793
3575         Tests: fast/js/date-constructor.html
3576
3577         * runtime/JSGlobalData.cpp:
3578         (JSC::JSGlobalData::resetDateCache):
3579
3580 2010-08-11  Gavin Barraclough  <barraclough@apple.com>
3581
3582         Windows & !JIT build fix.
3583
3584         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
3585         * JavaScriptCore.xcodeproj/project.pbxproj:
3586         * runtime/RegExp.cpp:
3587         (JSC::RegExp::match):
3588
3589 2010-08-11  Gavin Barraclough  <barraclough@apple.com>
3590
3591         Rubber stamp by sam weinig
3592
3593         Touch a file to stop the bot rolling a bit change out!
3594
3595         * runtime/UString.cpp:
3596         (JSC::UString::ascii):
3597
3598 2010-08-11  Kevin Ollivier  <kevino@theolliviers.com>
3599
3600         [wx] Build fix for wx and WebDOM bindings, add CString classes to the list of forwards.
3601
3602         * wtf/Forward.h:
3603
3604 2010-08-11  Gavin Barraclough  <barraclough@apple.com>
3605
3606         Rubber stamps by