add return values (!!)
[WebKit-https.git] / JavaScriptCore / ChangeLog
1 2007-02-22  George Staikos  <staikos@kde.org>
2
3         Reviewed by Lars.
4
5         Add return values
6
7         * wtf/unicode/qt4/UnicodeQt4.h:
8         (WTF::Unicode::toLower):
9         (WTF::Unicode::toUpper):
10
11 2007-02-22  Oscar Cwajbaum  <public@oscarc.net>
12
13         Reviewed by Maciej.
14
15         Fix ARM-specific alignment problem in FastMalloc
16         http://bugs.webkit.org/show_bug.cgi?id=12841
17
18         * wtf/FastMalloc.cpp:
19         Modify how pageheap_memory is declared to ensure proper alignment
20         on architectures such as ARM
21
22 2007-02-20  Zack Rusin  <zrusin@trolltech.com>
23
24         Reviewed by Lars
25
26         Make sure that non-void methods always return something.
27
28         * wtf/unicode/qt4/UnicodeQt4.h:
29         (WTF::Unicode::toLower):
30         (WTF::Unicode::toUpper):
31         (WTF::Unicode::foldCase):
32
33 2007-02-18  Kevin Ollivier  <kevino@theolliviers.com>
34
35         Reviewed by Adam Roben.
36
37         Fix cases where MSVC-specific code was identified as Win32 platform
38         code. (as it should be compiled for e.g. wx port when using MSVC too)
39         
40         * wtf/Assertions.h: 
41         * wtf/MathExtras.h:
42         * wtf/StringExtras.h:
43         changed PLATFORM(WIN) sections to COMPILER(MSVC) as necessary
44
45 2007-02-17  Krzysztof Kowalczyk  <kkowalczyk@gmail.com>
46
47         Reviewed by Adam Roben.
48
49         Fix crashes on ARM due to different struct packing. Based on a patch
50         by Mike Emmel.
51         * kjs/ustring.cpp: compile-time assert to make sure sizeof(UChar) == 2
52         * kjs/ustring.h: pack UChar struct to ensure that sizeof(UChar) == 2
53         * wtf/Assertions.h: add COMPILE_ASSERT macro for compile-time assertions
54
55 2007-02-16  George Staikos  <staikos@kde.org>
56
57         Reviewed by Maciej.
58
59         Fix uninitialized variable
60
61         * bindings/testbindings.cpp:
62         (myAllocate):
63
64 2007-02-16  Anders Carlsson  <acarlsson@apple.com>
65
66         Reviewed by Mitz.
67
68         http://bugs.webkit.org/show_bug.cgi?id=12788
69         REGRESSION: Going back one page in history has a noticeable delay
70         
71         Um...if all elements in two vectors are equal, then I guess we could say that
72         the two vectors are equal too.
73         
74         * wtf/Vector.h:
75         (WTF::):
76
77 2007-02-14  Anders Carlsson  <acarlsson@apple.com>
78
79         Reviewed by Darin.
80
81         Add new canCompareWithMemcmp vector trait and use it to determine whether
82         operator== can use memcmp.
83         
84         * wtf/Vector.h:
85         (WTF::):
86         (WTF::VectorTypeOperations::compare):
87         (WTF::operator==):
88         * wtf/VectorTraits.h:
89         (WTF::):
90
91 2007-02-13  Brady Eidson  <beidson@apple.com>
92
93         Reviewed by Darin
94         
95         Tweaked vector a bit
96
97         * wtf/Vector.h:
98         (WTF::operator==):
99
100 2007-02-13  Dex Deacon  <occupant4@gmail.com>
101
102         Reviewed by Darin.
103
104         - fix for http://bugs.webkit.org/show_bug.cgi?id=12750
105           Vector operator== was not defined correctly. It returned void,
106           did not accept const Vectors, and used an int instead of size_t. 
107
108         * wtf/Vector.h: fixed comparison operators
109         (WTF::operator==):
110         (WTF::operator!=):
111
112 2007-02-10  David Carson  <dacarson@gmail.com>
113
114         Reviewed by Maciej.
115
116         - fix for http://bugs.webkit.org/show_bug.cgi?id=12636
117         Corrected the generation of method signatures when the parameter
118         is an Array. 
119         Added support for converting a Javascript array to a Java array.
120
121         * bindings/jni/jni_utility.h: added new type for array, array_type
122         * bindings/jni/jni_runtime.cpp: add support for new array type
123         (JavaField::valueFromInstance):
124         (JavaField::setValueToInstance):
125         (JavaMethod::JavaMethod):
126         (JavaMethod::signature):
127         * bindings/jni/jni_utility.cpp: add support for new array type
128         (KJS::Bindings::callJNIMethod):
129         (KJS::Bindings::callJNIStaticMethod):
130         (KJS::Bindings::callJNIMethodIDA):
131         (KJS::Bindings::JNITypeFromClassName):
132         (KJS::Bindings::signatureFromPrimitiveType):
133         (KJS::Bindings::JNITypeFromPrimitiveType):
134         (KJS::Bindings::getJNIField):
135         (KJS::Bindings::convertArrayInstanceToJavaArray): new method
136         converts the Javascript array to the requested Java array.
137         (KJS::Bindings::convertValueToJValue):
138
139 2007-02-08  Anders Carlsson  <acarlsson@apple.com>
140
141         Reviewed by Geoff.
142
143         <rdar://problem/4930614>
144         Safari complains about "Slow Script" if GMail is left open and machine is busy
145         
146         <rdar://problem/4649516>
147         Turn off slow script dialog or crank up time that makes it come up
148         
149         <rdar://problem/4963589>
150         Slow script warning is displayed after closing of PROMPT or PRINT dialog
151         
152         Re-do the way script timeouts are handled. No longer use a unix timer that sends signals. Instead, add a 
153         tick count and increment it in loop bodies. If the tick count reaches a threshold, do a timeout check. If the total time executing
154         is higher than the timeout value, (possibly) interrupt the script. The timeout checker also adjusts the threshold dynamically
155         to prevent doing the timeout check too often.
156          
157         * JavaScriptCore.exp:
158         Remove pause and resume calls.
159         
160         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
161         Add winmm.lib.
162
163         * kjs/interpreter.cpp:
164         (KJS::Interpreter::init):
165         (KJS::Interpreter::~Interpreter):
166         (KJS::Interpreter::startTimeoutCheck):
167         (KJS::Interpreter::stopTimeoutCheck):
168         (KJS::Interpreter::resetTimeoutCheck):
169         (KJS::getCurrentTime):
170         (KJS::Interpreter::checkTimeout):
171         * kjs/interpreter.h:
172         (KJS::Interpreter::timedOut):
173         * kjs/nodes.cpp:
174         (DoWhileNode::execute):
175         (WhileNode::execute):
176         (ForNode::execute):
177
178 2007-02-07  Darin Adler  <darin@apple.com>
179
180         * JavaScriptCore.vcproj/JavaScriptCore.sln: Reenable testkjs.
181
182 2007-02-07  Darin Adler  <darin@apple.com>
183
184         Reviewed by Geoff.
185
186         - another build fix; this time for sure
187
188         * pcre/pcre_exec.c: (match):
189         The compiler caught an incorrect use of the othercase variable across
190         a call to RMATCH in character repeat processing. Local variables can
191         change in the crazy NO_RECURSE mode that we use, so we instead need
192         the value in othercase to be in one of the special stack frame variables.
193         Added a new stack frame variable for this purpose named repeat_othercase.
194         Also noted a similar error in the non-UTF-16 side of the #ifdef, but
195         didn't try to fix that one. Also removed a SUPPORT_UCP #ifdef from the
196         PCRE_UTF16 side; that code doesn't work without the Unicde properties
197         table, and we don't try to use it that way.
198
199 2007-02-06  Steve Falkenburg  <sfalken@apple.com>
200
201         Disable testkjs in sln until we figure out mysterious compiler warning.
202
203         * JavaScriptCore.vcproj/JavaScriptCore.sln:
204
205 2007-02-06  Steve Falkenburg  <sfalken@apple.com>
206
207         Build fix by ggaren
208
209         * pcre/pcre_exec.c:
210         (match):
211
212 2007-02-06  Darin Adler  <darin@apple.com>
213
214         Reviewed by Geoff.
215
216         - fix <rdar://problem/4979089> PCRE should avoid setjmp/longjmp even when compiler
217           is not GCC
218
219         Added a new code path that's slower and way uglier but doesn't rely on GCC's
220         computed gotos.
221
222         * pcre/pcre_exec.c: Added a numeric parameter to the RMATCH function. It must be
223         different at every RMATCH call site. Changed the non-GCC NO_RECURSE version of
224         the macro to use a label incorporating the number. Changed the RRETURN macro to
225         use a goto instead of longjmp.
226         (match): Added a different number at each callsite, using a perl script for the
227         first-time task. Going forward it should be easy to maintain by hand. Added a
228         switch statement at the bottom of the function. We'll get compile time errors
229         if we have anything in the switch statement that's never used in an RMATCH,
230         but errors in the other direction are silent except at runtime.
231
232 2007-02-06  Darin Adler  <darin@apple.com>
233
234         Reviewed by John.
235
236         - fix <rdar://problem/4687840> 9A241: JavaScript RegExp 25-30x slower than on 10.4.7
237
238         I used Shark to figure out what to do. The test case is now 15% faster than with
239         stock Safari. Some other regular expression cases might still be a few % slower
240         than before, but the >10x slowdown is now completely gone.
241
242         1) Fix slowness caused by setjmp/longjmp by using computed goto instead.
243
244         Use GCC extensions - locally declared labels, labels as values, and computed goto -
245         instead of using setjmp/longjmp to implemement non-recursive version of the regular
246         expression system. We could probably make this even faster if we reduced the use
247         of malloc a bit too.
248
249         2) Fix slowness caused by allocating heapframe objects by allocating the first
250            16 of them from the stack.
251
252         3) Speed up use of malloc and free in PCRE by making it use fastMalloc and fastFree.
253
254         4) Speed up the test case by adding a special case to a UString function.
255
256         5) Made a small improvement to the innermost hottest loop of match by hoisting
257            the conversion from int to pcre_uchar out of the loop.
258
259         * JavaScriptCore.xcodeproj/project.pbxproj: Compile FastMallocPCRE.cpp, and don't
260         compile pcre_globals.c.
261
262         * wtf/FastMallocPCRE.cpp: Added. A copy of pcre_globals.c that uses FastMalloc.h.
263         This is better than code that sets the PCRE allocation globals because by doing it
264         this way there's guaranteed to be no problem with order of initialization.
265
266         * kjs/ustring.cpp: (KJS::UString::spliceSubstringsWithSeparators): Add a fast
267         special case when this is called for only one subrange and no seaprators. This
268         was happening a lot in the test case and it seems quite reasonable to optimize this.
269
270         * pcre/pcre_exec.c: Create a copy of the RMATCH and RRETURN macros that use goto
271         instead of setjmp/longjmp. Change code that calls pcre_stack_malloc to first use
272         storage on the stack inside the match function.
273         (match): Move initialization of utf8 up a couple lines to avoid "possibly used
274         uninitialized" warning. Use a local variable so we compare with pcre_uchar instead
275         of with int inside the inner "find a character" loop.
276
277 2007-02-03  George Staikos  <staikos@kde.org>
278
279         Reviewed by Alexey.
280
281         -1 is not a valid point.  We can't handle anything > 0xffff anyway.
282         Fixes crash on cases like eval("x");
283
284         * wtf/unicode/qt4/UnicodeQt4.h:
285         (WTF::Unicode::category):
286
287 2007-02-02  Darin Adler  <darin@apple.com>
288
289         Reviewed by Anders.
290
291         - fix copying and assigning a ListHashSet
292
293         No test because the code path with bugs I am fixing is not used yet.
294
295         * wtf/ListHashSet.h: Tweaked ListHashSetNodeAllocator a little bit for clarity.
296         Changed m_allocator to be an OwnPtr instead of doing an explicit delete.
297         Fixed bug in copy constructor where we'd have an uninitialized m_allocator.
298         Fixed bug in assignment operator where it would swap only the hash table, and
299         not the head, tail, and allocator pointers.
300
301 2007-02-02  Geoffrey Garen  <ggaren@apple.com>
302
303         Reviewed by Maciej Stachowiak.
304         
305         Use WTFLog instead of fprintf for logging KJS::Node leaks.
306
307         * kjs/nodes.cpp:
308         (NodeCounter::~NodeCounter): Changed count to unsigned, updated
309         to match style guidelines.
310
311 2007-02-02  Maciej Stachowiak  <mjs@apple.com>
312
313         - not reviewed, build fix
314
315         * wtf/ListHashSet.h:
316         (WTF::ListHashSetNodeAllocator::ListHashSetNodeAllocator): ummm, use union correctly
317
318 2007-02-01  Maciej Stachowiak  <mjs@apple.com>
319
320         Reviewed by Darin.
321         
322         - use a custom allocator for ListHashSet, to fix ~1% perf regression using it for form control
323
324         * wtf/ListHashSet.h:
325         (WTF::ListHashSetNodeAllocator::ListHashSetNodeAllocator):
326         (WTF::ListHashSetNodeAllocator::allocate):
327         (WTF::ListHashSetNodeAllocator::deallocate):
328         (WTF::ListHashSetNode::operator new):
329         (WTF::ListHashSetNode::operator delete):
330         (WTF::ListHashSetNode::destroy):
331         (WTF::ListHashSetTranslator::translate):
332         (WTF::::ListHashSet):
333         (WTF::::~ListHashSet):
334         (WTF::::add):
335         (WTF::::unlinkAndDelete):
336         (WTF::::deleteAllNodes):
337
338 2007-01-31  Maciej Stachowiak  <mjs@apple.com>
339
340         Reviewed by Adam.
341         
342         - fix sporadic crash
343
344         * wtf/ListHashSet.h:
345         (WTF::::remove): remove before deleting
346
347 2007-01-31  Maciej Stachowiak  <mjs@apple.com>
348
349         Reviewed by Mark with help from Lars.
350         
351         - added new ListHashSet class, which combines a hashtable and a linked list to provide a set
352         that keeps elements in inserted order
353         
354         This is to assist in fixing the following:
355         <rdar://problem/4751164> REGRESSION: Safari places text on incorrect button when returning to a page via back [10541]
356         http://bugs.webkit.org/show_bug.cgi?id=10541
357
358         * JavaScriptCore.vcproj/WTF/WTF.vcproj:
359         * JavaScriptCore.xcodeproj/project.pbxproj:
360         * wtf/HashTable.h:
361         (WTF::HashTable::find):
362         (WTF::HashTable::contains):
363         (WTF::::find):
364         (WTF::::contains):
365         * wtf/ListHashSet.h: Added.
366         (WTF::ListHashSetNode::ListHashSetNode):
367         (WTF::ListHashSetNodeHashFunctions::hash):
368         (WTF::ListHashSetNodeHashFunctions::equal):
369         (WTF::ListHashSetIterator::ListHashSetIterator):
370         (WTF::ListHashSetIterator::get):
371         (WTF::ListHashSetIterator::operator*):
372         (WTF::ListHashSetIterator::operator->):
373         (WTF::ListHashSetIterator::operator++):
374         (WTF::ListHashSetIterator::operator--):
375         (WTF::ListHashSetIterator::operator==):
376         (WTF::ListHashSetIterator::operator!=):
377         (WTF::ListHashSetIterator::operator const_iterator):
378         (WTF::ListHashSetIterator::node):
379         (WTF::ListHashSetConstIterator::ListHashSetConstIterator):
380         (WTF::ListHashSetConstIterator::get):
381         (WTF::ListHashSetConstIterator::operator*):
382         (WTF::ListHashSetConstIterator::operator->):
383         (WTF::ListHashSetConstIterator::operator++):
384         (WTF::ListHashSetConstIterator::operator--):
385         (WTF::ListHashSetConstIterator::operator==):
386         (WTF::ListHashSetConstIterator::operator!=):
387         (WTF::ListHashSetConstIterator::node):
388         (WTF::ListHashSetTranslator::hash):
389         (WTF::ListHashSetTranslator::equal):
390         (WTF::ListHashSetTranslator::translate):
391         (WTF::::ListHashSet):
392         (WTF::::operator):
393         (WTF::::~ListHashSet):
394         (WTF::::size):
395         (WTF::::capacity):
396         (WTF::::isEmpty):
397         (WTF::::begin):
398         (WTF::::end):
399         (WTF::::find):
400         (WTF::::contains):
401         (WTF::::add):
402         (WTF::::remove):
403         (WTF::::clear):
404         (WTF::::unlinkAndDelete):
405         (WTF::::appendNode):
406         (WTF::::deleteAllNodes):
407         (WTF::::makeIterator):
408         (WTF::::makeConstIterator):
409         (WTF::deleteAllValues):
410
411 2007-01-30  Darin Adler  <darin@apple.com>
412
413         * kjs/DateMath.cpp: Fix license header to reflect LGPL as the first license
414         mentioned. We still mention the option of using under MPL or GPL since some
415         of this code came from the Mozilla project with those license terms.
416
417 2007-01-30  Simon Hausmann  <hausmann@kde.org>
418
419         Reviewed by Zack.
420
421         Turned JavaScriptCore from a separate library into an includable
422         project, to combine it all into libWebKitQt.
423
424         * JavaScriptCore.pri: Added.
425         * JavaScriptCore.pro: Removed.
426         * kjs/testkjs.pro:
427
428 2007-01-29  Geoffrey Garen  <ggaren@apple.com>
429
430         Reviewed by Maciej Stachowiak.
431
432         Fixed <rdar://problem/4485644> REGRESSION: JavaScriptCore has init routines
433         
434         The TCMalloc module now initializes, if needed, inside GetCache() and 
435         fastMallocSetIsMultiThreaded(). We leverage the same synchronization 
436         technique used for enabling / disabling the single-threaded optimization 
437         to synchronize initialization of the library without requiring a lock 
438         for every malloc.
439         
440         1,251 runs of tcmalloc_unittest, 2 runs of a custom, massively multi-threaded 
441         tcmalloc_unittest, and my custom version of the PLT show no regressions.
442         Super-accurate JS iBench reports a .24% regression, which is right at the
443         limit of its error range, so I'm declaring victory.
444
445         * wtf/FastMalloc.cpp:
446         (WTF::fastMallocSetIsMultiThreaded): Initialize, if needed. (InitModule()
447         checks the "if needed" part.)
448         (WTF::TCMalloc_ThreadCache::GetCache): Restored original TCMalloc code
449         inside #ifdef, for posterity. Added new initialization logic.
450         (WTF::TCMalloc_ThreadCache::InitModule): Call InitTSD(), since we don't
451         have a static initializer to call it for us, now. This means that fastMalloc
452         is not usable as a general libc allocator, but it never was, and if it were
453         the general libc allocator, we wouldn't be here in the first place, so whatever.
454         (WTF::TCMalloc_ThreadCache::InitTSD): Don't try to take the pageheap_lock, 
455         since InitModule already has it.
456
457 2007-01-29  Kevin McCullough  <KMcCullough@apple.com>
458
459         Reviewed by Geoff and Oliver.
460
461         - rdar://problem/4955561
462         - missusing JavaScript shouldn't crash webkit.  Now it doesn't, in this case.
463
464         * bindings/objc/objc_runtime.mm:
465         (ObjcFallbackObjectImp::callAsFunction):
466         * bindings/runtime_method.cpp:
467         (RuntimeMethod::callAsFunction):
468         * bindings/runtime_object.cpp:
469         (RuntimeObjectImp::callAsFunction):
470
471 2007-01-28  Geoffrey Garen  <ggaren@apple.com>
472
473         Reviewed by Maciej Stachowiak.
474         
475         First step in fixing <rdar://problem/4485644> REGRESSION: JavaScriptCore 
476         has init routines
477         
478         Don't rely on a static initializer to store the main thread's ID (which
479         we would use to detect allocations on secondary threads). Instead, require 
480         the caller to notify fastMalloc if it might allocate on a secondary thread.
481         
482         Also fixed what seemed like a race condition in do_malloc.
483         
484         tcmalloc_unittest and my custom versions of JS iBench and PLT show no
485         regressions.
486
487         * wtf/FastMalloc.cpp:
488         (WTF::fastMallocSetIsMultiThreaded): 
489         (1) Renamed from "fastMallocRegisterThread", which was a misleading name because 
490         not all threads need to register with fastMalloc -- only secondary threads 
491         need to, and only for the purpose of disabling its single-threaded optimization. 
492
493         (2) Use the pageheap_lock instead of a custom one, since we need to synchronize
494         with the read of isMultiThreaded inside CreateCacheIfNecessary. This is a new
495         requirement, now that we can't guarantee that the first call to CreateCacheIfNecessary
496         will occur on the main thread at init time, before any other threads have been created.
497
498         (WTF::TCMalloc_ThreadCache::CreateCacheIfNecessary):
499         (WTF::do_malloc): Reverted WTF change only to call GetCache() if size <= kMaxSize.
500         The WTF code would read phinited without holding the pageheap_lock, which
501         seemed like a race condition. Regardless, calling GetCache reduces the number 
502         of code paths to module initialization, which will help in writing the 
503         final fix for this bug.
504
505 2007-01-28  David Kilzer  <ddkilzer@webkit.org>
506
507         Reviewed by Darin.
508
509         - fix http://bugs.webkit.org/show_bug.cgi?id=9815
510           JavaScript TypeError loading Dean Edwards' JS compressor/obfuscator
511
512         Creating a function using 'new Function()' was not setting its prototype with the
513         same flags as 'function() { }'.
514
515         Test: fast/js/function-prototype.html
516
517         * kjs/function_object.cpp:
518         (FunctionObjectImp::construct): Change flags from DontEnum|DontDelete|ReadOnly to
519         Internal|DontDelete to match FuncDeclNode::processFuncDecl() and
520         FuncExprNode::evaluate() in kjs/nodes.cpp.
521
522 2007-01-27  Geoffrey Garen  <ggaren@apple.com>
523
524         Reviewed by Beth Dakin.
525         
526         Added some missing JSLocks, which might fix <rdar://problem/4889707>.
527
528         We need to lock whenever we might allocate memory because our FastMalloc
529         implementation requires clients to register their threads, which we do
530         through JSLock. 
531         
532         We also need to lock whenever modifying ref-counts because they're not 
533         thread-safe.
534
535         * API/JSObjectRef.cpp:
536         (JSClassCreate): Allocates memory
537         (JSClassRetain): Modifies a ref-count
538         (JSClassRelease): Modifies a ref-count
539         (JSPropertyNameArrayRetain): Modifies a ref-count
540         (JSPropertyNameArrayRelease): Modifies a ref-count
541         * API/JSStringRef.cpp:
542         (JSStringRetain): Modifies a ref-count
543         * API/JSValueRef.cpp:
544         (JSValueIsInstanceOfConstructor): Might allocate memory if an exception
545         is thrown.
546
547 2007-01-27  Lars Knoll <lars@trolltech.com>
548
549         Fix the Qt build.
550
551         * bindings/qt/qt_instance.h:
552
553 2007-01-25  Geoffrey Garen  <ggaren@apple.com>
554
555         Reviewed by Maciej Stachowiak.
556         
557         Fixed <rdar://problem/4608404> WebScriptObject's _rootObject lack 
558         of ownership policy causes crashes (e.g., in Dashcode)
559         
560         The old model for RootObject ownership was either to (1) leak them or (2) assign
561         them to a single owner -- the WebCore::Frame -- which would destroy them 
562         when it believed that all of its plug-ins had unloaded.
563         
564         This model was broken because of (1) and also because plug-ins are not the only 
565         RootObject clients. All Bindings clients are RootObjects clients, including 
566         applications, which outlive any particular WebCore::Frame.
567         
568         The new model for RootObject ownership is to reference-count them, with a
569         throw-back to the old model: The WebCore::Frame tracks the RootObjects
570         it creates, and invalidates them when it believes that all of its plug-ins 
571         have unloaded.
572         
573         We maintain this throw-back to avoid plug-in leaks, particularly from Java.
574         Java is completely broken when it comes to releasing JavaScript objects. 
575         Comments in our code allege that Java does not always call finalize when 
576         collecting objects. Moreoever, my own testing reveals that, when Java does 
577         notify JavaScript of a finalize, the data it provides is totally bogus.
578         
579         This setup is far from ideal, but I don't think we can do better without
580         completely rewriting the bindings code, and possibly part of the Java
581         plug-in / VM.
582         
583         Layout tests pass. No additional leaks reported. WebCore/manual-tests/*liveconnect*
584         and a few LiveConnect demos on the web also run without a hitch.
585         
586         const RootObject* => RootObject*, since we need to ref/deref
587         
588         * bindings/NP_jsobject.cpp:
589         (jsDeallocate): deref our RootObjects. Also unprotect or JSObject, instead
590         of just relying on the RootObject to do it for us when it's invalidated.
591         (_isSafeScript): Check RootObject validity.
592         (_NPN_CreateScriptObject): ditto
593         (_NPN_Invoke): ditto
594         (_NPN_Evaluate): ditto
595         (_NPN_GetProperty): ditto
596         (_NPN_SetProperty): ditto
597         (_NPN_RemoveProperty): ditto
598         (_NPN_HasProperty): ditto
599         (_NPN_HasMethod): ditto
600         (_NPN_SetException): ditto
601
602         * bindings/runtime_root.cpp: 
603         Revived bit-rotted LIAR LIAR LIAR comment.
604         
605         LOOK: Added support for invalidating RootObjects without deleting them, 
606         which is the main goal of this patch. 
607
608         Moved protect counting into the RootObject class, to emphasize that 
609         the RootObject protects the JSObject, and unprotects it upon being invalidated.
610             addNativeReference => RootObject::gcProtect
611             removeNativeReference => RootObject::gcUnprotect
612             ProtectCountSet::contains => RootObject::gcIsProtected
613             
614         I know we'll all be sad to see the word "native" go.
615         
616         * bindings/runtime_root.h: Added ref-counting support to RootObject, with
617         all the standard accoutrements.
618
619         * bindings/c/c_utility.cpp:
620         (KJS::Bindings::convertValueToNPVariant): If we can't find a valid RootObject,
621         return void instead of just leaking.
622
623         * bindings/jni/jni_instance.cpp:
624         (JavaInstance::JavaInstance): Don't take a RootObject in our constructor;
625         be like other Instances and require the caller to call setRootObject. This
626         reduces the number of ownership code paths.
627         (JavaInstance::invokeMethod): Check RootObject for validity.
628         * bindings/jni/jni_instance.h: Removed private no-arg constructor. Having
629         an arg constructor accomplishes the same thing.
630
631         * bindings/jni/jni_jsobject.cpp:
632         (JavaJSObject::invoke): No need to call findProtectCountSet, because finalize()
633         checks for RootObject validity.
634         (JavaJSObject::JavaJSObject): check RootObject for validity
635         (JavaJSObject::call): ditto
636         (JavaJSObject::eval): ditto
637         (JavaJSObject::getMember): ditto
638         (JavaJSObject::setMember): ditto
639         (JavaJSObject::removeMember): ditto
640         (JavaJSObject::getSlot): ditto
641         (JavaJSObject::setSlot): ditto
642         (JavaJSObject::toString): ditto
643         (JavaJSObject::finalize): ditto
644         (JavaJSObject::createNative): No need to tell the RootObject to protect 
645         the global object, since the RootObject already owns the interpreter.
646
647         * bindings/jni/jni_runtime.cpp:
648         (JavaArray::JavaArray): Removed copy construcutor becaue it was unused.
649         Dead code is dangerous code.
650
651         * bindings/objc/objc_runtime.mm: Added WebUndefined protocol. Previous use
652         of WebScriptObject was bogus, because WebUndefined is not a subclass of
653         WebScriptObject.
654         (convertValueToObjcObject): If we can't find a valid RootObject,
655         return nil instead of just leaking.
656
657         * bindings/objc/objc_utility.mm:
658         (KJS::Bindings::convertValueToObjcValue): If we can't find a valid RootObject,
659         return nil instead of just leaking.
660
661 2007-01-27  Andrew Wellington  <proton@wiretapped.net>
662
663         Reviewed by Maciej.
664         
665         Fix for Repeated string concatenation results in OOM crash
666         http://bugs.webkit.org/show_bug.cgi?id=11131
667
668         * kjs/operations.cpp:
669         (KJS::add): Throw exception if string addition result is null
670         * kjs/ustring.cpp:
671         (KJS::UString::UString): Don't call memcpy when malloc failed
672
673 2007-01-25  Jan Kraemer  <camel@gmx.de>
674
675         Reviewed by Maciej
676
677         Fix for http://bugs.webkit.org/show_bug.cgi?id=12382
678
679         Fix crash on architectures with 32 bit ints and
680         64 bit longs (For example Linux on AMD64)
681
682         * kjs/dtoa.cpp: #define Long int as suggested in comment
683
684 2007-01-24  Geoffrey Garen  <ggaren@apple.com>
685
686         Fixed up #include order for style. No review necessary.
687
688         * API/JSStringRef.cpp:
689
690 2007-01-24  Geoffrey Garen  <ggaren@apple.com>
691
692         Reviewed by Maciej Stachowiak.
693
694         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
695         Copy JSStringRefCF, in case anybody wants to use it. (I just added
696         it recently.)
697
698 2007-01-24  Maciej Stachowiak  <mjs@apple.com>
699
700         Not reviewed, trivial property change.
701         
702         * JavaScriptCore.vcproj/JavaScriptCore.sln: remove svn:mime-type
703         property which made this binary.
704
705 2007-01-25  Mark Rowe  <mrowe@apple.com>
706
707         Reviewed by Darin.
708
709         * Info.plist: Update copyright string.
710
711 2007-01-24  Darin Adler  <darin@apple.com>
712
713         Reviewed by Mark Rowe.
714
715         * JavaScriptCore.xcodeproj/project.pbxproj: Changed to /usr/sbin/sysctl
716         so we don't rely on people's paths.
717
718 2007-01-23  Alice Liu  <alice.liu@apple.com>
719
720         release build fix
721
722         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
723         Copy APICasts.h
724
725 2007-01-23  Geoffrey Garen  <ggaren@apple.com>
726
727         build fix
728
729         * API/JSStringRef.h:
730         * JavaScriptCore.xcodeproj/project.pbxproj:
731
732 2007-01-24  Mark Rowe  <mrowe@apple.com>
733
734         Build fix for DumpRenderTree.
735
736         * JavaScriptCore.xcodeproj/project.pbxproj: Make JSStringRefCF.h public so it's copied into built framework.
737
738 2007-01-23  Anders Carlsson  <acarlsson@apple.com>
739
740         Reviewed by Darin.
741
742         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
743         Copy APICasts.h
744
745 2007-01-23  Geoffrey Garen  <ggaren@apple.com>
746
747         Reviewed by Maciej Stachowiak.
748         
749         Fixed <rdar://problem/4885131> Move CFString function declarations from 
750         JSStringRef.h to JSStringRefCF.h
751         
752         Also removed remaining API FIXMEs and changed them into Radars.
753
754         * API/JSClassRef.cpp:
755         (OpaqueJSClass::OpaqueJSClass): Added Radar numbers for UTF8 conversion.
756
757         * API/JSContextRef.cpp:
758         (JSGlobalContextCreate): Replaced FIXME for NULL JSContextRef with Radar number.
759
760         * API/JSObjectRef.h: Removed FIXME, which is unprofessional in a public header.
761
762         * API/JSStringRef.cpp: Moved CF related implementations to JSStringRefCF.cpp.
763         (JSStringCreateWithUTF8CString): Replaced FIXME with Radar number.
764         * API/JSStringRef.h: Moved CF related declarations to JSStringRefCF.h. Added
765         #include of JSStringRefCF.h as a stopgap until clients start #including
766         it as needed by themselves.
767
768         * API/JSStringRefCF.cpp: Added.
769         (JSStringCreateWithCFString):
770         (JSStringCopyCFString): Replaced JSChar cast with UniChar cast, which is 
771         more appropriate for a CF call.
772         * API/JSStringRefCF.h: Added.
773         * JavaScriptCore.xcodeproj/project.pbxproj:
774
775 2007-01-18  Sanjay Madhav  <sanjay12@gmail.com>
776
777         Reviewed by Darin.
778
779         Add JavaScriptCore define to help with tracing of when objects are marked.
780
781         * kjs/object.cpp:
782         (KJS::JSObject::mark):
783
784 2007-01-18  Simon Hausmann  <hausmann@kde.org>
785
786         Reviewed by Zack.
787
788         * JavaScriptCore.pro: Remove generated files on make clean.
789         * pcre/pcre.pri:
790
791 2007-01-16  Alexey Proskuryakov  <ap@webkit.org>
792
793         Reviewed by Maciej.
794
795         http://bugs.webkit.org/show_bug.cgi?id=12268
796         Give object prototypes their own names
797
798         * kjs/lookup.h: Append "Prototype" to ClassName in KJS_IMPLEMENT_PROTOTYPE.
799
800 2007-01-16  Geoffrey Garen  <ggaren@apple.com>
801
802         Reviewed by Darin Adler.
803         
804         Added re-entrency checking to GC allocation and collection. It is an error
805         to allocate or collect from within a collection. We've had at least one 
806         case of each bug in the past.
807         
808         Added a comment to the API header, explaining that API clients must not
809         make this mistake, either.
810         
811         Layout tests and JS tests pass.
812
813         * API/JSObjectRef.h:
814         * kjs/collector.cpp:
815         (KJS::GCLock::GCLock):
816         (KJS::GCLock::~GCLock):
817         (KJS::Collector::allocate):
818         (KJS::Collector::collect):
819
820 2007-01-14  Mark Rowe  <mrowe@apple.com>
821
822         Reviewed by Mitz.
823
824         Minor fixes to JavaScript pretty-printing.
825
826         * JavaScriptCore.exp:
827         * kjs/Parser.cpp:
828         (KJS::Parser::prettyPrint): Return line number and error message if parsing fails.
829         * kjs/Parser.h:
830         * kjs/nodes2string.cpp:
831         (ElementNode::streamTo): Include comma delimiters in array literals.
832         (PropertyNameNode::streamTo): Quote property names in object literals to handle the case when the property name is not a valid identifier.
833         * kjs/testkjs.cpp:
834         (doIt): Print any errors encountered while pretty-printing.
835
836 2007-01-12  Anders Carlsson  <acarlsson@apple.com>
837
838         Reviewed by Darin.
839
840         * wtf/HashTraits.h:
841         Add hash traits for unsigned long and unsigned long long.
842
843 2007-01-12  Geoffrey Garen  <ggaren@apple.com>
844
845         RS by Brady Eidson.
846         
847         Rolling back in r18786 with leaks fixed, and these renames slightly reworked:
848
849         Because they can return 0:
850         rootObjectForImp => findRootObject (overloaded for JSObject* and Interpreter*)
851         rootObjectForInterpreter => findRootObject (ditto)
852         findReferenceSet => findProtectCountSet
853
854 2007-01-11  Geoffrey Garen  <ggaren@apple.com>
855
856         RS by Brady Eidson.
857         
858         Rolling out r18786 because it caused leaks.
859
860 2007-01-11  Geoffrey Garen  <ggaren@apple.com>
861
862         Reviewed by Anders Carlsson.
863
864         Even more cleanup in preparation for fixing <rdar://problem/4608404> 
865         WebScriptObject's _executionContext lack of ownership policy causes 
866         crashes (e.g., in Dashcode)
867         
868         Layout tests pass.
869         
870         Renames:
871             ReferencesSet | ProtectCounts => ProtectCountSet (because it's a typename for a set of GC protect counts)
872             ReferencesByRootMap => RootObjectMap (because RootObjectToProtectCountSetMap would have been confusing)
873             pv => protectedValues
874             rootObjectForImp => getRootObject (overloaded for JSObject* and Interpreter*)
875             rootObjectForInterpreter => getRootObject (ditto)
876             findReferenceSet => getProtectCountSet
877             imp => jsObject
878         
879         (KJS::Bindings::getRootObjectMap): Changed to take advantage of built-in
880         facility for initializing static variables.
881
882         (KJS::Bindings::getProtectCountSet):
883         (KJS::Bindings::destroyProtectCountSet): Added. Helps encapsulate the fact
884         that getting a ProtectCountSet entails adding a RootObject to a hash table,
885         and destroying one entails the reverse.
886
887         (KJS::Bindings::getRootObject): Removed spurious NULL check.
888         
889         (KJS::Bindings::findReferenceSet): Renamed. Changed to use getRootObject()
890         instead of iterating on its own.
891
892         (KJS::Bindings::addNativeReference): Changed to use an early return instead
893         of indenting the whole function.
894         (KJS::Bindings::removeNativeReference): Ditto.
895
896 2007-01-11  Geoffrey Garen  <ggaren@apple.com>
897
898         Reviewed by Anders Carlsson.
899
900         Even more cleanup in preparation for fixing <rdar://problem/4608404> 
901         WebScriptObject's _executionContext lack of ownership policy causes 
902         crashes (e.g., in Dashcode)
903         
904         Layout tests pass.
905         
906         Renames:
907             findRootObjectForNativeHandleFunction => createRootObject
908             FindRootObjectForNativeHandleFunctionPtr => CreateRootObjectFunction
909             
910         Also removed unnecessary use of "Bindings::" prefix.
911
912         * JavaScriptCore.exp:
913         * bindings/jni/jni_jsobject.cpp:
914         (JavaJSObject::createNative):
915         (JavaJSObject::convertValueToJObject):
916         (JavaJSObject::convertJObjectToValue):
917         * bindings/runtime_root.cpp:
918         (KJS::Bindings::RootObject::setCreateRootObject):
919         * bindings/runtime_root.h:
920         (KJS::Bindings::RootObject::createRootObject):
921
922 2007-01-11  George Staikos  <staikos@kde.org>
923
924         Reviewed by Maciej
925
926         Appears to be Mac specific right now.
927
928         * kjs/config.h:
929
930 2007-01-10  Lars Knoll <lars@trolltech.com>
931
932         Reviewed by Zack
933
934         Use the new functionality in Qt 4.3, to make
935         the methods closer compliant with the Unicode
936         spec.
937
938         Keep the old code so that it still compiles against
939         Qt 4.2.
940
941         * wtf/unicode/qt4/UnicodeQt4.h:
942         (WTF::Unicode::toLower):
943         (WTF::Unicode::toUpper):
944         (WTF::Unicode::toTitleCase):
945         (WTF::Unicode::foldCase):
946         (WTF::Unicode::isFormatChar):
947         (WTF::Unicode::isPrintableChar):
948         (WTF::Unicode::isSeparatorSpace):
949         (WTF::Unicode::isPunct):
950         (WTF::Unicode::isDigit):
951         (WTF::Unicode::isLower):
952         (WTF::Unicode::isUpper):
953         (WTF::Unicode::digitValue):
954         (WTF::Unicode::mirroredChar):
955         (WTF::Unicode::combiningClass):
956         (WTF::Unicode::decompositionType):
957         (WTF::Unicode::umemcasecmp):
958         (WTF::Unicode::direction):
959         (WTF::Unicode::category):
960
961 2007-01-09  Darin Adler  <darin@apple.com>
962
963         - update 2007 Apple copyright for the new company name
964
965         * kjs/DateMath.cpp:
966
967 2007-01-09  Darin Adler  <darin@apple.com>
968
969         - fix build
970
971         * kjs/string_object.cpp: (KJS::StringProtoFunc::callAsFunction):
972         Actually compile it this time.
973
974 2007-01-09  Darin Adler  <darin@apple.com>
975
976         - fix build
977
978         * kjs/string_object.cpp: (KJS::StringProtoFunc::callAsFunction):
979         Change types.
980
981 2007-01-09  Darin Adler  <darin@apple.com>
982
983         - fix build on platforms where Unicode::UChar is != uint16_t
984
985         * kjs/string_object.cpp: (KJS::StringProtoFunc::callAsFunction):
986         Change types.
987
988 2007-01-09  Mitz Pettel  <mitz@webkit.org>
989
990         Reviewed by Darin.
991
992         - changes for http://bugs.webkit.org/show_bug.cgi?id=11078
993           Forms Don't Submit (ASP Pages)
994
995         * JavaScriptCore.exp:
996         * kjs/value.cpp:
997         (KJS::JSValue::toInt32): Folded toInt32Inline into this method, which was its
998         only caller.
999         (KJS::JSValue::toUInt32): Added a variant that reports if the conversion has
1000         succeeded.
1001         * kjs/value.h:
1002
1003 2007-01-09  Darin Adler  <darin@apple.com>
1004
1005         Reviewed by Maciej.
1006
1007         - fix http://bugs.webkit.org/show_bug.cgi?id=12174
1008           improve Unicode use (less WTF::Unicode:: prefix, centralized character names)
1009
1010         * wtf/unicode/icu/UnicodeIcu.h: Change parameter and return types
1011         to UChar32 and UChar. Removed unneeded type casts and added some
1012         const to functions that lacked it. Removed WTF::Unicode::memcmp.
1013         (WTF::Unicode::umemcasecmp): Renamed from strcasecmp since this
1014         doesn't work on 0-terminated strings as the str functions do.
1015         * wtf/unicode/qt4/UnicodeQt4.h: Ditto.
1016
1017         - got rid of namespace prefixes from most uses of WTF::Unicode
1018
1019         * kjs/function.cpp:
1020         (KJS::isStrWhiteSpace):
1021         (KJS::escapeStringForPrettyPrinting):
1022         * kjs/lexer.cpp:
1023         (KJS::Lexer::isWhiteSpace):
1024         (KJS::Lexer::isIdentStart):
1025         (KJS::Lexer::isIdentPart):
1026         * kjs/string_object.cpp:
1027         (KJS::StringProtoFunc::callAsFunction):
1028
1029 2007-01-07  David Kilzer  <ddkilzer@webkit.org>
1030
1031         Reviewed by Darin.
1032
1033         - fix http://bugs.webkit.org/show_bug.cgi?id=11917
1034           setlocale() can return null
1035
1036         * kjs/date_object.cpp:
1037         (KJS::DateProtoFunc::callAsFunction): Removed dead code.
1038
1039 2007-01-07  David Carson  <dacarson@gmail.com>
1040
1041         Reviewed by Darin.
1042
1043         - fix http://bugs.webkit.org/show_bug.cgi?id=12100
1044           JNI bindings should be available to non-Mac platforms that have JNI
1045
1046         Change JNI so that it is not wrapped in the PLATFORM(MAC) ifdef, enabling
1047         other platforms who have JNI to use it.
1048
1049         * bindings/jni/jni_instance.h:  
1050           Removed unnecessary include of <CoreFoundation/CoreFoundation.h>
1051         * bindings/jni/jni_utility.cpp:
1052         (KJS::Bindings::setJavaVM):
1053         * bindings/jni/jni_utility.h:
1054           Added new method for clients to set the JavaVM
1055         * bindings/runtime.cpp:
1056         (KJS::Bindings::Instance::createBindingForLanguageInstance):
1057           Changed code to utilize new #if HAVE(JNI)
1058         * kjs/config.h:
1059           Added new #define for JNI, ie HAVE_JNI
1060
1061 2007-01-07  David Carson  <dacarson@gmail.com>
1062
1063         Reviewed by Darin.
1064
1065         Fix http://bugs.webkit.org/show_bug.cgi?id=11431
1066         ARM platform has some byte alignment issues
1067
1068         Fix for NaN being 4 bytes and it must start on a byte boundary
1069         for ARM architectures.
1070
1071         * kjs/fpconst.cpp:
1072         (KJS::):
1073
1074 2007-01-04  David Kilzer  <ddkilzer@webkit.org>
1075
1076         Reviewed by Kevin McCullough.
1077
1078         - fix http://bugs.webkit.org/show_bug.cgi?id=12070
1079           REGRESSION: KJS::getUTCOffset() caches UTC offset but ignores time zone changes
1080
1081         * kjs/DateMath.cpp:
1082         (KJS::getUTCOffset): Don't cache UTC offset.
1083
1084 2007-01-02  Darin Adler  <darin@apple.com>
1085
1086         - minor tweak (hope this doesn't re-break Windows)
1087
1088         * pcre/pcre_compile.c: Removed use of const pcre_uchar const * -- Mitz probably
1089         meant const pcre_uchar *const, but I think we can do without the explicit const here.
1090
1091         * pcre/pcre_internal.h: Re-enabled warning C4114.
1092
1093 2007-01-02  David Kilzer  <ddkilzer@webkit.org>
1094
1095         Reviewed by NOBODY (Windows build fix).
1096
1097         The MSVC compiler requires variables to be declared at the top of the enclosing block in C source.
1098
1099         Disable this warning to prevent MSVC from complaining about the 'const pcre_uchar const *' type:
1100         warning C4114: same type qualifier used more than once
1101
1102         * pcre/pcre_compile.c:
1103         (pcre_compile2): Moved variable declarations to top of their respective enclosing blocks.
1104         * pcre/pcre_internal.h: Added pragma to disable compiler warning.
1105
1106 2007-01-01  Mitz Pettel  <mitz@webkit.org>
1107
1108         Reviewed by Darin.
1109
1110         - fix http://bugs.webkit.org/show_bug.cgi?id=11849
1111           REGRESSION (r18182): Google Calendar is broken (a regular expression containing a null character is not parsed correctly)
1112
1113         Modified pcre_compile() (and the functions that it calls) to work with patterns
1114         containing null characters.
1115
1116         Covered by JavaScriptCore tests ecma_3/RegExp/octal-002.js and ecma_3/RegExp/regress-85721.js
1117
1118         * kjs/regexp.cpp:
1119         (KJS::RegExp::RegExp): Changed to not null-terminate the pattern string and instead
1120         pass its length to pcre_compile.
1121         * pcre/pcre.h:
1122         * pcre/pcre_compile.c:
1123         (check_escape):
1124         (get_ucp):
1125         (is_counted_repeat):
1126         (check_posix_syntax):
1127         (compile_branch):
1128         (compile_regex):
1129         (pcre_compile): Added a parameter specifying the length of the pattern, which
1130         is no longer required to be null-terminated and may contain null characters. 
1131         (pcre_compile2):
1132         * pcre/pcre_internal.h:
1133         * tests/mozilla/expected.html: Updated for the two tests that this patch
1134         fixes. Also updated failing results for ecma_3/RegExp/regress-100199.js
1135         which were not updated after bug 6257 was fixed.
1136
1137 2007-01-01  David Kilzer  <ddkilzer@webkit.org>
1138
1139         Reviewed by Darin.
1140
1141         - fix http://bugs.webkit.org/show_bug.cgi?id=12057
1142           REGRESSION: JavaScript Date Is One Day In The Future in GMT time zone
1143
1144         Because Mac OS X returns geographically and historically accurate time zone information,
1145         converting Jan 02, 1970 12:00:00 AM to local time then subtracting 24 hours did not work
1146         in GMT (London - England) since it was in BST (+0100) all year in 1970[1].  Instead, the
1147         UTC offset is calculated by converting Jan 01, 2000 12:00:00 AM to local time then
1148         subtracting that from the same date in UTC.
1149
1150         [1] http://en.wikipedia.org/wiki/British_Summer_Time
1151
1152         * kjs/DateMath.cpp:
1153         (KJS::getUTCOffset): Updated UTC offset calculation.
1154         (KJS::getDSTOffset): Improved comment.
1155
1156 2006-12-31  David Kilzer  <ddkilzer@webkit.org>
1157
1158         Reviewed by Geoff.
1159
1160         Update embedded pcre library from version 6.2 to 6.4.  Changes from pcre 6.2 to 6.3
1161         did not include any files in JavaScriptCore/pcre.
1162
1163         All changes include renaming EXPORT to PCRE_EXPORT, renaming of ucp_findchar() to
1164         _pcre_ucp_findchar(), or comment changes.  Additional changes noted below.
1165
1166         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj: Updated source file list.
1167         * JavaScriptCore.xcodeproj/project.pbxproj: Renamed pcre_printint.c to pcre_printint.src
1168         and changed it from a source file to a header file.
1169         * JavaScriptCoreSources.bkl: Updated source file list.
1170         * pcre/CMakeLists.txt: Updated source file list.
1171         * pcre/pcre-config.h:
1172         * pcre/pcre.h: Updated version.
1173         * pcre/pcre.pri: Updated source file list.
1174         * pcre/pcre_compile.c: Include pcre_printint.src #if DEBUG.
1175         (pcre_compile2):
1176         * pcre/pcre_config.c:
1177         * pcre/pcre_exec.c:
1178         (match):
1179         * pcre/pcre_fullinfo.c:
1180         * pcre/pcre_info.c:
1181         * pcre/pcre_internal.h: Added header guard.  Removed export of _pcre_printint().
1182         * pcre/pcre_ord2utf8.c:
1183         * pcre/pcre_printint.c: Renamed to pcre_printint.src.
1184         * pcre/pcre_printint.src: Added.  Renamed _pcre_printint() to pcre_printint().
1185         * pcre/pcre_refcount.c:
1186         * pcre/pcre_study.c:
1187         * pcre/pcre_tables.c:
1188         * pcre/pcre_try_flipped.c:
1189         * pcre/pcre_ucp_findchar.c: Added contents of ucp_findchar.c.
1190         * pcre/pcre_version.c:
1191         * pcre/pcre_xclass.c:
1192         (_pcre_xclass):
1193         * pcre/ucp.h: Removed export of ucp_findchar().
1194         * pcre/ucp_findchar.c: Removed.  Contents moved to pcre_ucp_findchar.c.
1195
1196 2006-12-29  David Kilzer  <ddkilzer@webkit.org>
1197
1198         Reviewed by Geoff.
1199
1200         Update embedded pcre library from version 6.1 to 6.2.  From the pcre ChangeLog:
1201
1202         3. Added "b" to the 2nd argument of fopen() in dftables.c, for non-Unix-like
1203            operating environments where this matters.
1204
1205         5. Named capturing subpatterns were not being correctly counted when a pattern
1206            was compiled. This caused two problems: (a) If there were more than 100
1207            such subpatterns, the calculation of the memory needed for the whole
1208            compiled pattern went wrong, leading to an overflow error. (b) Numerical
1209            back references of the form \12, where the number was greater than 9, were
1210            not recognized as back references, even though there were sufficient
1211            previous subpatterns.
1212
1213         * pcre/dftables.c: Item 3.
1214         (main):
1215         * pcre/pcre.h: Updated version.
1216         * pcre/pcre_compile.c: Item 5.
1217         (read_repeat_counts):
1218         (pcre_compile2):
1219
1220 2006-12-29  Geoffrey Garen  <ggaren@apple.com>
1221
1222         Reviewed by Brian Dash... err... Mark Rowe.
1223
1224         More cleanup in preparation for fixing <rdar://problem/4608404> 
1225         WebScriptObject's _executionContext lack of ownership policy causes 
1226         crashes (e.g., in Dashcode)
1227         
1228         The key change here is to RootObject::RootObject().
1229         
1230         * JavaScriptCore.exp:
1231
1232         * bindings/c/c_utility.cpp:
1233         (KJS::Bindings::convertValueToNPVariant): Changed to use new constructor.
1234
1235         * bindings/jni/jni_jsobject.cpp:
1236         (JavaJSObject::createNative): Changed to use new constructor. Replaced
1237         large 'if' followed by default condition with "if !" and explicit default
1238         condition.
1239
1240         * bindings/objc/objc_runtime.mm:
1241         (convertValueToObjcObject): Changed to use new constructor.
1242
1243         * bindings/runtime_root.cpp:
1244         (KJS::Bindings::RootObject::destroy): "removeAllNativeReferences" => "destroy"
1245         because this function actually destroys the RootObject.
1246
1247         * bindings/runtime_root.h: Changed Interpreter* to RefPtr<Interpreter>
1248         to prevent a RootObject from holding a stale Interperter*.
1249         
1250         (KJS::Bindings::RootObject::RootObject): Changed constructor to take an 
1251         Interpreter*, since it's pointless to create a RootObject without one.
1252         Removed setRootObjectImp() and rootObjectImp() because they were just
1253         a confusing way of setting and getting the Interpreter's global object.
1254
1255         (KJS::Bindings::RootObject::nativeHandle): "_nativeHandle" => "m_nativeHandle"
1256         (KJS::Bindings::RootObject::interpreter): "_interpreter" => "m_interpreter"
1257
1258 2006-12-28  George Staikos  <staikos@kde.org>
1259
1260         Reviewed by Olliej.
1261
1262         * bindings/qt/qt_instance.cpp: build
1263         (KJS::Bindings::QtInstance::QtInstance):
1264
1265 2006-12-28  Geoffrey Garen  <ggaren@apple.com>
1266
1267         Reviewed by Oliver Hunt.
1268         
1269         More cleanup. Layout tests pass.
1270         
1271         Use a helper function to initialize and access WebUndefined and WebScriptObject.
1272
1273         * bindings/objc/objc_runtime.h:
1274         * bindings/objc/objc_runtime.mm:
1275         (KJS::Bindings::webScriptObjectClass):
1276         (KJS::Bindings::webUndefinedClass):
1277         (convertValueToObjcObject):
1278         * bindings/objc/objc_utility.mm:
1279         (KJS::Bindings::convertValueToObjcValue):
1280         (KJS::Bindings::convertObjcValueToValue):
1281
1282 2006-12-28  Geoffrey Garen  <ggaren@apple.com>
1283
1284         Reviewed by Brady Eidson.
1285         
1286         Some cleanup in preparation for fixing <rdar://problem/4608404> 
1287         WebScriptObject's _executionContext lack of ownership policy causes 
1288         crashes (e.g., in Dashcode)
1289         
1290         I'm just trying to make heads or tails of this baffling code.
1291         
1292         Renamed "root" | "execContext" | "executionContext" => "rootObject", because
1293         that's the object's (admittedly vague) type name.
1294         
1295         * bindings/runtime.cpp: Removed createLanguageInstanceForValue
1296         because I'll give you a dollar if you can explain to me what it actually did.
1297         
1298         * bindings/runtime_root.cpp: Put everything in the KJS::Bindings namespace,
1299         removing the KJS::Bindings prefix from individual functions and datatypes.
1300         This matches the header and eliminates a lot of syntax cruft.
1301         
1302         * bindings/c/c_utility.cpp:
1303         (KJS::Bindings::convertValueToNPVariant): Replaced use of createLanguageInstanceForValue
1304         with call to _NPN_CreateScriptObject because that's what createLanguageInstanceForValue
1305         actually did (but don't ask me for that dollar now; that's cheating.)
1306
1307         * bindings/objc/objc_utility.h:
1308         * bindings/objc/objc_utility.mm:
1309         (KJS::Bindings::convertValueToObjcValue): Removed. Its only purpose was 
1310         to call a single function for WebKit, which WebKit can do on its own.
1311
1312         * kjs/interpreter.h: Removed rtti() because it was unused, and this class
1313         is scheduled for demolition anyway.
1314         
1315         * kjs/interpreter.cpp: Removed createLanguageInstanceForValue because it had
1316         nothing to do with the Interpreter, and nothing makes Chuck Norris more mad
1317         than a function whose sole purpose is to call another function of the same
1318         name. (Really, I asked him.)
1319
1320 2006-12-26  Geoffrey Garen  <ggaren@apple.com>
1321
1322         Reviewed by Eric Seidel.
1323
1324         Some cleanup in preparation for fixing <rdar://problem/4740328> Safari 
1325         crash on quit in _NPN_ReleaseObject from KJS::Bindings::CInstance::~CInstance
1326
1327         * bindings/c/c_instance.cpp:
1328         * bindings/c/c_instance.h: Removed unused copy constructor and assignment
1329         operator. They made tracking data flow more difficult. Unused code is also 
1330         dangerous because it can succumb to bit rot with the stealth of a Ninja.
1331         
1332         Replaced #include with forward declaration to reduce header dependency.
1333         
1334         * bindings/npruntime.cpp: Sorted #includes.
1335         (_NPN_GetStringIdentifier): Replaced assert with ASSERT.
1336         (_NPN_GetStringIdentifiers): ditto
1337         (_NPN_ReleaseVariantValue): ditto
1338         (_NPN_CreateObject): ditto
1339         (_NPN_RetainObject): ditto
1340         (_NPN_ReleaseObject): ditto
1341         (_NPN_DeallocateObject): ditto
1342
1343 2006-12-20  Anders Carlsson  <acarlsson@apple.com>
1344
1345         * kjs/string_object.cpp:
1346         (localeCompare):
1347         Another speculative Win32 fix.
1348
1349 2006-12-20  Anders Carlsson  <acarlsson@apple.com>
1350
1351         * kjs/string_object.cpp:
1352         (localeCompare):
1353         Speculative Win32 fix.
1354
1355 2006-12-20  Anders Carlsson  <acarlsson@apple.com>
1356
1357         Reviewed by Darin.
1358
1359         <rdar://problem/4235733>
1360         <http://bugs.webkit.org/?show_bug.cgi?id=10193>
1361         support String.localeCompare.
1362         
1363         Implement localeCompare.
1364         
1365         * JavaScriptCore.xcodeproj/project.pbxproj:
1366         * kjs/string_object.cpp:
1367         (localeCompare):
1368         (StringProtoFunc::callAsFunction):
1369         * kjs/string_object.h:
1370         (KJS::StringProtoFunc::):
1371
1372 2006-12-20  Timothy Hatcher  <timothy@apple.com>
1373
1374         Reviewed by Mark Rowe.
1375
1376         * JavaScriptCore.xcodeproj/project.pbxproj: use GCC 4.0 for all the other test targets
1377
1378 2006-12-20  Timothy Hatcher  <timothy@apple.com>
1379
1380         Reviewed by Mark Rowe.
1381
1382         <rdar://problem/4871613> JavaScriptCore-421.31's dftables target needs to override default compiler and use gcc-4.0
1383
1384         * JavaScriptCore.xcodeproj/project.pbxproj:
1385
1386 2006-12-20  Lars Knoll <lars@trolltech.com>
1387
1388         Reviewed by David Hyatt
1389
1390         Added support to bind QObject's to 
1391         JavaScript.
1392
1393         * JavaScriptCore.pro:
1394         * bindings/qt/qt_class.cpp: Added.
1395         (KJS::Bindings::QtClass::QtClass):
1396         (KJS::Bindings::QtClass::~QtClass):
1397         (KJS::Bindings::QtClass::classForObject):
1398         (KJS::Bindings::QtClass::name):
1399         (KJS::Bindings::QtClass::methodsNamed):
1400         (KJS::Bindings::QtClass::fieldNamed):
1401         * bindings/qt/qt_class.h: Added.
1402         (KJS::Bindings::QtClass::constructorAt):
1403         (KJS::Bindings::QtClass::numConstructors):
1404         * bindings/qt/qt_instance.cpp: Added.
1405         (KJS::Bindings::QtInstance::QtInstance):
1406         (KJS::Bindings::QtInstance::~QtInstance):
1407         (KJS::Bindings::QtInstance::operator=):
1408         (KJS::Bindings::QtInstance::getClass):
1409         (KJS::Bindings::QtInstance::begin):
1410         (KJS::Bindings::QtInstance::end):
1411         (KJS::Bindings::QtInstance::implementsCall):
1412         (KJS::Bindings::QtInstance::invokeMethod):
1413         (KJS::Bindings::QtInstance::invokeDefaultMethod):
1414         (KJS::Bindings::QtInstance::defaultValue):
1415         (KJS::Bindings::QtInstance::stringValue):
1416         (KJS::Bindings::QtInstance::numberValue):
1417         (KJS::Bindings::QtInstance::booleanValue):
1418         (KJS::Bindings::QtInstance::valueOf):
1419         * bindings/qt/qt_instance.h: Added.
1420         (KJS::Bindings::QtInstance::getObject):
1421         * bindings/qt/qt_runtime.cpp: Added.
1422         (KJS::Bindings::convertValueToQVariant):
1423         (KJS::Bindings::convertQVariantToValue):
1424         (KJS::Bindings::QtField::name):
1425         (KJS::Bindings::QtField::valueFromInstance):
1426         (KJS::Bindings::QtField::setValueToInstance):
1427         * bindings/qt/qt_runtime.h: Added.
1428         (KJS::Bindings::QtField::QtField):
1429         (KJS::Bindings::QtField::type):
1430         (KJS::Bindings::QtMethod::QtMethod):
1431         (KJS::Bindings::QtMethod::name):
1432         (KJS::Bindings::QtMethod::numParameters):
1433         * bindings/runtime.cpp:
1434         (KJS::Bindings::Instance::createBindingForLanguageInstance):
1435         * bindings/runtime.h:
1436         (KJS::Bindings::Instance::):
1437         * bindings/testbindings.pro: Added.
1438         * bindings/testqtbindings.cpp: Added.
1439         (MyObject::MyObject):
1440         (MyObject::setTestString):
1441         (MyObject::setTestInt):
1442         (MyObject::testString):
1443         (MyObject::testInt):
1444         (MyObject::foo):
1445         (Global::className):
1446         (main):
1447
1448 2006-12-19  Anders Carlsson  <acarlsson@apple.com>
1449
1450         Reviewed by Geoff.
1451
1452         Add -p option to testkjs which pretty prints the files instead of executing them.
1453
1454         * JavaScriptCore.exp:
1455         * JavaScriptCore.xcodeproj/project.pbxproj:
1456         * kjs/Parser.cpp:
1457         (KJS::Parser::prettyPrint):
1458         * kjs/Parser.h:
1459         * kjs/testkjs.cpp:
1460         (doIt):
1461
1462 2006-12-19  Brady Eidson  <beidson@apple.com>
1463
1464         Rubberstamped by Lou
1465         
1466         Removed unneccessary "else"
1467
1468         * wtf/Assertions.cpp:
1469
1470 2006-12-19  Timothy Hatcher  <timothy@apple.com>
1471
1472         Reviewed by Darin.
1473
1474         <rdar://problem/4891774> Local WebCore/WebBrowser builds fail in 9A328 due to warning about ObjC-2.0 language features
1475
1476         * JavaScriptCore.xcodeproj/project.pbxproj:
1477
1478 2006-12-17  Simon Hausmann  <hausmann@kde.org>
1479
1480         Reviewed by Zack.
1481
1482         * kjs/testkjs.pro: Oops, make it also build on machines other than
1483         mine :)
1484
1485 2006-12-17  Simon Hausmann  <hausmann@kde.org>
1486
1487         Reviewed by Rob Buis.
1488
1489         * kjs/testkjs.pro: Added .pro file to build testkjs.
1490
1491 2006-12-16  Alexey Proskuryakov  <ap@webkit.org>
1492
1493         Reviewed by Rob.
1494
1495         A deleted object was accessed to prepare RegExp construction error messages.
1496
1497         * kjs/regexp_object.cpp:
1498         (RegExpObjectImp::construct): Wrap the RegExp into an OwnPtr.
1499
1500 2006-12-16  Mitz Pettel  <mitz@webkit.org>
1501
1502         Reviewed by Alexey.
1503
1504         - fix http://bugs.webkit.org/show_bug.cgi?id=11814
1505           REGRESSION(r18098): Find does not work with capital letters
1506
1507         Test: editing/execCommand/findString-3.html
1508
1509         * wtf/unicode/icu/UnicodeIcu.h:
1510         (WTF::Unicode::foldCase): Changed to not return an error if the result fits
1511         in the buffer without a null terminator.
1512
1513 2006-12-13  Maciej Stachowiak  <mjs@apple.com>
1514
1515         Reviewed by Anders.
1516         
1517         - added equality and inequality operations for HashMap and Vector, useful for comparing more complex types
1518
1519         * wtf/HashMap.h:
1520         (WTF::operator==):
1521         (WTF::operator!=):
1522         * wtf/Vector.h:
1523         (WTF::operator==):
1524         (WTF::operator!=):
1525
1526 2006-12-12  Alexey Proskuryakov  <ap@webkit.org>
1527
1528         Reviewed by Geoff. Based on a patch by Maks Orlovich.
1529
1530         http://bugs.webkit.org/show_bug.cgi?id=6257
1531         Throw errors on invalid expressions (KJS merge)
1532
1533         * kjs/regexp.cpp:
1534         (KJS::RegExp::RegExp):
1535         (KJS::RegExp::~RegExp):
1536         (KJS::RegExp::match):
1537         * kjs/regexp.h:
1538         (KJS::RegExp::flags):
1539         (KJS::RegExp::isValid):
1540         (KJS::RegExp::errorMessage):
1541         (KJS::RegExp::subPatterns):
1542         Remember and report RegExp construction failures. Renamed data members not to start with underscores.
1543
1544         * kjs/regexp_object.cpp:
1545         (RegExpObjectImp::construct): Raise an exception if RegExp construction fails.
1546         (RegExpObjectImp::callAsFunction): Removed an obsolete comment.
1547
1548         * tests/mozilla/ecma_3/RegExp/regress-119909.js: Reduced the number of nested parentheses to 
1549         a value supported by PCRE.
1550
1551 2006-12-11  Alexey Proskuryakov  <ap@webkit.org>
1552
1553         Reviewed by Darin.
1554
1555         http://bugs.webkit.org/show_bug.cgi?id=9673
1556         Add support for window.atob() and window.btoa()
1557
1558         * JavaScriptCore.exp: Export UString::is8Bit().
1559         * JavaScriptCore.xcodeproj/project.pbxproj: Added StringExtras.h as 
1560         a private header.
1561
1562 2006-12-11  Darin Adler  <darin@apple.com>
1563
1564         Reviewed by Brady.
1565
1566         * JavaScriptCore.xcodeproj/project.pbxproj: Let Xcode update this
1567         (I think Hyatt is using an old Xcode).
1568
1569 2006-12-11  David Hyatt  <hyatt@apple.com>
1570
1571         Fix the failing layout test.  Just remove Unicode::isSpace and
1572         revert StringImpl to do the same thing it was doing before.
1573
1574         Reviewed by darin
1575
1576         * wtf/unicode/icu/UnicodeIcu.h:
1577         * wtf/unicode/qt4/UnicodeQt4.h:
1578
1579 2006-12-09  George Staikos  <staikos@kde.org>
1580
1581         Reviewed by Zack.
1582
1583         Fix bison again on qmake build.
1584
1585         * JavaScriptCore.pro:
1586
1587 2006-12-09  Lars Knoll <lars@trolltech.com>
1588
1589         Reviewed by Zack
1590
1591         Make it possible to build WebKit with qmake.
1592
1593         * JavaScriptCore.pro: Added.
1594         * kjs/kjs.pro: Removed.
1595         * pcre/pcre.pri: Added.
1596
1597 2006-12-09  Zack Rusin  <zack@kde.org>
1598
1599         Fixing the compilation with platform kde after the icu changes.
1600
1601         * CMakeLists.txt:
1602
1603 2006-12-09  Adam Roben  <aroben@apple.com>
1604
1605         Reviewed by Darin.
1606
1607         Some updates in reaction to r18098.
1608
1609         * wtf/unicode/icu/UnicodeIcu.h: Use !! to convert UBool to bool in all
1610         cases.
1611         (WTF::Unicode::toLower):
1612         (WTF::Unicode::toUpper):
1613         (WTF::Unicode::isDigit):
1614         (WTF::Unicode::isSpace):
1615         (WTF::Unicode::isPunct):
1616         (WTF::Unicode::isLower):
1617         (WTF::Unicode::isUpper):
1618         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
1619         * JavaScriptCore.vcproj/WTF/WTF.vcproj:
1620
1621 2006-12-09  George Staikos  <staikos@kde.org>
1622
1623         Patch by Lars Knoll, comment out ICU dependency on Qt platform (unused code).
1624
1625         Reviewed by Darin.
1626
1627         * bindings/c/c_utility.cpp:
1628         (KJS::Bindings::convertUTF8ToUTF16):
1629
1630 2006-12-08  David Hyatt  <hyatt@apple.com>
1631
1632         Land the new ICU abstraction layer.  Patch by Lars.
1633
1634         Reviewed by me
1635
1636         * JavaScriptCore.xcodeproj/project.pbxproj:
1637         * wtf/Platform.h:
1638         * wtf/unicode/UnicodeCategory.h: Removed.
1639         * wtf/unicode/UnicodeDecomposition.h: Removed.
1640         * wtf/unicode/UnicodeDirection.h: Removed.
1641         * wtf/unicode/icu/UnicodeIcu.h:
1642         (WTF::Unicode::):
1643         (WTF::Unicode::foldCase):
1644         (WTF::Unicode::toLower):
1645         (WTF::Unicode::toUpper):
1646         (WTF::Unicode::toTitleCase):
1647         (WTF::Unicode::isDigit):
1648         (WTF::Unicode::isSpace):
1649         (WTF::Unicode::isPunct):
1650         (WTF::Unicode::mirroredChar):
1651         (WTF::Unicode::category):
1652         (WTF::Unicode::direction):
1653         (WTF::Unicode::isLower):
1654         (WTF::Unicode::isUpper):
1655         (WTF::Unicode::digitValue):
1656         (WTF::Unicode::combiningClass):
1657         (WTF::Unicode::decompositionType):
1658         (WTF::Unicode::strcasecmp):
1659         (WTF::Unicode::memset):
1660         * wtf/unicode/qt4/UnicodeQt4.cpp: Removed.
1661         * wtf/unicode/qt4/UnicodeQt4.h:
1662         (WTF::Unicode::):
1663         (WTF::Unicode::toLower):
1664         (WTF::Unicode::toUpper):
1665         (WTF::Unicode::toTitleCase):
1666         (WTF::Unicode::foldCase):
1667         (WTF::Unicode::isPrintableChar):
1668         (WTF::Unicode::isLower):
1669         (WTF::Unicode::isUpper):
1670         (WTF::Unicode::digitValue):
1671         (WTF::Unicode::combiningClass):
1672         (WTF::Unicode::decompositionType):
1673         (WTF::Unicode::strcasecmp):
1674         (WTF::Unicode::memset):
1675         (WTF::Unicode::direction):
1676         (WTF::Unicode::category):
1677
1678 === Safari-521.32 ===
1679
1680 2006-12-08  Adam Roben  <aroben@apple.com>
1681
1682         Reviewed by Anders.
1683
1684         This is a mo' better fix for ensuring we don't use macro definitions
1685         of min/max.
1686
1687         * kjs/config.h:
1688         * wtf/Vector.h:
1689
1690 2006-12-07  Kevin Fyure  <digdog@macports.org>
1691
1692         Reviewed by Darin.
1693
1694         http://bugs.webkit.org/show_bug.cgi?id=11545
1695         Disable the testcases do not follow the ECMA-262v3 specification.
1696         
1697         * tests/mozilla/expected.html: Update Results.
1698         * tests/mozilla/js1_2/String/concat.js:
1699         4 tests disabled. The result of concat Array object is not followinig
1700         ECMA 15.5.4.6
1701         * tests/mozilla/js1_2/function/Number.js:
1702         1 test disabled. The result of Array object to Number object conversion 
1703         is not following ECMA 9.3. And the test was duplicated in 
1704         ecma/TypeConversion/9.3-1.js
1705         * tests/mozilla/js1_2/function/String.js:
1706         2 tests disabled. The result of Object/Array object to String object 
1707         conversion is not following ECMA 15.5.1.1 and ECMA 9.8
1708
1709 2006-11-30  Steve Falkenburg  <sfalken@apple.com>
1710
1711         Reviewed by Oliver.
1712         
1713         Move WTF from JavaScriptCore project into a new WTF project.
1714
1715         * JavaScriptCore.vcproj/JavaScriptCore.sln: Add WTF.vcproj to sln
1716         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj: Remove WTF source files
1717         * JavaScriptCore.vcproj/WTF/WTF.vcproj: Added.
1718         * JavaScriptCore.vcproj/testkjs/testkjs.vcproj: Add dependency on WTF.lib
1719
1720 2006-11-30  Geoffrey Garen  <ggaren@apple.com>
1721
1722         Reviewed by Beth Dakin.
1723         
1724         Fixed up garbage collection at window close time.
1725
1726         * kjs/interpreter.cpp:
1727         (KJS::Interpreter::~Interpreter): Garbage collect here, since
1728         destroying the interpreter frees the global object and 
1729         therefore creates a lot of garbage.
1730
1731 2006-11-20  W. Andy Carrel  <wac@google.com>
1732
1733         Reviewed by Maciej.
1734
1735         http://bugs.webkit.org/show_bug.cgi?id=11501
1736         REGRESSION: \u no longer escapes metacharacters in RegExps
1737         http://bugs.webkit.org/show_bug.cgi?id=11502
1738         Serializing RegExps doesn't preserve Unicode escapes
1739
1740         * kjs/lexer.cpp:
1741         (Lexer::Lexer):
1742         (Lexer::setCode):
1743         (Lexer::shift):
1744         (Lexer::scanRegExp):
1745         Push \u parsing back down into the RegExp object rather than in the
1746         parser. This backs out r17354 in favor of a new fix that better 
1747         matches the behavior of other browsers.
1748
1749         * kjs/lexer.h:
1750         * kjs/regexp.cpp:
1751         (KJS::RegExp::RegExp):
1752         (KJS::sanitizePattern):
1753         (KJS::isHexDigit):
1754         (KJS::convertHex):
1755         (KJS::convertUnicode):
1756         * kjs/regexp.h:
1757         Translate \u escaped unicode characters for the benefit of pcre.
1758
1759         * kjs/ustring.cpp:
1760         (KJS::UString::append):
1761         Fix failure to increment length on the first UChar appended to a 
1762         UString that was copy-on-write.
1763
1764         * tests/mozilla/ecma_2/RegExp/properties-001.js:
1765         Adjust tests back to the uniform standards.
1766
1767 2006-11-20  Samuel Weinig  <sam@webkit.org>
1768
1769         Reviewed by Maciej.
1770
1771         Fix for http://bugs.webkit.org/show_bug.cgi?id=11647
1772         Fix Win32 build
1773
1774         * kjs/config.h: define NOMINMAX instead of min/max
1775         as themselves.
1776         * wtf/Vector.h: put back hack to ensure that min/max
1777         are not defined as macros.
1778
1779 2006-11-19  Simon Hausmann  <hausmann@kde.org>
1780
1781         Reviewed by Zack.
1782
1783         http://bugs.webkit.org/show_bug.cgi?id=11649
1784         Fix CMake Qt-only build without KDE CMake files
1785
1786         * CMakeLists.txt:
1787         * pcre/CMakeLists.txt:
1788
1789 2006-11-17  Anders Carlsson  <acarlsson@apple.com>
1790
1791         Reviewed by Adam.
1792
1793         Make sure that we always use std::min and std::max instead of macros.
1794         
1795         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
1796         * kjs/config.h:
1797         * wtf/Vector.h:
1798
1799 === Safari-521.31 ===
1800
1801 2006-11-12  Geoffrey Garen  <ggaren@apple.com>
1802
1803         Reviewed by Beth Dakin.
1804         
1805         Added project-wide setting to disable Microsoft's made-up deprecation 
1806         warnings related to std:: functions. (Doesn't have any affect yet,
1807         since we currently disable all deprecation warnings.)
1808
1809         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
1810
1811 2006-11-12  Mark Rowe  <bdash@webkit.org>
1812
1813         Reviewed by Mitz.
1814
1815         Clean up of JavaScriptCore bakefiles.
1816
1817         * JavaScriptCoreSources.bkl:
1818         * jscore.bkl:
1819
1820 2006-11-11  Alexey Proskuryakov  <ap@webkit.org>
1821
1822         Reviewed by Maciej.
1823
1824         http://bugs.webkit.org/show_bug.cgi?id=11508
1825         Undisable some warnings for JSImmediate.h
1826
1827         Fix suggested by Don Gibson.
1828
1829         * kjs/JSImmediate.h:
1830         Re-enable all MSVC warnings, move the remaining runtime checks
1831         to compile-time.
1832
1833 2006-11-10  Zalan Bujtas  <zalan.bujtas@nokia.com>
1834
1835         Reviewed by Maciej.
1836
1837         Added s60/symbian platform defines.
1838         http://bugs.webkit.org/show_bug.cgi?id=11540
1839
1840         * wtf/Platform.h:
1841
1842 === Safari-521.30 ===
1843
1844 2006-11-08  Ada Chan  <adachan@apple.com>
1845
1846         Reviewed by darin.
1847         
1848         Added a method to delete all the keys in a HashMap.
1849
1850         * wtf/HashMap.h:
1851         (WTF::deleteAllPairFirsts):
1852         (WTF::deleteAllKeys):
1853
1854 2006-11-07  Anders Carlsson  <acarlsson@apple.com>
1855
1856         Reviewed by Geoff.
1857
1858         * API/JSClassRef.cpp:
1859         (OpaqueJSClass::OpaqueJSClass):
1860         Initialize cachedPrototype to 0.
1861
1862 2006-11-06  Krzysztof Kowalczyk  <kkowalczyk@gmail.com>
1863
1864         Reviewed by Maciej.
1865
1866         Remove warning about garbage after #else. #else clause applies for all
1867         non-mac platforms, not only win.
1868
1869         * kjs/date_object.cpp:
1870
1871 2006-11-06  Mark Rowe  <bdash@webkit.org>
1872
1873         Reviewed by the wonderful Mitz Pettel.
1874
1875         http://bugs.webkit.org/show_bug.cgi?id=11524
1876         Bug 11524: REGRESSION(r9842): Array.prototype.join should use ToString operator rather than calling toString on each element
1877
1878         * kjs/array_object.cpp:
1879         (ArrayProtoFunc::callAsFunction): Use ToString operator on each element rather than calling their toString method.
1880
1881 2006-11-03  Steve Falkenburg  <sfalken@apple.com>
1882
1883         Fix build
1884
1885         * kjs/JSImmediate.h:
1886
1887 2006-11-03  Alexey Proskuryakov  <ap@nypop.com>
1888
1889         Reviewed by Darin.
1890
1891         http://bugs.webkit.org/show_bug.cgi?id=11504
1892         Fix warnings on non 32 bit platforms
1893
1894         * kjs/JSImmediate.h:
1895         (KJS::JSImmediate::NanAsBits):
1896         (KJS::JSImmediate::oneAsBits):
1897         Rewrite in a way that moves runtime checks to compile-time.
1898
1899         (KJS::):
1900         (KJS::JSImmediate::fromDouble):
1901         (KJS::JSImmediate::toDouble):
1902
1903 2006-11-02  George Staikos <staikos@kde.org>
1904
1905         Reviewed by Maciej.
1906
1907         * collector.cpp:
1908         Remove a deprecated pthreads call.
1909
1910 2006-11-02  Anders Carlsson  <acarlsson@apple.com>
1911
1912         Reviewed by Maciej, landed by Anders.
1913
1914         * CMakeLists.txt:
1915         Make KDE support optional.
1916
1917 2006-11-01  Kevin McCullough  <KMcCullough@apple.com>
1918
1919         Reviewed by Brady.
1920
1921         - Fixes many JavaScriptCore tests in other timezones.  The root problem is that on mac localtime() returns historically accurate information for DST, but the JavaScript spec explicitly states to not take into account historical information but rather to interpolate from valid years.
1922
1923         * kjs/DateMath.cpp:
1924         (KJS::equivalentYearForDST):
1925         (KJS::getDSTOffsetSimple):
1926         (KJS::getDSTOffset):
1927
1928 2006-10-31  Geoffrey Garen  <ggaren@apple.com>
1929
1930         Reviewed by Beth.
1931         
1932         Fixed http://bugs.webkit.org/show_bug.cgi?id=11477
1933         REGRESSION: GMail crashes in KJS::FunctionImp::callerGetter
1934
1935         * kjs/function.cpp:
1936         (KJS::FunctionImp::argumentsGetter): Removed unnecessary braces.
1937         (KJS::FunctionImp::callerGetter): More logical NULL checking.
1938
1939 2006-10-31  Oliver Hunt  <oliver@apple.com>
1940
1941         Reviewed by Geoff.
1942
1943         Adding definition for PLATFORM(CI)
1944
1945         * wtf/Platform.h:
1946
1947 2006-10-31  Vladimir Olexa  <vladimir.olexa@gmail.com>
1948
1949         Reviewed by Geoff.
1950
1951         http://bugs.webkit.org/show_bug.cgi?id=4166
1952         Function object does not support caller property
1953
1954         Test: fast/js/caller-property.html
1955
1956         * kjs/function.cpp: 
1957         (KJS::FunctionImp::callerGetter): added
1958         (KJS::FunctionImp::getOwnPropertySlot): added if statement to handle callerGetter()
1959         * kjs/function.h: added callerGetter() declaration
1960         * kjs/identifier.h: added caller property macro
1961         * tests/mozilla/expected.html: 
1962
1963 2006-10-30  Kevin McCullough  <KMcCullough@apple.com>
1964
1965         Reviewed by Adam.
1966
1967         - Fix some timezone issues and JavaScriptCore date tests.  Addresses bugzilla 4930.
1968
1969         * kjs/DateMath.h:
1970         (KJS::GregorianDateTime::GregorianDateTime): Here's the fix, to add parenthesis for order of precedence.
1971         * kjs/date_object.cpp:
1972         (KJS::DateProtoFunc::callAsFunction): 
1973         (KJS::DateObjectImp::construct): memset not needed as GregorianDateTime initializes itself.
1974
1975 2006-10-30  Darin Adler  <darin@apple.com>
1976
1977         Reviewed by John Sullivan.
1978
1979         * kjs/SavedBuiltins.h: Added needed include.
1980         * wtf/OwnPtr.h: (WTF::OwnPtr::set): Fixed mistake in assertion.
1981
1982 2006-10-28  Darin Adler  <darin@apple.com>
1983
1984         Reviewed by Maciej.
1985
1986         - renamed PassRefPtr::release to releaseRef to make it clearer that
1987           it's the counterpart of adoptRef, and to make it harder to confuse
1988           it with the safer-to-use RefPtr::release
1989
1990         * kjs/identifier.cpp:
1991         (KJS::CStringTranslator::translate):
1992         (KJS::UCharBufferTranslator::translate):
1993         * kjs/ustring.cpp:
1994         (KJS::UString::Rep::create):
1995         * wtf/PassRefPtr.h:
1996         (WTF::PassRefPtr::PassRefPtr):
1997         (WTF::PassRefPtr::~PassRefPtr):
1998         (WTF::PassRefPtr::get):
1999         (WTF::PassRefPtr::releaseRef):
2000         (WTF::PassRefPtr::operator->):
2001         (WTF::PassRefPtr::operator=):
2002         (WTF::adoptRef):
2003         (WTF::static_pointer_cast):
2004         (WTF::const_pointer_cast):
2005         * wtf/RefPtr.h:
2006         (WTF::RefPtr::RefPtr):
2007         (WTF::RefPtr::operator=):
2008
2009 2006-10-28  Darin Adler  <darin@apple.com>
2010
2011         Reviewed by Steve.
2012
2013         * kjs/grammar.y: Add definitions of YYMALLOC and YYFREE to fix
2014         a warning some people see (not sure why others don't see it).
2015
2016         * JavaScriptCore.vcproj/JavaScriptCore/grammarWrapper.cpp: Touch
2017         this file to force it to re-build grammar.cpp.
2018
2019 2006-10-28  Darin Adler  <darin@apple.com>
2020
2021         Reviewed by Geoff.
2022
2023         - made changes so the code compiles with the highest warning level
2024           under MSVC (disabling some warnings, making some code fixes)
2025
2026         * API/JSCallbackConstructor.cpp:
2027         (KJS::JSCallbackConstructor::construct):
2028         * API/JSCallbackFunction.cpp:
2029         (KJS::JSCallbackFunction::callAsFunction):
2030         * API/JSCallbackObject.cpp:
2031         (KJS::JSCallbackObject::init):
2032         (KJS::JSCallbackObject::construct):
2033         (KJS::JSCallbackObject::callAsFunction):
2034         * API/JSObjectRef.cpp:
2035         (JSPropertyNameArrayGetNameAtIndex):
2036         * API/JSStringRef.cpp:
2037         (JSStringCreateWithCharacters):
2038         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
2039         * bindings/c/c_utility.cpp:
2040         (KJS::Bindings::convertUTF8ToUTF16):
2041         (KJS::Bindings::coerceValueToNPVariantStringType):
2042         (KJS::Bindings::convertValueToNPVariant):
2043         * kjs/DateMath.h:
2044         (KJS::GregorianDateTime::GregorianDateTime):
2045         * kjs/ExecState.h:
2046         (KJS::ExecState::hadException):
2047         * kjs/JSImmediate.h:
2048         (KJS::JSImmediate::fromDouble):
2049         (KJS::JSImmediate::toDouble):
2050         (KJS::JSImmediate::NanAsBits):
2051         (KJS::JSImmediate::oneAsBits):
2052         * kjs/Parser.h:
2053         * kjs/PropertyNameArray.h:
2054         (KJS::PropertyNameArray::size):
2055         * kjs/array_object.cpp:
2056         (ArrayObjectImp::callAsFunction):
2057         * kjs/bool_object.cpp:
2058         (BooleanObjectImp::callAsFunction):
2059         * kjs/collector.cpp:
2060         (KJS::Collector::allocate):
2061         (KJS::Collector::markCurrentThreadConservatively):
2062         (KJS::Collector::collect):
2063         * kjs/completion.h:
2064         (KJS::Completion::isValueCompletion):
2065         * kjs/date_object.cpp:
2066         (KJS::findMonth):
2067         * kjs/debugger.cpp:
2068         (Debugger::sourceParsed):
2069         (Debugger::sourceUnused):
2070         (Debugger::exception):
2071         (Debugger::atStatement):
2072         (Debugger::callEvent):
2073         (Debugger::returnEvent):
2074         * kjs/dtoa.cpp:
2075         * kjs/error_object.cpp:
2076         (ErrorObjectImp::callAsFunction):
2077         (NativeErrorImp::callAsFunction):
2078         * kjs/function.cpp:
2079         (KJS::FunctionImp::processVarDecls):
2080         (KJS::GlobalFuncImp::callAsFunction):
2081         * kjs/function_object.cpp:
2082         (FunctionPrototype::callAsFunction):
2083         * kjs/grammar.y:
2084         * kjs/identifier.cpp:
2085         (KJS::CStringTranslator::translate):
2086         (KJS::Identifier::add):
2087         * kjs/internal.h:
2088         * kjs/lexer.cpp:
2089         (Lexer::lex):
2090         (Lexer::isIdentStart):
2091         (Lexer::isIdentPart):
2092         (isDecimalDigit):
2093         (Lexer::isHexDigit):
2094         (Lexer::isOctalDigit):
2095         (Lexer::matchPunctuator):
2096         (Lexer::singleEscape):
2097         (Lexer::convertOctal):
2098         (Lexer::convertHex):
2099         (Lexer::convertUnicode):
2100         (Lexer::record8):
2101         * kjs/lexer.h:
2102         * kjs/math_object.cpp:
2103         (MathFuncImp::callAsFunction):
2104         * kjs/number_object.cpp:
2105         (integer_part_noexp):
2106         (intPow10):
2107         (NumberProtoFunc::callAsFunction):
2108         (NumberObjectImp::callAsFunction):
2109         * kjs/object.cpp:
2110         (KJS::JSObject::deleteProperty):
2111         (KJS::JSObject::callAsFunction):
2112         (KJS::JSObject::toBoolean):
2113         (KJS::JSObject::toObject):
2114         * kjs/object.h:
2115         (KJS::JSObject::getPropertySlot):
2116         * kjs/property_map.cpp:
2117         (KJS::isValid):
2118         (KJS::PropertyMap::put):
2119         (KJS::PropertyMap::insert):
2120         (KJS::PropertyMap::containsGettersOrSetters):
2121         * kjs/property_map.h:
2122         (KJS::PropertyMap::hasGetterSetterProperties):
2123         * kjs/property_slot.h:
2124         * kjs/string_object.cpp:
2125         (StringInstance::getPropertyNames):
2126         (StringObjectImp::callAsFunction):
2127         (StringObjectFuncImp::callAsFunction):
2128         * kjs/ustring.cpp:
2129         (KJS::UString::Rep::computeHash):
2130         (KJS::UString::UString):
2131         (KJS::UString::from):
2132         (KJS::UString::append):
2133         (KJS::UString::ascii):
2134         (KJS::UString::operator=):
2135         (KJS::UString::find):
2136         (KJS::UString::rfind):
2137         * kjs/ustring.h:
2138         (KJS::UChar::high):
2139         (KJS::UChar::low):
2140         (KJS::UCharReference::low):
2141         (KJS::UCharReference::high):
2142         * kjs/value.cpp:
2143         (KJS::JSValue::toUInt16):
2144         * kjs/value.h:
2145         * pcre/pcre_compile.c:
2146         (get_othercase_range):
2147         * pcre/pcre_exec.c:
2148         (match):
2149         * pcre/pcre_internal.h:
2150         * wtf/HashFunctions.h:
2151         (WTF::intHash):
2152         (WTF::PtrHash::hash):
2153         * wtf/MathExtras.h:
2154         (isnan):
2155         (lround):
2156         (lroundf):
2157         * wtf/StringExtras.h:
2158         (strncasecmp):
2159         * wtf/unicode/icu/UnicodeIcu.h:
2160         (WTF::Unicode::isPrintableChar):
2161
2162 2006-10-26  W. Andy Carrel  <wac@google.com>
2163
2164         Reviewed by Maciej.
2165
2166         - Fix http://bugs.webkit.org/show_bug.cgi?id=7445 /
2167           <rdar://problem/4614195> (and 7253 / <rdar://4694011>) by changing
2168           inline regexps so that they can have \u escaped Unicode sequences and
2169           still work properly.
2170
2171         * kjs/lexer.cpp:
2172         (Lexer::Lexer): 
2173         (Lexer::setCode):
2174         (Lexer::shift): Looking ahead one additional character for the benefit
2175         of scanRegExp
2176         (Lexer::scanRegExp): Change code to support unicode escapes in inline 
2177         regexps.
2178         * kjs/lexer.h: Extra lookahead added.
2179
2180 === Safari-521.29 ===
2181
2182 2006-10-26  Nikolas Zimmermann  <zimmermann@kde.org>
2183
2184         Reviewed by Darin.
2185
2186         Fix build with older gcc 3.3.4.
2187
2188         * kjs/DateMath.cpp: Remove inline prefix.
2189         (KJS::equivalentYearForDST):
2190
2191 2006-10-26  Darin Adler  <darin@apple.com>
2192
2193         Reviewed by John.
2194
2195         - fix iteration of properties of string objects (found because of a warning
2196           emitted by the MSVC compiler)
2197
2198         * kjs/string_object.cpp: (StringInstance::getPropertyNames): Change code that
2199         wants to format a number as a string to use UString::from. Before it was using
2200         the UString constructor that makes a string from a character!
2201
2202         * kjs/ustring.h:
2203         * kjs/ustring.cpp: Remove the dangerous and not all that helpful UString(char)
2204         constructor.
2205
2206         * kjs/grammar.y: Change code to not depend on the UString(char) constructor.
2207         This is potentially more efficient anyway because we could overload the + operator
2208         some day to handle char* directly instead of creating a UString.
2209
2210         * kjs/nodes2string.cpp: (SourceStream::operator<<): Change code to not depend on
2211         the UString(char) constructor.
2212
2213 2006-10-25  Kevin McCullough  <KMcCullough@apple.com>
2214
2215         Reviewed by Steve (rubber stamp).
2216
2217         - Link against your local build of JavaScriptCore.lib first, this fixes some errors on release builds of testkjs.
2218
2219         * JavaScriptCore.vcproj/testkjs/testkjs.vcproj:
2220
2221 2006-10-25  Geoffrey Garen  <ggaren@apple.com>
2222
2223         Reviewed by Lou.
2224         
2225         Removed duplicate symbol declaration.
2226
2227         * JavaScriptCore.xcodeproj/project.pbxproj:
2228         * kjs/grammar.y:
2229
2230 2006-10-24  Steve Falkenburg  <sfalken@apple.com>
2231
2232         Build config change
2233
2234         * JavaScriptCore.vcproj/testkjs/testkjs.vcproj:
2235
2236 2006-10-24  Kevin McCullough  <KMcCullough@apple.com>
2237
2238         Reviewed by Brady.
2239
2240         - Fixes a date formatting issue on win.  Specifically strftime cannot handle some ranges of time so we shift time call strftime and then manipulate the returned string, if needed.
2241
2242         * kjs/date_object.cpp:
2243         (KJS::):
2244         (KJS::formatLocaleDate):
2245         (KJS::DateProtoFunc::callAsFunction):
2246
2247 2006-10-23  Kevin McCullough  <KMcCullough@apple.com>
2248
2249         Reviewed by 
2250
2251        - Build fix
2252
2253         * JavaScriptCore.xcodeproj/project.pbxproj:
2254         * kjs/grammar.y:
2255
2256 2006-10-23  Kevin McCullough  <KMcCullough@apple.com>
2257
2258         Reviewed by Maciej.
2259
2260         - Makes the toTM function an operator.  Was going to piggy back on a patch but the patch needs more work.
2261
2262         * kjs/DateMath.cpp:
2263         (KJS::equivalentYearForDST):
2264         * kjs/DateMath.h:
2265         (KJS::GregorianDateTime::operator tm):
2266         * kjs/date_object.cpp:
2267         (KJS::formatTime):
2268         (KJS::DateProtoFunc::callAsFunction):
2269
2270 2006-10-23  Kevin McCullough  <KMcCullough@apple.com>
2271
2272         Reviewed by Maciej.
2273
2274        - Fixes two regressions on win.  Both are stack overflows. For one the number of recursions is capped at 100, and for the other, nested parenthesis pairs are not evaluated (since they would evaluate to whatever is in them anyway).
2275
2276         * kjs/grammar.y:
2277         * kjs/object.cpp:
2278
2279 2006-10-21  Steve Falkenburg  <sfalken@apple.com>
2280
2281         Reviewed by Adam.
2282         
2283         Add minimal compatibility with MSVCRT leak checker
2284
2285         * wtf/FastMalloc.h:
2286
2287 2006-10-23  Kevin McCullough  <KMcCullough@apple.com>
2288
2289         Reviewed by Geof.
2290
2291         - Sets the lowercase range correctly in the test and consolidates a variable to make the test more readable.
2292
2293        * tests/mozilla/ecma/String/15.5.4.11-2.js:
2294
2295 2006-10-21  Darin Adler  <darin@apple.com>
2296
2297         Reviewed by Anders.
2298
2299         - http://bugs.webkit.org/show_bug.cgi?id=11377
2300           swap(Vector, Vector) should be O(1) instead of O(n)
2301
2302         * wtf/Vector.h:
2303         (WTF::VectorBuffer::swap): Added.
2304         (WTF::Vector::swap): Added.
2305         (WTF::swap): Added overload that takes two Vector objects.
2306
2307 2006-10-21  Darin Adler  <darin@apple.com>
2308
2309         Reviewed by Adam.
2310
2311         - http://bugs.webkit.org/show_bug.cgi?id=11376
2312           build scripts should invoke make with "-j" option for multiple processors
2313
2314         * JavaScriptCore.xcodeproj/project.pbxproj: Pass -j `sysctl -n hw.ncpu` to make.
2315
2316 2006-10-19  Kevin McCullough  <KMcCullough@apple.com>
2317
2318         Reviewed by Geof.
2319
2320         Changed test to make us pass Georgian case changing for Unicode 4.0 and 5.0.  This incorporates changes from the 1.4 revision of the same mozilla test.
2321         On Tiger we are still using Unicode 4.0 but on win and Leopard we are using Unicode 5.0, so this test currently allows for either answer.
2322
2323         * tests/mozilla/ecma/String/15.5.4.11-2.js:
2324
2325 2006-10-18  Maciej Stachowiak  <mjs@apple.com>
2326
2327         Reviewed by Geoff.
2328         
2329         - remove vestiges of KXMLCore name (former name of WTF).
2330
2331         * wtf/Assertions.h:
2332         * wtf/FastMalloc.h:
2333         (operator new):
2334         (operator delete):
2335         (operator new[]):
2336         (operator delete[]):
2337         * wtf/FastMallocInternal.h:
2338         * wtf/Forward.h:
2339         * wtf/GetPtr.h:
2340         * wtf/HashCountedSet.h:
2341         * wtf/HashFunctions.h:
2342         * wtf/HashMap.h:
2343         * wtf/HashSet.h:
2344         * wtf/HashTable.h:
2345         * wtf/HashTraits.h:
2346         * wtf/ListRefPtr.h:
2347         * wtf/MathExtras.h:
2348         * wtf/Noncopyable.h:
2349         * wtf/OwnArrayPtr.h:
2350         * wtf/OwnPtr.h:
2351         * wtf/PassRefPtr.h:
2352         * wtf/Platform.h:
2353         * wtf/RefPtr.h:
2354         * wtf/StringExtras.h:
2355         (snprintf):
2356         * wtf/UnusedParam.h:
2357         * wtf/Vector.h:
2358         * wtf/VectorTraits.h:
2359
2360 2006-10-17  Steve Falkenburg  <sfalken@apple.com>
2361
2362         Reviewed by Maciej.
2363         
2364         Adjust include paths
2365
2366         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
2367
2368 2006-10-17  Kevin McCullough  <KMcCullough@apple.com>
2369
2370         Reviewed by Darin.
2371
2372         Fixed a date issue where the UTC offset was not set in win.
2373
2374         * kjs/DateMath.cpp:
2375         (KJS::getDSTOffsetSimple):
2376         (KJS::getDSTOffset):
2377         (KJS::msToGregorianDateTime):
2378         * kjs/DateMath.h:
2379         (KJS::):
2380         (KJS::GregorianDateTime::GregorianDateTime):
2381
2382 2006-10-17  Kevin McCullough  <KMcCullough@apple.com>
2383
2384         Reviewed by Brady.
2385
2386         Fixes a JavaScriptCore math issue on win.
2387
2388         * kjs/math_object.cpp:
2389         (MathFuncImp::callAsFunction):
2390         * wtf/MathExtras.h:
2391         (wtf_atan2):
2392
2393 2006-10-16  Kevin McCullough  <kmccullough@apple.com>
2394
2395         Reviewed by Geof.
2396
2397         Removed unecessary global specifiers.
2398
2399         * kjs/math_object.cpp:
2400         (MathFuncImp::callAsFunction):
2401
2402 2006-10-16  Kevin McCullough  <KMcCullough@apple.com>
2403
2404         Reviewed by John.
2405
2406         Fixes a compile order issue for testkjs on win.
2407
2408         * JavaScriptCore.vcproj/testkjs/testkjs.vcproj:
2409
2410 2006-10-15  Krzysztof Kowalczyk  <kkowalczyk@gmail.com>
2411
2412         Reviewed by Anders.
2413
2414         Remove junk (as gcc calls it) after #else clause.
2415
2416         * wtf/FastMalloc.cpp:
2417         (WTF::do_free):
2418
2419 2006-10-14  Krzysztof Kowalczyk  <kkowalczyk@gmail.com>
2420
2421         Reviewed by Maciej.
2422
2423         Define KXMLCORE_USE_CURL for platforms that wish to use CURL as
2424         networking, and set it for GDK build
2425
2426         * wtf/Platform.h:
2427
2428 2006-10-13  Marvin Decker  <marv.decker@gmail.com>
2429
2430         Reviewed by Kevin McCullough.
2431
2432         Fixes http://bugs.webkit.org/show_bug.cgi?id=11283
2433         Fixes Qt/Linux and Windows build
2434
2435         * kjs/DateMath.cpp:
2436         * kjs/DateMath.h:
2437         * kjs/date_object.cpp:
2438         (KJS::DateProtoFunc::callAsFunction):
2439
2440 2006-10-13  Kevin McCullough  <KMcCullough@apple.com>
2441
2442         Reviewed by Adam, Geoff, Darin.
2443
2444        Fixed displaying the UTC offset and time zone string, as well as renamed the GregorianDateTime structure and clean up. 
2445
2446         * ChangeLog:
2447         * kjs/DateMath.cpp:
2448         (KJS::getUTCOffset):
2449         (KJS::getDSTOffsetSimple):
2450         (KJS::gregorianDateTimeToMS):
2451         (KJS::msToGregorianDateTime):
2452         * kjs/DateMath.h:
2453         (KJS::GregorianDateTime::GregorianDateTime):
2454         (KJS::GregorianDateTime::~GregorianDateTime):
2455         (KJS::GregorianDateTime::toTM):
2456         * kjs/date_object.cpp:
2457         (KJS::gmtoffset):
2458         (KJS::formatDate):
2459         (KJS::formatDateUTCVariant):
2460         (KJS::formatTime):
2461         (KJS::fillStructuresUsingTimeArgs):
2462         (KJS::fillStructuresUsingDateArgs):
2463         (KJS::DateInstance::getTime):
2464         (KJS::DateInstance::getUTCTime):
2465         (KJS::DateProtoFunc::callAsFunction):
2466         (KJS::DateObjectImp::construct):
2467         (KJS::DateObjectImp::callAsFunction):
2468         (KJS::DateObjectFuncImp::callAsFunction):
2469         (KJS::parseDate):
2470         * kjs/date_object.h:
2471
2472 2006-10-13  Kevin McCullough  <KMcCullough@apple.com>
2473
2474         Reviewed by Adam.
2475
2476         Gets JavaScripCore tests running on windows.
2477
2478         * Scripts/run-javascriptcore-tests:
2479         * Scripts/webkitdirs.pm:
2480
2481 2006-10-12  Geoffrey Garen  <ggaren@apple.com>
2482
2483         Reviewed by Maciej.
2484         
2485         Removed JSObjectMakeWithPrototype, clarified some comments. We really
2486         don't want people to manage their own prototypes, so we don't want an
2487         extra function in the API devoted to just that. People can still manage
2488         their own prototypes if they really want by using JSObjectSetPrototype.
2489
2490         * API/JSClassRef.cpp:
2491         (OpaqueJSClass::createNoAutomaticPrototype):
2492         (OpaqueJSClass::create):
2493         * API/JSClassRef.h:
2494         * API/JSObjectRef.cpp:
2495         (JSClassCreate):
2496         (JSObjectMake):
2497         * API/JSObjectRef.h:
2498         * API/testapi.c:
2499         (main):
2500         * JavaScriptCore.exp:
2501
2502 2006-10-12  Kevin McCullough  <KMcCullough@apple.com>
2503
2504         Reviewed by Adam.
2505
2506         Build breakage fix
2507
2508         * kjs/DateMath.cpp:
2509         (KJS::msToTM):
2510         * kjs/date_object.cpp:
2511         (KJS::gmtoffset):
2512
2513 2006-10-11  Kevin McCullough  <KMcCullough@apple.com>
2514
2515         Reviewed by Geoff.
2516
2517         Added our own tm struct to have a consistent set of fields, which lets us display the DST offset and timezone strings correctly.  Also there is some code cleanup.
2518
2519         * kjs/DateMath.cpp:
2520         (KJS::timeToMS):
2521         (KJS::getUTCOffset):
2522         (KJS::getDSTOffsetSimple):
2523         (KJS::dateToMS):
2524         (KJS::msToTM):
2525         (KJS::tmToKJStm):
2526         (KJS::KJStmToTm):
2527         * kjs/DateMath.h:
2528         * kjs/date_object.cpp: 
2529         (KJS::gmtoffset): 
2530         (KJS::formatTime): 
2531         (KJS::DateProtoFunc::callAsFunction): 
2532         (KJS::DateObjectImp::construct):
2533         (KJS::DateObjectImp::callAsFunction):
2534         (KJS::DateObjectFuncImp::callAsFunction):
2535         (KJS::parseDate):
2536         * kjs/date_object.h:
2537
2538 2006-10-09  Krzysztof Kowalczyk  <kkowalczyk@gmail.com>
2539
2540         Reviewed by Geoff.
2541
2542         Improve gdk build compiler flags (show warning, no rtti and exceptions).
2543
2544         * jscore.bkl:
2545
2546 2006-10-06  Kevin McCullough  <KMcCullough@apple.com>
2547
2548         Reviewed by Brady.
2549
2550         DST and TimeZones were wrong in some cases, specifically on some of the dates where DST changes.
2551
2552         * kjs/DateMath.cpp:
2553         (KJS::equivalentYearForDST):
2554         (KJS::getUTCOffset):
2555         (KJS::getDSTOffsetSimple):
2556         (KJS::getDSTOffset):
2557         (KJS::dateToMseconds):
2558         (KJS::msToTM):
2559         * kjs/DateMath.h:
2560         * kjs/date_object.cpp:
2561         (KJS::gmtoffset):
2562
2563 2006-10-05  Darin Adler  <darin@apple.com>
2564
2565         Reviewed by Kevin McCullough.
2566
2567         * wtf/Assertions.cpp: Fix build when _DEBUG is not defined.
2568
2569 2006-10-04  Kevin McCullough  <KMcCullough@apple.com>
2570
2571         Reviewed by Adam.
2572
2573         - Removed an unnecessary assert that was stopping many pages.  tm_gmtoff was not set for UTC time in mozilla but is always set for us.
2574
2575         * kjs/DateMath.cpp:
2576         (KJS::getUTCOffset):
2577         (KJS::msToTM):
2578         * kjs/date_object.cpp:
2579         (KJS::gmtoffset):
2580         (KJS::formatTime):
2581
2582 2006-10-04  Geoffrey Garen  <ggaren@apple.com>
2583
2584         Patch by Darin and me, reviewed by Maciej.
2585
2586         Fixed <rdar://problem/4518397> REGRESSION(?): Oft-seen but unrepro crash 
2587               in JavaScript garbage collection (KJS::Collector::collect())
2588                <rdar://problem/4752492> Crash in KJS::collect
2589               
2590         The issue here was allocating one garbage-collected object in the midst 
2591         of allocating a second garbage-collected object. In such a case, the
2592         zeroIfFree word lies.
2593
2594         * kjs/collector.cpp:
2595         (KJS::Collector::allocate):
2596         (KJS::Collector::collect):
2597
2598 2006-10-04  Kevin McCullough  <KMcCullough@apple.com>
2599
2600         Reviewed by Adam.
2601
2602         - Layout test fix
2603
2604         * kjs/DateMath.cpp:
2605         (KJS::dateToDayInYear): accept and correctly handle negative months
2606
2607 2006-10-05  Kevin McCullough  <KMcCullough@apple.com>
2608
2609        build fix
2610
2611         * kjs/DateMath.cpp:
2612         (KJS::dateToDayInYear):
2613
2614 2006-10-05  Mark Rowe  <bdash@webkit.org>
2615
2616         Reviewed by maculloch.
2617
2618         Gdk build fix.
2619
2620         * JavaScriptCoreSources.bkl: Add DateMath.cpp to file list.
2621
2622 2006-10-05  Kevin McCullough  <KMcCullough@apple.com>
2623
2624         Reviewed by aroben
2625
2626         - build fix
2627
2628         * JavaScriptCore.xcodeproj/project.pbxproj:
2629
2630 2006-10-04  Nikolas Zimmermann  <zimmermann@kde.org>
2631
2632         Reviewed by Mitz.
2633
2634         Fix Qt/Linux build by adding DateMath.cpp to compilation.
2635
2636         * CMakeLists.txt: Also replace tabs with spaces.
2637
2638 2006-10-04  Kevin McCullough  <KMcCullough@apple.com>
2639
2640         Reviewed by DethBakin.
2641
2642         - Apparently the build bot uses an older version of XCode which warns about conversions and the newest version does not.  I hope this fixes the build but I cann't be sure on my system.
2643
2644         * kjs/DateMath.cpp:
2645         (KJS::msToYear):
2646         (KJS::dayInYear):
2647         (KJS::dateToDayInYear):
2648
2649 2006-10-05  Darin Adler  <darin@apple.com>
2650
2651         Reviewed by Adam.
2652
2653         * wtf/Assertions.cpp: Changed assertion formatting to omit the "======"
2654         lines so you can see more assertions in less space. Also improved format
2655         of file/line information so it works with more development environments.
2656
2657 2006-10-04  Kevin McCullough  <KMcCullough@apple.com>
2658
2659         Reviewed by Tim H.
2660
2661         - The build machine is more sensitive about automatic conversions.  These fixes exp
2662 licitly cast or change the input and return types of functions to avoid conversions.
2663
2664         * JavaScriptCore.xcodeproj/project.pbxproj:
2665         * kjs/DateMath.cpp:
2666         (KJS::):
2667         (KJS::msToDays):
2668         (KJS::msToYear):
2669         (KJS::dayInYear):
2670         (KJS::monthToDayInYear):
2671         (KJS::dateToDayInYear):
2672         (KJS::getDSTOffsetSimple):
2673         (KJS::getDSTOffset):
2674         (KJS::dateToMseconds):
2675         (KJS::msToTM):
2676
2677 2006-10-04  Kevin McCullough  <KMcCullough@apple.com>
2678
2679         Reviewed by GGaren
2680
2681         - This is a big makeover for our Date implemenetation.  This solves many platform specific issues, specifically dates before 1970, and simplifies some ugly code.  The purpose of this was to get us to pass many of the JavaScriptCore tests on windows.
2682
2683         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
2684         * JavaScriptCore.xcodeproj/project.pbxproj:
2685         * kjs/DateMath.cpp: Added.
2686         (KJS::):
2687         (KJS::daysInYear):
2688         (KJS::daysFrom1970ToYear):
2689         (KJS::msFrom1970ToYear):
2690         (KJS::msToDays):
2691         (KJS::msToYear):
2692         (KJS::isLeapYear):
2693         (KJS::isInLeapYear):
2694         (KJS::dayInYear):
2695         (KJS::msToMilliseconds):
2696         (KJS::msToWeekDay):
2697         (KJS::msToSeconds):
2698         (KJS::msToMinutes):
2699         (KJS::msToHours):
2700         (KJS::msToMonth):
2701         (KJS::msToDayInMonth):
2702         (KJS::monthToDayInYear):
2703         (KJS::timeToMseconds):
2704         (KJS::dateToDayInYear):
2705         (KJS::equivalentYearForDST):
2706         (KJS::getUTCOffset):
2707         (KJS::getDSTOffsetSimple):
2708         (KJS::getDSTOffset):
2709         (KJS::localTimeToUTC):
2710         (KJS::UTCToLocalTime):
2711         (KJS::dateToMseconds):
2712         (KJS::msToTM):
2713         (KJS::isDST):
2714         * kjs/DateMath.h: Added.
2715         (KJS::):
2716         * kjs/date_object.cpp:
2717         (KJS::gmtoffset):
2718         (KJS::formatTime):
2719         (KJS::DateInstance::getTime):
2720         (KJS::DateInstance::getUTCTime):
2721         (KJS::DateProtoFunc::callAsFunction):
2722         (KJS::DateObjectImp::construct):
2723         (KJS::DateObjectFuncImp::callAsFunction):
2724         (KJS::parseDate):
2725         * kjs/testkjs.cpp:
2726         * os-win32/stdint.h:
2727
2728 2006-10-02  Nikolas Zimmermann  <zimmermann@kde.org>
2729
2730         Reviewed/landed by Adam.
2731
2732         Build testkjs on Qt/Linux.
2733
2734         * CMakeLists.txt:
2735
2736 2006-10-02  Nikolas Zimmermann  <zimmermann@kde.org>
2737
2738         Reviewed by eseidel.  Landed by eseidel.
2739
2740         Fix win32 build, which has no inttypes.h
2741
2742         * wtf/Assertions.h:
2743
2744 2006-10-02  Nikolas Zimmermann <zimmermann@kde.org>
2745
2746         Reviewed by eseidel & mjs.  Landed by eseidel.
2747
2748         Fix Qt/Linux build with older gcc 3.3.4.
2749         http://bugs.webkit.org/show_bug.cgi?id=11116
2750  
2751         * kjs/lookup.h: Move cacheGlobalObject into KJS namespace.
2752         (KJS::cacheGlobalObject): Also remove GCC_ROOT_NS_HACK.
2753         * wtf/Assertions.h: Include inttypes.h for uintptr_t.
2754
2755 2006-09-28  Steve Falkenburg  <sfalken@apple.com>
2756
2757         Reviewed by Maciej.
2758         
2759         Use $(ConfigSuffix) set via vsprops files to add _debug
2760         to end of debug filenames.
2761
2762         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
2763         * JavaScriptCore.vcproj/debug.vsprops: Added.
2764         * JavaScriptCore.vcproj/dftables/dftables.vcproj:
2765         * JavaScriptCore.vcproj/release.vsprops: Added.
2766         * JavaScriptCore.vcproj/testkjs/testkjs.vcproj:
2767
2768 2006-09-28  Darin Adler  <darin@apple.com>
2769
2770         Reviewed by Alice.
2771
2772         - support for change that should fix <rdar://problem/4733044>
2773           REGRESSION: XML iBench shows 10% perf. regression (copying
2774           strings while decoding)
2775
2776         * wtf/Vector.h: Changed VectorBuffer so that the general case
2777         contains an instance of the 0 case, since deriving from it
2778         was violating the Liskov Substitution Principle.
2779         (WTF::VectorBuffer::releaseBuffer): Added. Releases the buffer so it can
2780         be adopted by another data structure that uses the FastMalloc.h allocator.
2781         Returns 0 if the internal buffer was being used.
2782         (WTF::Vector::releaseBuffer): Added. Releases the buffer as above or creates
2783         a new one in the case where the internal buffer was being used.
2784
2785 2006-09-28  Maciej Stachowiak  <mjs@apple.com>
2786
2787         Reviewed by Geoff.
2788         
2789         - change garbage collection to happen at increments proportional to number of live objects, not always
2790         every 1000 allocations
2791
2792         * kjs/collector.cpp:
2793         (KJS::Collector::allocate):
2794
2795 2006-09-28  Maciej Stachowiak  <mjs@apple.com>
2796
2797         Reviewed by Mitz.
2798
2799         - fixed REGRESSION (r16606): javascriptCore Crash on website load
2800         
2801         Plus style fixes.
2802         
2803             - fixed some possible off-by-one bugs
2804             - use indexing, not iterators, for Vectors
2805             - store Vector by pointer instead of by value to avoid blowing out FunctionImp size
2806         
2807         * kjs/function.cpp:
2808         (KJS::FunctionImp::addParameter):
2809         (KJS::FunctionImp::parameterString):
2810         (KJS::FunctionImp::processParameters):
2811         (KJS::FunctionImp::lengthGetter):
2812         (KJS::FunctionImp::getParameterName):
2813         * kjs/function.h:
2814
2815 2006-09-27  Steve Falkenburg  <sfalken@apple.com>
2816
2817         Reviewed by Maciej.
2818         
2819         More build tweaks
2820
2821         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
2822         * JavaScriptCore.vcproj/JavaScriptCore/dstroot-to-sdk.cmd: Removed.
2823
2824 2006-09-27  John Sullivan  <sullivan@apple.com>
2825
2826         * kjs/function.cpp:
2827         (KJS::FunctionImp::getParameterName):
2828         removed assertion that displeased gcc 4.0.1 (build 5420):
2829         ASSERT(static_cast<size_t>(index) == index);
2830
2831 2006-09-27  Kevin McCullough  <KMcCullough@apple.com>
2832
2833         Reviewed by GGaren.
2834
2835         Cleanup of previous fix which was to address Radar: 4752492
2836
2837         * kjs/function.cpp:
2838         (KJS::FunctionImp::addParameter):
2839         (KJS::FunctionImp::parameterString):
2840         (KJS::FunctionImp::processParameters):
2841         (KJS::FunctionImp::lengthGetter):
2842         (KJS::FunctionImp::getParameterName):
2843         * kjs/function.h:
2844
2845 2006-09-27  Kevin McCullough  <KMcCullough@apple.com>
2846
2847         Reviewed by Adele.
2848
2849         Fixes a GC stack overflow crash.
2850         The change is to move from a linked list implementation of Parameters to a Vector.
2851         The problem with the linked list is that each one creates it's own stack frame when being destroyed and in extreme cases this caused the stack to overflow. 
2852
2853         * kjs/function.cpp:
2854         (KJS::Parameter::Parameter):
2855         (KJS::FunctionImp::addParameter):
2856         (KJS::FunctionImp::parameterString):
2857         (KJS::FunctionImp::processParameters):
2858         (KJS::FunctionImp::lengthGetter):
2859         (KJS::FunctionImp::getParameterName):
2860         * kjs/function.h:
2861
2862 2006-09-27  Steve Falkenburg  <sfalken@apple.com>
2863
2864         Fix last path fix.
2865
2866         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
2867
2868 2006-09-27  Steve Falkenburg  <sfalken@apple.com>
2869
2870         Set path before build.
2871
2872         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
2873
2874 2006-09-27  Sean Gies  <seangies@apple.com>
2875
2876         Reviewed by Adam Roben.
2877
2878         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj: Debug config should link to debug runtime.
2879         * JavaScriptCore.vcproj/dftables/dftables.vcproj: Debug config should link to debug runtime.
2880
2881 2006-09-27  Don Melton  <gramps@apple.com>
2882
2883         Reviewed by Adam Roben.
2884
2885         Changed line ending from DOS to UNIX format so it doesn't die running
2886         on my machine. ;)
2887
2888         * JavaScriptCore.vcproj/JavaScriptCore/build-generated-files.sh:
2889
2890 2006-09-23  Alexey Proskuryakov  <ap@nypop.com>
2891
2892         Reviewed by Maciej.
2893
2894         http://bugs.webkit.org/show_bug.cgi?id=10183
2895         REGRESSION: obfuscated JS decoding breaks because of soft hyphen removal
2896         (Fanfiction.net author pages not listing stories)
2897
2898         Rolled out the fix for bug 4139.
2899
2900         * kjs/lexer.cpp:
2901         (Lexer::setCode):
2902         (Lexer::shift):
2903         * tests/mozilla/ecma/Array/15.4.5.1-1.js:
2904         * tests/mozilla/expected.html:
2905
2906 2006-09-22  Steve Falkenburg  <sfalken@apple.com>
2907
2908         Build fix.
2909
2910         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
2911
2912 2006-09-22  Darin Adler  <darin@apple.com>
2913
2914         Reviewed by Alice.
2915
2916         * wtf/Vector.h: Add an append that takes a pointer and length.
2917         Generalize the existing Vector append to work on vectors with
2918         any value for inlineCapacity. Change the append algorithm so
2919         it doesn't check capacity each time through the loop.
2920
2921 2006-09-22  Steve Falkenburg  <sfalken@apple.com>
2922
2923         Fix release build.
2924
2925         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
2926
2927 2006-09-21  Geoffrey Garen  <ggaren@apple.com>
2928
2929         Reviewed by Maciej.
2930
2931         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
2932         Updated to include the right path.
2933         * wtf/FastMalloc.h: #include Platform.h, since we use Platform macros.
2934
2935 === Safari-521.27 ===
2936
2937 2006-09-20  Anders Carlsson  <acarlsson@apple.com>
2938
2939         Reviewed by Dave Hyatt.
2940
2941         * wtf/MathExtras.h:
2942         Get rid of lrint.
2943
2944 2006-09-20  Sean Gies  <seangies@apple.com>
2945
2946         Reviewed by Steve Falkenburg.
2947
2948         * wtf/Assertions.cpp: Debug messages should go into debugger console.
2949
2950 2006-09-20  David Hyatt  <hyatt@apple.com>
2951
2952         Add an implementation of lrint for Win32.
2953
2954         Reviewed by anders
2955
2956         * wtf/MathExtras.h:
2957         (lrint):
2958
2959 2006-09-15  Krzysztof Kowalczyk  <kkowalczyk@gmail.com>
2960
2961         Reviewed by Adam.
2962
2963         http://bugs.webkit.org/show_bug.cgi?id=10864
2964         Bug 10864: Linux\GDK build fixes
2965
2966         * JavaScriptCoreSources.bkl:
2967         * jscore.bkl:
2968
2969 2006-09-15  Adam Roben  <aroben@apple.com>
2970
2971         Windows build fix.
2972
2973         * JavaScriptCore.vcproj/JavaScriptCore/build-generated-files.sh:
2974
2975 2006-09-15  Anders Carlsson  <acarlsson@apple.com>
2976
2977         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
2978         Fix the release build.
2979
2980 2006-09-15  Anders Carlsson  <acarlsson@apple.com>
2981
2982         Reviewed by Steve.
2983
2984         Add JavaScriptCore API to the build.
2985         * API/JSBase.cpp:
2986         * API/JSCallbackConstructor.cpp:
2987         * API/JSCallbackFunction.cpp:
2988         * API/JSCallbackObject.cpp:
2989         * API/JSClassRef.cpp:
2990         * API/JSContextRef.cpp:
2991         * API/JSObjectRef.cpp:
2992         * API/JSStringRef.cpp:
2993         * API/JSValueRef.cpp:
2994         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
2995         * os-win32/stdbool.h: Added.
2996
2997 2006-09-12  Steve Falkenburg  <sfalken@apple.com>
2998
2999         Reviewed by Ada.
3000         
3001         Build tweaks (doing JavaScriptCore now since it doesn't have
3002         dependencies).
3003
3004         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
3005         * JavaScriptCore.vcproj/JavaScriptCore/build-generated-files.sh:
3006         * JavaScriptCore.vcproj/JavaScriptCore/dstroot-to-sdk.cmd: Added.
3007         * JavaScriptCore.vcproj/dftables/dftables.vcproj:
3008         * JavaScriptCore.vcproj/testkjs/testkjs.vcproj:
3009
3010 2006-09-11  Brady Eidson  <beidson@apple.com>
3011
3012         Build fix - I think Tim's last checkin wasn't tested on Tiger, possibly.  I simply
3013         commented out the undefined constants until he can have a chance to make the right call
3014
3015         * bindings/objc/objc_utility.mm:
3016         (KJS::Bindings::objcValueTypeForType): Commented out undefined symbols
3017
3018 2006-09-11  Timothy Hatcher  <timothy@apple.com>
3019
3020         Reviewed by Tim O. and Darin.
3021
3022         Add support for more method signatures affecting ObjC methods called from JavaScript:
3023         - Added unsigned types and long long.
3024         - Allow methods that use const, oneway, bycopy and byref type modifiers.
3025
3026         * bindings/objc/objc_instance.mm:
3027         (ObjcInstance::invokeMethod):
3028         * bindings/objc/objc_utility.h:
3029         (KJS::Bindings::):
3030         * bindings/objc/objc_utility.mm:
3031         (KJS::Bindings::convertValueToObjcValue):
3032         (KJS::Bindings::convertObjcValueToValue):
3033         (KJS::Bindings::objcValueTypeForType):
3034
3035 2006-09-05  Timothy Hatcher  <timothy@apple.com>
3036
3037         Reviewed by Tim O.
3038
3039         <rdar://problem/4715840> SEL is not char*
3040
3041         * bindings/objc/objc_class.mm:
3042         (KJS::Bindings::ObjcClass::methodsNamed): use sel_getName instead of a char* cast.
3043         * bindings/objc/objc_runtime.mm:
3044         (ObjcFallbackObjectImp::callAsFunction): ditto
3045
3046 2006-09-03  Alexey Proskuryakov  <ap@nypop.com>
3047
3048         Reviewed by Tim H.
3049
3050         http://bugs.webkit.org/show_bug.cgi?id=10693
3051         Convert JavaScript arrays to AppleScript lists
3052
3053         * JavaScriptCore.exp: Export ArrayInstance::info and ArrayInstance::getItem().
3054         * kjs/array_instance.h:
3055         * kjs/array_object.cpp:
3056         (ArrayInstance::getItem): Added a method to access array items from C++.
3057
3058 2006-09-02  Krzysztof Kowalczyk  <kkowalczyk@gmail.com>
3059
3060         Reviewed by Tim H.
3061
3062         Bug 10454: Unix bakefile fixes
3063         http://bugs.webkit.org/show_bug.cgi?id=10454
3064
3065         * JavaScriptCoreSources.bkl:
3066
3067 2006-09-01  Nikolas Zimmermann  <zimmermann@kde.org>
3068
3069         Reviewed by hyatt.  Landed by eseidel.
3070
3071         Fix build on Linux.
3072
3073         * pcre/CMakeLists.txt: Add wtf/ include.
3074
3075 2006-09-01  Nikolas Zimmermann  <zimmermann@kde.org>
3076
3077         Reviewed and landed by ap.
3078
3079         Fix build on Linux (C89 without gcc extensions enabled).
3080
3081         * pcre/pcre_internal.h: Use C style comments.
3082         * wtf/Assertions.h: Use C style comments.
3083         * wtf/Platform.h: Use C style comments.
3084
3085 2006-09-01  Steve Falkenburg  <sfalken@apple.com>
3086
3087         Fix build.
3088
3089         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
3090         * JavaScriptCore.vcproj/dftables/dftables.vcproj:
3091
3092 2006-08-31  Anders Carlsson  <acarlsson@apple.com>
3093
3094         Reviewed by Darin.
3095         
3096         Add new portability functions to MathExtras.h and add StringExtras.h which is for
3097         string portability functions.
3098         
3099         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
3100         * bindings/c/c_instance.cpp:
3101         * kjs/date_object.cpp:
3102         * wtf/MathExtras.h:
3103         (copysign):
3104         (isfinite):
3105         * wtf/StringExtras.h: Added.
3106         (snprintf):
3107         (strncasecmp):
3108
3109 2006-08-31  Anders Carlsson  <acarlsson@apple.com>
3110
3111         Reviewed by Tim H.
3112         
3113         Fix Windows build.
3114         
3115         * JavaScriptCore.vcproj/dftables/dftables.vcproj:
3116         * pcre/pcre_internal.h:
3117
3118 2006-08-31  Timothy Hatcher  <timothy@apple.com>
3119
3120         Reviewed by Geoff.
3121
3122         Band-aid fix for PCRE to compile for ppc64 and x86_64 now that
3123         we use -Wshorten-64-to-32. Adds an INT_CAST macro that ASSERTs
3124         the value <= INT_MAX.
3125
3126         I filed <rdar://problem/4712064> to track the need to verify
3127         PCRE's 64-bit compliance.
3128
3129         * pcre/pcre_compile.c:
3130         (complete_callout):
3131         (compile_branch):
3132         (compile_regex):
3133         (pcre_compile2):
3134         * pcre/pcre_exec.c:
3135         (match):
3136         (pcre_exec):
3137         * pcre/pcre_get.c:
3138         (pcre_get_substring_list):
3139         * pcre/pcre_internal.h:
3140         * pcre/pcre_tables.c:
3141         * pcre/pcre_try_flipped.c:
3142         (_pcre_try_flipped):
3143
3144 2006-08-30  Darin Adler  <darin@apple.com>
3145
3146         Reviewed by Tim Hatcher.
3147
3148         - add WTF::getPtr, a function template that makes it possible to write
3149           generic code that gets a raw pointer out of any of our pointer types
3150
3151         * JavaScriptCore.xcodeproj/project.pbxproj:
3152         * wtf/GetPtr.h: Added.
3153         * wtf/ListRefPtr.h: (WTF::getPtr): Added.
3154         * wtf/OwnArrayPtr.h: (WTF::getPtr): Added.
3155         * wtf/OwnPtr.h: (WTF::getPtr): Added.
3156         * wtf/PassRefPtr.h: (WTF::getPtr): Added.
3157         * wtf/RefPtr.h: (WTF::getPtr): Added.
3158
3159 2006-08-29  waylonis  <waylonis@google.com>
3160
3161         Reviewed, tweaked by ggaren.
3162
3163         - Added storage and accessor functions for ExecState as a fix for
3164           http://bugs.webkit.org/show_bug.cgi?id=10114
3165         
3166         * kjs/ExecState.cpp:
3167         (KJS::ExecState::ExecState):
3168         * kjs/ExecState.h:
3169         * kjs/context.h:
3170         (KJS::Context::setExecState):
3171         (KJS::Context::execState):
3172
3173 2006-08-30  Nikolas Zimmermann  <zimmermann@kde.org>
3174
3175         Reviewed by Tim H.
3176
3177         Commit KDE related tweaks, to be able to
3178         differentiate between a Qt-only or a KDE build.
3179
3180         * CMakeLists.txt: Install wtf-unity library.
3181         * wtf/Platform.h: Add define for the KDE platform.
3182
3183 2006-08-28  Darin Adler  <darin@apple.com>
3184
3185         Reviewed by Geoff.
3186
3187         * kjs/list.h: Use explicit in constructor (as appropriate).
3188
3189 2006-08-24  Nikolas Zimmermann  <zimmermann@kde.org>
3190
3191         Reviewed, tweaked and landed by ap
3192
3193         http://bugs.webkit.org/show_bug.cgi?id=10467
3194         WebKit should have Qt platform support (Part II)
3195
3196         * CMakeLists.txt: Adjust to Anders' build fixes.
3197         * wtf/Platform.h: Fix define for the Qt platform (we don't use/need Cairo.)
3198
3199 2006-08-23  David Hyatt  <hyatt@apple.com>
3200
3201         Fix Platform.h to include #defines for graphics features.
3202
3203         Reviewed by darin
3204
3205         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
3206         * wtf/Platform.h:
3207
3208 2006-08-23  Anders Carlsson  <acarlsson@apple.com>
3209
3210         Reviewed by Darin.
3211
3212         Make the bindings compile without CoreFoundation.
3213         
3214         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
3215         * bindings/c/c_instance.cpp:
3216         * bindings/c/c_utility.cpp:
3217         (KJS::Bindings::convertUTF8ToUTF16):
3218         * bindings/npapi.h:
3219         * bindings/runtime.cpp:
3220         (KJS::Bindings::Instance::createBindingForLanguageInstance):
3221         (KJS::Bindings::Instance::createLanguageInstanceForValue):
3222         * bindings/runtime_root.cpp:
3223         * bindings/runtime_root.h:
3224         * kjs/interpreter.cpp:
3225         (KJS::Interpreter::createLanguageInstanceForValue):
3226         * kjs/interpreter.h:
3227
3228 2006-08-22  Anders Carlsson  <acarlsson@apple.com>
3229
3230         Reviewed by Darin.
3231
3232         Move the npruntime code over to using HashMap and the runtime_root code over to using 
3233         HashMap and HashCountedSet.
3234         
3235         * bindings/NP_jsobject.cpp:
3236         * bindings/c/c_utility.cpp:
3237         (KJS::Bindings::identifierFromNPIdentifier):
3238         * bindings/c/c_utility.h:
3239         * bindings/jni/jni_jsobject.cpp:
3240         (JavaJSObject::invoke):
3241         * bindings/npruntime.cpp:
3242         (getStringIdentifierMap):
3243         (getIntIdentifierMap):
3244         (_NPN_GetStringIdentifier):
3245         (_NPN_GetIntIdentifier):
3246         * bindings/runtime_root.cpp:
3247         (getReferencesByRootMap):
3248         (getReferencesSet):
3249         (KJS::Bindings::findReferenceSet):
3250         (KJS::Bindings::rootForImp):
3251         (KJS::Bindings::rootForInterpreter):
3252         (KJS::Bindings::addNativeReference):
3253         (KJS::Bindings::removeNativeReference):
3254         (RootObject::removeAllNativeReferences):
3255         * bindings/runtime_root.h:
3256
3257 2006-08-22  Anders Carlsson  <acarlsson@apple.com>
3258
3259         Reviewed by Geoff.
3260         
3261         Switch over the NPAPI and Java bindings to using HashMaps instead of dictionaries.
3262         
3263         * JavaScriptCore.xcodeproj/project.pbxproj:
3264         * bindings/c/c_class.cpp:
3265         (KJS::Bindings::CClass::CClass):
3266         (KJS::Bindings::CClass::~CClass):
3267         (KJS::Bindings::CClass::classForIsA):
3268         (KJS::Bindings::CClass::methodsNamed):
3269         (KJS::Bindings::CClass::fieldNamed):
3270         * bindings/c/c_class.h:
3271         * bindings/jni/jni_class.cpp:
3272         (JavaClass::JavaClass):
3273         (JavaClass::~JavaClass):
3274         (JavaClass::methodsNamed):
3275         (JavaClass::fieldNamed):
3276         * bindings/jni/jni_class.h:
3277         * bindings/objc/objc_class.h:
3278         * bindings/objc/objc_class.mm:
3279         (KJS::Bindings::deleteMethod):
3280         (KJS::Bindings::deleteField):
3281         (KJS::Bindings::):
3282         (KJS::Bindings::ObjcClass::methodsNamed):
3283         (KJS::Bindings::ObjcClass::fieldNamed):
3284         * bindings/runtime.cpp:
3285         * bindings/runtime.h:
3286         * bindings/runtime_object.cpp:
3287         (RuntimeObjectImp::fieldGetter):
3288         (RuntimeObjectImp::getOwnPropertySlot):
3289         (RuntimeObjectImp::put):
3290         (RuntimeObjectImp::canPut):
3291
3292 2006-08-21  Vladimir Olexa  <vladimir.olexa@gmail.com>
3293
3294         Reviewed by Darin.
3295
3296         http://bugs.webkit.org/show_bug.cgi?id=6252
3297         JavaScript 1.6 Array.lastIndexOf
3298
3299         Test: fast/js/array-lastIndexOf.html
3300
3301         * kjs/array_object.cpp:
3302         (ArrayProtoFunc::callAsFunction): Added a LastIndexOf case.
3303         * kjs/array_object.h:
3304         (KJS::ArrayProtoFunc::): Added LastIndexOf to enum.
3305         * tests/mozilla/expected.html: Two more tests now pass.
3306
3307 2006-08-20  Nikolas Zimmermann  <zimmermann@kde.org>
3308
3309         Reviewed by Maciej. Landed by rwlbuis.
3310
3311         Fixes parts of: http://bugs.webkit.org/show_bug.cgi?id=10463
3312         WebKit should have Qt platform support
3313
3314         Removing obsolete QConstString/QString constructors in kjs code.
3315
3316         * kjs/identifier.h:
3317         * kjs/ustring.h:
3318
3319 2006-08-17  Nikolas Zimmermann  <zimmermann@kde.org>
3320
3321         Reviewed by Maciej. Landed by rwlbuis.
3322
3323         Fixes: http://bugs.webkit.org/show_bug.cgi?id=10463
3324         WTF Changes needed for Qt platform code.
3325
3326         * wtf/Platform.h:
3327         * wtf/unicode/UnicodeDecomposition.h: Added.
3328         (WTF::Unicode::):
3329         * wtf/unicode/UnicodeDirection.h: Added.
3330         (WTF::Unicode::):
3331         * wtf/unicode/qt4/UnicodeQt4.cpp: Added.
3332         (WTF::Unicode::direction):
3333         (WTF::Unicode::category):
3334         (WTF::Unicode::decomposition):
3335         * wtf/unicode/qt4/UnicodeQt4.h:
3336         (WTF::Unicode::toLower):
3337         (WTF::Unicode::toUpper):
3338         (WTF::Unicode::isPrintableChar):
3339         (WTF::Unicode::isSpace):
3340         (WTF::Unicode::isPunct):
3341         (WTF::Unicode::isDigit):
3342         (WTF::Unicode::mirroredChar):
3343         (WTF::Unicode::compare):
3344
3345 2006-08-17  Nikolas Zimmermann  <zimmermann@kde.org>
3346
3347         Reviewed by Eric. Landed by rwlbuis.
3348
3349         Fixes: http://bugs.webkit.org/show_bug.cgi?id=10464
3350         Offer a cmake build system for Qt platform.
3351
3352         * CMakeLists.txt: Added.
3353         * pcre/CMakeLists.txt: Added.
3354
3355 2006-08-17  Anders Carlsson  <acarlsson@apple.com>
3356
3357         Reviewed by Maciej.
3358
3359         * bindings/npapi.h:
3360         Fix ifdef.
3361
3362 2006-08-15  Steve Falkenburg  <sfalken@apple.com>
3363
3364         Reviewed by mjs.
3365         
3366         Build fix.
3367
3368         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
3369         * wtf/Assertions.h:
3370
3371 2006-08-15  Mark Rowe  <opendarwin.org@bdash.net.nz>
3372
3373         Reviewed by Tim H.
3374
3375         Build fix:  DWARF and -gfull are incompatible with symbol separation.
3376
3377         * JavaScriptCore.xcodeproj/project.pbxproj:
3378
3379 2006-08-15  Mark Rowe  <opendarwin.org@bdash.net.nz>
3380
3381         Reviewed by Tim H.
3382
3383         http://bugs.webkit.org/show_bug.cgi?id=10394
3384         Bug 10394: WebKit Release and Production configurations should enable dead code stripping
3385
3386         * JavaScriptCore.xcodeproj/project.pbxproj:
3387
3388 2006-08-15  Mark Rowe  <opendarwin.org@bdash.net.nz>
3389
3390         Reviewed by Tim H.
3391
3392         http://bugs.webkit.org/show_bug.cgi?id=10384
3393         Bug 10384: Switch to DWARF for Release configuration
3394
3395         * JavaScriptCore.xcodeproj/project.pbxproj:
3396
3397 2006-08-13  Maks Orlovich  <maksim@kde.org>
3398
3399         Reviewed (and tweaked a little) by Maciej.
3400         
3401         - shrank the size of JSObject by 8 bytes and made the corresponding reduction to the cell size, resulting
3402         in a 1.2% speed improvement on JS iBench (and probably overall memory savings).
3403
3404         This was done by removing _scope and _internalValue data members
3405         from JSObject and moving them only to the subclasses that actually
3406         make use of them.
3407         
3408         * kjs/object.cpp: 
3409         (KJS::JSObject::mark): No need to mark scope or internal value here.
3410         * kjs/object.h:
3411         (KJS::JSObject::JSObject): Don't initialize them.
3412         * kjs/JSWrapperObject.cpp: Added. New base class for object types that
3413         wrap primitive values (Number, String, Boolean, Date).
3414         (KJS::JSWrapperObject::mark): 
3415         * kjs/JSWrapperObject.h: Added.
3416         (KJS::JSWrapperObject::JSWrapperObject):
3417         (KJS::JSWrapperObject::internalValue):
3418         (KJS::JSWrapperObject::setInternalValue):
3419         * kjs/array_object.cpp:
3420         (ArrayPrototype::ArrayPrototype): Don't set useless internal value.
3421         * kjs/bool_object.cpp:
3422         (BooleanInstance::BooleanInstance): Inherit from JSWrapperObject.
3423         (BooleanProtoFunc::callAsFunction): Fixed to account for fact that not all
3424         JSObjects have an internal value.
3425         (BooleanObjectImp::construct): ditto.
3426         * kjs/bool_object.h:
3427         * kjs/collector.cpp: Lowered cell size to 48.
3428         (KJS::Collector::allocate): meaningless whitespace change
3429         * kjs/date_object.cpp:
3430         (KJS::DateInstance::DateInstance): Inherit from JSWrapperObject.
3431         (KJS::DateProtoFunc::callAsFunction): adjusted for move of internalValue
3432         (KJS::DateObjectImp::construct): ditto
3433         * kjs/date_object.h:
3434         * kjs/error_object.cpp:
3435         (ErrorPrototype::ErrorPrototype): don't set internal value
3436         * kjs/function.cpp: move _scope and related handling here
3437         (KJS::FunctionImp::mark): mark scope
3438         * kjs/function.h:
3439         (KJS::FunctionImp::scope): moved here from JSObject
3440         (KJS::FunctionImp::setScope): ditto
3441         * kjs/number_object.cpp:
3442         (NumberInstance::NumberInstance): inherit from JSWrapperObject
3443         (NumberProtoFunc::callAsFunction): adjusted
3444         (NumberObjectImp::construct): adjusted
3445         * kjs/number_object.h: shring RegExp-related objects a little
3446         * kjs/regexp_object.cpp:
3447         (RegExpPrototype::RegExpPrototype): Adjust for size tweaks
3448         (RegExpObjectImp::RegExpObjectImp): ditto
3449         * kjs/regexp_object.h:
3450         * kjs/string_object.cpp:
3451         (StringInstance::StringInstance): inherit from JSWrapperObject
3452         (StringProtoFunc::callAsFunction): adjusted
3453         * kjs/string_object.h:
3454         * JavaScriptCore.exp: Exported new methods as needed.
3455         * JavaScriptCore.xcodeproj/project.pbxproj: Added new files to build.
3456
3457 2006-08-04  Brady Eidson  <beidson@apple.com>
3458
3459         Reviewed by Geoff's rubber stamp
3460
3461         Fix a build break on Intel hardware causes by adapting stricter
3462         compiler warnings (-Wshorten-64-to-32)
3463
3464         * API/testapi.c:
3465         (assertEqualsAsNumber): manually cast some doubles to floats
3466         (main): ditto
3467
3468 2006-08-04  Sam Weinig  <sam.weinig@gmail.com>
3469
3470         Reviewed by Darin.
3471
3472         - patch for http://bugs.webkit.org/show_bug.cgi?id=10192
3473           Make WebCore (and friends) compile with -Wshorten-64-to-32
3474
3475           * Adds -Wshorten-64-to-32 flag to Xcode project.
3476           * Adds explicit casts where OK.
3477
3478         * API/JSNodeList.c:
3479         (JSNodeList_item):
3480         (JSNodeList_getProperty):
3481         * JavaScriptCore.xcodeproj/project.pbxproj:
3482
3483 2006-08-04  Adam Roben  <aroben@apple.com>
3484
3485         Reviewed by Anders.
3486
3487         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj: Convert
3488         spaces to tabs
3489
3490 2006-08-03  Sam Weinig  <sam.weinig@gmail.com>
3491
3492         Reviewed by Darin.
3493
3494         - patch for http://bugs.webkit.org/show_bug.cgi?id=10176
3495           Make WebCore compile with -Wundef
3496
3497           * Adds -Wundef flag to Xcode project
3498           * Converts #ifs to #ifdef and #ifndefs where needed.
3499           * Added #define YYMAXDEPTH 10000 in kjs/grammar.y
3500             to fix a warning from within Bison.
3501
3502         * JavaScriptCore.xcodeproj/project.pbxproj:
3503         * bindings/jni/jni_jsobject.cpp:
3504         (JavaJSObject::getSlot):
3505         (JavaJSObject::setSlot):
3506         * bindings/npapi.h:
3507         * bindings/objc/objc_class.mm:
3508         (KJS::Bindings::ObjcClass::methodsNamed):
3509         (KJS::Bindings::ObjcClass::fieldNamed):
3510         * bindings/objc/objc_instance.mm:
3511         (ObjcInstance::invokeMethod):
3512         * bindings/objc/objc_runtime.mm:
3513         (ObjcMethod::getMethodSignature):
3514         (ObjcField::name):
3515         (ObjcField::type):
3516         * kjs/grammar.y:
3517         * kjs/identifier.h:
3518
3519 2006-08-03  Anders Carlsson  <acarlsson@apple.com>
3520
3521         Reviewed by John Sullivan.
3522
3523        * wtf/HashSet.h:
3524         (WTF::::operator):
3525         Return *this in operator=
3526
3527 2006-08-03  Adam Roben  <aroben@apple.com>
3528
3529         Reviewed by Anders.
3530
3531         - Fixed Windows build
3532
3533         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
3534         * wtf/MathExtras.h: Implement inline versions of these functions
3535         (nextafter):
3536         (nextafterf):
3537
3538 2006-08-02  Adam Roben  <aroben@apple.com>
3539
3540         Reviewed by Darin.
3541
3542         - Fixed build
3543
3544         * kjs/date_object.cpp:
3545         (KJS::formatTime):
3546
3547 2006-07-29  Darin Adler  <darin@apple.com>
3548
3549         - Removed tabs from these source files that still had them.
3550           We don't use them; that way source files look fine in editors
3551           that have tabs set to 8 spaces or to 4 spaces.
3552         - Removed allow-tabs Subversion property from the files too.
3553
3554         * bindings/NP_jsobject.cpp:
3555         * bindings/c/c_utility.cpp:
3556         * bindings/jni/jni_runtime.cpp:
3557         * bindings/jni/jni_utility.cpp:
3558         * bindings/objc/objc_utility.mm:
3559         * bindings/runtime.cpp:
3560         * bindings/runtime_method.cpp:
3561         * bindings/testbindings.cpp:
3562         * bindings/testbindings.mm:
3563         * kjs/date_object.cpp:
3564         * kjs/function.cpp:
3565         * kjs/list.cpp:
3566         * kjs/nodes.cpp:
3567         * kjs/nodes.h:
3568         * kjs/string_object.cpp:
3569         * kjs/ustring.cpp:
3570
3571 2006-07-29  Darin Adler  <darin@apple.com>
3572
3573         * tests/mozilla/expected.html: Update test results now that regress-185165.js
3574         is succeeding. I suspect Anders fix for bug 4620655 is the reason.
3575
3576 2006-07-29  Sam Weinig  <sam.weinig@gmail.com>
3577
3578         Reviewed by Darin.
3579
3580         - patch for http://bugs.webkit.org/show_bug.cgi?id=10080
3581           Adopt pedantic changes from the Unity project to improve 
3582           cross-compiler compatibility
3583
3584           Changes include:
3585           * Removing trailing semicolon from namespace braces.
3586           * Removing trailing comma from last enum declaration.
3587           * Updating to match style guidelines.
3588           * Adding missing newline to the end of the file.
3589           * Turning on gcc warning for missing newline at the end of a source file
3590             (GCC_WARN_ABOUT_MISSING_NEWLINE in Xcode, -Wnewline in gcc).
3591           * Alphabetical sorting of Xcode source list files. 
3592           * Replace use of non-portable variable-size array with Vector.
3593           * Use C-style comments instead of C++ comments in files that might
3594             be included by either C or C++ files.
3595
3596         * API/JSCallbackConstructor.cpp:
3597         (KJS::JSCallbackConstructor::construct):
3598         * API/JSCallbackFunction.cpp:
3599         (KJS::JSCallbackFunction::callAsFunction):
3600         * API/JSCallbackObject.cpp:
3601         (KJS::JSCallbackObject::construct):
3602         (KJS::JSCallbackObject::callAsFunction):