6f1b5f61b738f6cb0f12ef02c1aa91f640e1d4cd
[WebKit-https.git] / JavaScriptCore / ChangeLog
1 2006-12-20  Lars Knoll <lars@trolltech.com>
2
3         Reviewed by David Hyatt
4
5         Added support to bind QObject's to 
6         JavaScript.
7
8         * JavaScriptCore.pro:
9         * bindings/qt/qt_class.cpp: Added.
10         (KJS::Bindings::QtClass::QtClass):
11         (KJS::Bindings::QtClass::~QtClass):
12         (KJS::Bindings::QtClass::classForObject):
13         (KJS::Bindings::QtClass::name):
14         (KJS::Bindings::QtClass::methodsNamed):
15         (KJS::Bindings::QtClass::fieldNamed):
16         * bindings/qt/qt_class.h: Added.
17         (KJS::Bindings::QtClass::constructorAt):
18         (KJS::Bindings::QtClass::numConstructors):
19         * bindings/qt/qt_instance.cpp: Added.
20         (KJS::Bindings::QtInstance::QtInstance):
21         (KJS::Bindings::QtInstance::~QtInstance):
22         (KJS::Bindings::QtInstance::operator=):
23         (KJS::Bindings::QtInstance::getClass):
24         (KJS::Bindings::QtInstance::begin):
25         (KJS::Bindings::QtInstance::end):
26         (KJS::Bindings::QtInstance::implementsCall):
27         (KJS::Bindings::QtInstance::invokeMethod):
28         (KJS::Bindings::QtInstance::invokeDefaultMethod):
29         (KJS::Bindings::QtInstance::defaultValue):
30         (KJS::Bindings::QtInstance::stringValue):
31         (KJS::Bindings::QtInstance::numberValue):
32         (KJS::Bindings::QtInstance::booleanValue):
33         (KJS::Bindings::QtInstance::valueOf):
34         * bindings/qt/qt_instance.h: Added.
35         (KJS::Bindings::QtInstance::getObject):
36         * bindings/qt/qt_runtime.cpp: Added.
37         (KJS::Bindings::convertValueToQVariant):
38         (KJS::Bindings::convertQVariantToValue):
39         (KJS::Bindings::QtField::name):
40         (KJS::Bindings::QtField::valueFromInstance):
41         (KJS::Bindings::QtField::setValueToInstance):
42         * bindings/qt/qt_runtime.h: Added.
43         (KJS::Bindings::QtField::QtField):
44         (KJS::Bindings::QtField::type):
45         (KJS::Bindings::QtMethod::QtMethod):
46         (KJS::Bindings::QtMethod::name):
47         (KJS::Bindings::QtMethod::numParameters):
48         * bindings/runtime.cpp:
49         (KJS::Bindings::Instance::createBindingForLanguageInstance):
50         * bindings/runtime.h:
51         (KJS::Bindings::Instance::):
52         * bindings/testbindings.pro: Added.
53         * bindings/testqtbindings.cpp: Added.
54         (MyObject::MyObject):
55         (MyObject::setTestString):
56         (MyObject::setTestInt):
57         (MyObject::testString):
58         (MyObject::testInt):
59         (MyObject::foo):
60         (Global::className):
61         (main):
62
63 2006-12-19  Anders Carlsson  <acarlsson@apple.com>
64
65         Reviewed by Geoff.
66
67         Add -p option to testkjs which pretty prints the files instead of executing them.
68
69         * JavaScriptCore.exp:
70         * JavaScriptCore.xcodeproj/project.pbxproj:
71         * kjs/Parser.cpp:
72         (KJS::Parser::prettyPrint):
73         * kjs/Parser.h:
74         * kjs/testkjs.cpp:
75         (doIt):
76
77 2006-12-19  Brady Eidson  <beidson@apple.com>
78
79         Rubberstamped by Lou
80         
81         Removed unneccessary "else"
82
83         * wtf/Assertions.cpp:
84
85 2006-12-19  Timothy Hatcher  <timothy@apple.com>
86
87         Reviewed by Darin.
88
89         <rdar://problem/4891774> Local WebCore/WebBrowser builds fail in 9A328 due to warning about ObjC-2.0 language features
90
91         * JavaScriptCore.xcodeproj/project.pbxproj:
92
93 2006-12-17  Simon Hausmann  <hausmann@kde.org>
94
95         Reviewed by Zack.
96
97         * kjs/testkjs.pro: Oops, make it also build on machines other than
98         mine :)
99
100 2006-12-17  Simon Hausmann  <hausmann@kde.org>
101
102         Reviewed by Rob Buis.
103
104         * kjs/testkjs.pro: Added .pro file to build testkjs.
105
106 2006-12-16  Alexey Proskuryakov  <ap@webkit.org>
107
108         Reviewed by Rob.
109
110         A deleted object was accessed to prepare RegExp construction error messages.
111
112         * kjs/regexp_object.cpp:
113         (RegExpObjectImp::construct): Wrap the RegExp into an OwnPtr.
114
115 2006-12-16  Mitz Pettel  <mitz@webkit.org>
116
117         Reviewed by Alexey.
118
119         - fix http://bugs.webkit.org/show_bug.cgi?id=11814
120           REGRESSION(r18098): Find does not work with capital letters
121
122         Test: editing/execCommand/findString-3.html
123
124         * wtf/unicode/icu/UnicodeIcu.h:
125         (WTF::Unicode::foldCase): Changed to not return an error if the result fits
126         in the buffer without a null terminator.
127
128 2006-12-13  Maciej Stachowiak  <mjs@apple.com>
129
130         Reviewed by Anders.
131         
132         - added equality and inequality operations for HashMap and Vector, useful for comparing more complex types
133
134         * wtf/HashMap.h:
135         (WTF::operator==):
136         (WTF::operator!=):
137         * wtf/Vector.h:
138         (WTF::operator==):
139         (WTF::operator!=):
140
141 2006-12-12  Alexey Proskuryakov  <ap@webkit.org>
142
143         Reviewed by Geoff. Based on a patch by Maks Orlovich.
144
145         http://bugs.webkit.org/show_bug.cgi?id=6257
146         Throw errors on invalid expressions (KJS merge)
147
148         * kjs/regexp.cpp:
149         (KJS::RegExp::RegExp):
150         (KJS::RegExp::~RegExp):
151         (KJS::RegExp::match):
152         * kjs/regexp.h:
153         (KJS::RegExp::flags):
154         (KJS::RegExp::isValid):
155         (KJS::RegExp::errorMessage):
156         (KJS::RegExp::subPatterns):
157         Remember and report RegExp construction failures. Renamed data members not to start with underscores.
158
159         * kjs/regexp_object.cpp:
160         (RegExpObjectImp::construct): Raise an exception if RegExp construction fails.
161         (RegExpObjectImp::callAsFunction): Removed an obsolete comment.
162
163         * tests/mozilla/ecma_3/RegExp/regress-119909.js: Reduced the number of nested parentheses to 
164         a value supported by PCRE.
165
166 2006-12-11  Alexey Proskuryakov  <ap@webkit.org>
167
168         Reviewed by Darin.
169
170         http://bugs.webkit.org/show_bug.cgi?id=9673
171         Add support for window.atob() and window.btoa()
172
173         * JavaScriptCore.exp: Export UString::is8Bit().
174         * JavaScriptCore.xcodeproj/project.pbxproj: Added StringExtras.h as 
175         a private header.
176
177 2006-12-11  Darin Adler  <darin@apple.com>
178
179         Reviewed by Brady.
180
181         * JavaScriptCore.xcodeproj/project.pbxproj: Let Xcode update this
182         (I think Hyatt is using an old Xcode).
183
184 2006-12-11  David Hyatt  <hyatt@apple.com>
185
186         Fix the failing layout test.  Just remove Unicode::isSpace and
187         revert StringImpl to do the same thing it was doing before.
188
189         Reviewed by darin
190
191         * wtf/unicode/icu/UnicodeIcu.h:
192         * wtf/unicode/qt4/UnicodeQt4.h:
193
194 2006-12-09  George Staikos  <staikos@kde.org>
195
196         Reviewed by Zack.
197
198         Fix bison again on qmake build.
199
200         * JavaScriptCore.pro:
201
202 2006-12-09  Lars Knoll <lars@trolltech.com>
203
204         Reviewed by Zack
205
206         Make it possible to build WebKit with qmake.
207
208         * JavaScriptCore.pro: Added.
209         * kjs/kjs.pro: Removed.
210         * pcre/pcre.pri: Added.
211
212 2006-12-09  Zack Rusin  <zack@kde.org>
213
214         Fixing the compilation with platform kde after the icu changes.
215
216         * CMakeLists.txt:
217
218 2006-12-09  Adam Roben  <aroben@apple.com>
219
220         Reviewed by Darin.
221
222         Some updates in reaction to r18098.
223
224         * wtf/unicode/icu/UnicodeIcu.h: Use !! to convert UBool to bool in all
225         cases.
226         (WTF::Unicode::toLower):
227         (WTF::Unicode::toUpper):
228         (WTF::Unicode::isDigit):
229         (WTF::Unicode::isSpace):
230         (WTF::Unicode::isPunct):
231         (WTF::Unicode::isLower):
232         (WTF::Unicode::isUpper):
233         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
234         * JavaScriptCore.vcproj/WTF/WTF.vcproj:
235
236 2006-12-09  George Staikos  <staikos@kde.org>
237
238         Patch by Lars Knoll, comment out ICU dependency on Qt platform (unused code).
239
240         Reviewed by Darin.
241
242         * bindings/c/c_utility.cpp:
243         (KJS::Bindings::convertUTF8ToUTF16):
244
245 2006-12-08  David Hyatt  <hyatt@apple.com>
246
247         Land the new ICU abstraction layer.  Patch by Lars.
248
249         Reviewed by me
250
251         * JavaScriptCore.xcodeproj/project.pbxproj:
252         * wtf/Platform.h:
253         * wtf/unicode/UnicodeCategory.h: Removed.
254         * wtf/unicode/UnicodeDecomposition.h: Removed.
255         * wtf/unicode/UnicodeDirection.h: Removed.
256         * wtf/unicode/icu/UnicodeIcu.h:
257         (WTF::Unicode::):
258         (WTF::Unicode::foldCase):
259         (WTF::Unicode::toLower):
260         (WTF::Unicode::toUpper):
261         (WTF::Unicode::toTitleCase):
262         (WTF::Unicode::isDigit):
263         (WTF::Unicode::isSpace):
264         (WTF::Unicode::isPunct):
265         (WTF::Unicode::mirroredChar):
266         (WTF::Unicode::category):
267         (WTF::Unicode::direction):
268         (WTF::Unicode::isLower):
269         (WTF::Unicode::isUpper):
270         (WTF::Unicode::digitValue):
271         (WTF::Unicode::combiningClass):
272         (WTF::Unicode::decompositionType):
273         (WTF::Unicode::strcasecmp):
274         (WTF::Unicode::memset):
275         * wtf/unicode/qt4/UnicodeQt4.cpp: Removed.
276         * wtf/unicode/qt4/UnicodeQt4.h:
277         (WTF::Unicode::):
278         (WTF::Unicode::toLower):
279         (WTF::Unicode::toUpper):
280         (WTF::Unicode::toTitleCase):
281         (WTF::Unicode::foldCase):
282         (WTF::Unicode::isPrintableChar):
283         (WTF::Unicode::isLower):
284         (WTF::Unicode::isUpper):
285         (WTF::Unicode::digitValue):
286         (WTF::Unicode::combiningClass):
287         (WTF::Unicode::decompositionType):
288         (WTF::Unicode::strcasecmp):
289         (WTF::Unicode::memset):
290         (WTF::Unicode::direction):
291         (WTF::Unicode::category):
292
293 === Safari-521.32 ===
294
295 2006-12-08  Adam Roben  <aroben@apple.com>
296
297         Reviewed by Anders.
298
299         This is a mo' better fix for ensuring we don't use macro definitions
300         of min/max.
301
302         * kjs/config.h:
303         * wtf/Vector.h:
304
305 2006-12-07  Kevin Fyure  <digdog@macports.org>
306
307         Reviewed by Darin.
308
309         http://bugs.webkit.org/show_bug.cgi?id=11545
310         Disable the testcases do not follow the ECMA-262v3 specification.
311         
312         * tests/mozilla/expected.html: Update Results.
313         * tests/mozilla/js1_2/String/concat.js:
314         4 tests disabled. The result of concat Array object is not followinig
315         ECMA 15.5.4.6
316         * tests/mozilla/js1_2/function/Number.js:
317         1 test disabled. The result of Array object to Number object conversion 
318         is not following ECMA 9.3. And the test was duplicated in 
319         ecma/TypeConversion/9.3-1.js
320         * tests/mozilla/js1_2/function/String.js:
321         2 tests disabled. The result of Object/Array object to String object 
322         conversion is not following ECMA 15.5.1.1 and ECMA 9.8
323
324 2006-11-30  Steve Falkenburg  <sfalken@apple.com>
325
326         Reviewed by Oliver.
327         
328         Move WTF from JavaScriptCore project into a new WTF project.
329
330         * JavaScriptCore.vcproj/JavaScriptCore.sln: Add WTF.vcproj to sln
331         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj: Remove WTF source files
332         * JavaScriptCore.vcproj/WTF/WTF.vcproj: Added.
333         * JavaScriptCore.vcproj/testkjs/testkjs.vcproj: Add dependency on WTF.lib
334
335 2006-11-30  Geoffrey Garen  <ggaren@apple.com>
336
337         Reviewed by Beth Dakin.
338         
339         Fixed up garbage collection at window close time.
340
341         * kjs/interpreter.cpp:
342         (KJS::Interpreter::~Interpreter): Garbage collect here, since
343         destroying the interpreter frees the global object and 
344         therefore creates a lot of garbage.
345
346 2006-11-20  W. Andy Carrel  <wac@google.com>
347
348         Reviewed by Maciej.
349
350         http://bugs.webkit.org/show_bug.cgi?id=11501
351         REGRESSION: \u no longer escapes metacharacters in RegExps
352         http://bugs.webkit.org/show_bug.cgi?id=11502
353         Serializing RegExps doesn't preserve Unicode escapes
354
355         * kjs/lexer.cpp:
356         (Lexer::Lexer):
357         (Lexer::setCode):
358         (Lexer::shift):
359         (Lexer::scanRegExp):
360         Push \u parsing back down into the RegExp object rather than in the
361         parser. This backs out r17354 in favor of a new fix that better 
362         matches the behavior of other browsers.
363
364         * kjs/lexer.h:
365         * kjs/regexp.cpp:
366         (KJS::RegExp::RegExp):
367         (KJS::sanitizePattern):
368         (KJS::isHexDigit):
369         (KJS::convertHex):
370         (KJS::convertUnicode):
371         * kjs/regexp.h:
372         Translate \u escaped unicode characters for the benefit of pcre.
373
374         * kjs/ustring.cpp:
375         (KJS::UString::append):
376         Fix failure to increment length on the first UChar appended to a 
377         UString that was copy-on-write.
378
379         * tests/mozilla/ecma_2/RegExp/properties-001.js:
380         Adjust tests back to the uniform standards.
381
382 2006-11-20  Samuel Weinig  <sam@webkit.org>
383
384         Reviewed by Maciej.
385
386         Fix for http://bugs.webkit.org/show_bug.cgi?id=11647
387         Fix Win32 build
388
389         * kjs/config.h: define NOMINMAX instead of min/max
390         as themselves.
391         * wtf/Vector.h: put back hack to ensure that min/max
392         are not defined as macros.
393
394 2006-11-19  Simon Hausmann  <hausmann@kde.org>
395
396         Reviewed by Zack.
397
398         http://bugs.webkit.org/show_bug.cgi?id=11649
399         Fix CMake Qt-only build without KDE CMake files
400
401         * CMakeLists.txt:
402         * pcre/CMakeLists.txt:
403
404 2006-11-17  Anders Carlsson  <acarlsson@apple.com>
405
406         Reviewed by Adam.
407
408         Make sure that we always use std::min and std::max instead of macros.
409         
410         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
411         * kjs/config.h:
412         * wtf/Vector.h:
413
414 === Safari-521.31 ===
415
416 2006-11-12  Geoffrey Garen  <ggaren@apple.com>
417
418         Reviewed by Beth Dakin.
419         
420         Added project-wide setting to disable Microsoft's made-up deprecation 
421         warnings related to std:: functions. (Doesn't have any affect yet,
422         since we currently disable all deprecation warnings.)
423
424         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
425
426 2006-11-12  Mark Rowe  <bdash@webkit.org>
427
428         Reviewed by Mitz.
429
430         Clean up of JavaScriptCore bakefiles.
431
432         * JavaScriptCoreSources.bkl:
433         * jscore.bkl:
434
435 2006-11-11  Alexey Proskuryakov  <ap@webkit.org>
436
437         Reviewed by Maciej.
438
439         http://bugs.webkit.org/show_bug.cgi?id=11508
440         Undisable some warnings for JSImmediate.h
441
442         Fix suggested by Don Gibson.
443
444         * kjs/JSImmediate.h:
445         Re-enable all MSVC warnings, move the remaining runtime checks
446         to compile-time.
447
448 2006-11-10  Zalan Bujtas  <zalan.bujtas@nokia.com>
449
450         Reviewed by Maciej.
451
452         Added s60/symbian platform defines.
453         http://bugs.webkit.org/show_bug.cgi?id=11540
454
455         * wtf/Platform.h:
456
457 === Safari-521.30 ===
458
459 2006-11-08  Ada Chan  <adachan@apple.com>
460
461         Reviewed by darin.
462         
463         Added a method to delete all the keys in a HashMap.
464
465         * wtf/HashMap.h:
466         (WTF::deleteAllPairFirsts):
467         (WTF::deleteAllKeys):
468
469 2006-11-07  Anders Carlsson  <acarlsson@apple.com>
470
471         Reviewed by Geoff.
472
473         * API/JSClassRef.cpp:
474         (OpaqueJSClass::OpaqueJSClass):
475         Initialize cachedPrototype to 0.
476
477 2006-11-06  Krzysztof Kowalczyk  <kkowalczyk@gmail.com>
478
479         Reviewed by Maciej.
480
481         Remove warning about garbage after #else. #else clause applies for all
482         non-mac platforms, not only win.
483
484         * kjs/date_object.cpp:
485
486 2006-11-06  Mark Rowe  <bdash@webkit.org>
487
488         Reviewed by the wonderful Mitz Pettel.
489
490         http://bugs.webkit.org/show_bug.cgi?id=11524
491         Bug 11524: REGRESSION(r9842): Array.prototype.join should use ToString operator rather than calling toString on each element
492
493         * kjs/array_object.cpp:
494         (ArrayProtoFunc::callAsFunction): Use ToString operator on each element rather than calling their toString method.
495
496 2006-11-03  Steve Falkenburg  <sfalken@apple.com>
497
498         Fix build
499
500         * kjs/JSImmediate.h:
501
502 2006-11-03  Alexey Proskuryakov  <ap@nypop.com>
503
504         Reviewed by Darin.
505
506         http://bugs.webkit.org/show_bug.cgi?id=11504
507         Fix warnings on non 32 bit platforms
508
509         * kjs/JSImmediate.h:
510         (KJS::JSImmediate::NanAsBits):
511         (KJS::JSImmediate::oneAsBits):
512         Rewrite in a way that moves runtime checks to compile-time.
513
514         (KJS::):
515         (KJS::JSImmediate::fromDouble):
516         (KJS::JSImmediate::toDouble):
517
518 2006-11-02  George Staikos <staikos@kde.org>
519
520         Reviewed by Maciej.
521
522         * collector.cpp:
523         Remove a deprecated pthreads call.
524
525 2006-11-02  Anders Carlsson  <acarlsson@apple.com>
526
527         Reviewed by Maciej, landed by Anders.
528
529         * CMakeLists.txt:
530         Make KDE support optional.
531
532 2006-11-01  Kevin McCullough  <KMcCullough@apple.com>
533
534         Reviewed by Brady.
535
536         - 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.
537
538         * kjs/DateMath.cpp:
539         (KJS::equivalentYearForDST):
540         (KJS::getDSTOffsetSimple):
541         (KJS::getDSTOffset):
542
543 2006-10-31  Geoffrey Garen  <ggaren@apple.com>
544
545         Reviewed by Beth.
546         
547         Fixed http://bugs.webkit.org/show_bug.cgi?id=11477
548         REGRESSION: GMail crashes in KJS::FunctionImp::callerGetter
549
550         * kjs/function.cpp:
551         (KJS::FunctionImp::argumentsGetter): Removed unnecessary braces.
552         (KJS::FunctionImp::callerGetter): More logical NULL checking.
553
554 2006-10-31  Oliver Hunt  <oliver@apple.com>
555
556         Reviewed by Geoff.
557
558         Adding definition for PLATFORM(CI)
559
560         * wtf/Platform.h:
561
562 2006-10-31  Vladimir Olexa  <vladimir.olexa@gmail.com>
563
564         Reviewed by Geoff.
565
566         http://bugs.webkit.org/show_bug.cgi?id=4166
567         Function object does not support caller property
568
569         Test: fast/js/caller-property.html
570
571         * kjs/function.cpp: 
572         (KJS::FunctionImp::callerGetter): added
573         (KJS::FunctionImp::getOwnPropertySlot): added if statement to handle callerGetter()
574         * kjs/function.h: added callerGetter() declaration
575         * kjs/identifier.h: added caller property macro
576         * tests/mozilla/expected.html: 
577
578 2006-10-30  Kevin McCullough  <KMcCullough@apple.com>
579
580         Reviewed by Adam.
581
582         - Fix some timezone issues and JavaScriptCore date tests.  Addresses bugzilla 4930.
583
584         * kjs/DateMath.h:
585         (KJS::GregorianDateTime::GregorianDateTime): Here's the fix, to add parenthesis for order of precedence.
586         * kjs/date_object.cpp:
587         (KJS::DateProtoFunc::callAsFunction): 
588         (KJS::DateObjectImp::construct): memset not needed as GregorianDateTime initializes itself.
589
590 2006-10-30  Darin Adler  <darin@apple.com>
591
592         Reviewed by John Sullivan.
593
594         * kjs/SavedBuiltins.h: Added needed include.
595         * wtf/OwnPtr.h: (WTF::OwnPtr::set): Fixed mistake in assertion.
596
597 2006-10-28  Darin Adler  <darin@apple.com>
598
599         Reviewed by Maciej.
600
601         - renamed PassRefPtr::release to releaseRef to make it clearer that
602           it's the counterpart of adoptRef, and to make it harder to confuse
603           it with the safer-to-use RefPtr::release
604
605         * kjs/identifier.cpp:
606         (KJS::CStringTranslator::translate):
607         (KJS::UCharBufferTranslator::translate):
608         * kjs/ustring.cpp:
609         (KJS::UString::Rep::create):
610         * wtf/PassRefPtr.h:
611         (WTF::PassRefPtr::PassRefPtr):
612         (WTF::PassRefPtr::~PassRefPtr):
613         (WTF::PassRefPtr::get):
614         (WTF::PassRefPtr::releaseRef):
615         (WTF::PassRefPtr::operator->):
616         (WTF::PassRefPtr::operator=):
617         (WTF::adoptRef):
618         (WTF::static_pointer_cast):
619         (WTF::const_pointer_cast):
620         * wtf/RefPtr.h:
621         (WTF::RefPtr::RefPtr):
622         (WTF::RefPtr::operator=):
623
624 2006-10-28  Darin Adler  <darin@apple.com>
625
626         Reviewed by Steve.
627
628         * kjs/grammar.y: Add definitions of YYMALLOC and YYFREE to fix
629         a warning some people see (not sure why others don't see it).
630
631         * JavaScriptCore.vcproj/JavaScriptCore/grammarWrapper.cpp: Touch
632         this file to force it to re-build grammar.cpp.
633
634 2006-10-28  Darin Adler  <darin@apple.com>
635
636         Reviewed by Geoff.
637
638         - made changes so the code compiles with the highest warning level
639           under MSVC (disabling some warnings, making some code fixes)
640
641         * API/JSCallbackConstructor.cpp:
642         (KJS::JSCallbackConstructor::construct):
643         * API/JSCallbackFunction.cpp:
644         (KJS::JSCallbackFunction::callAsFunction):
645         * API/JSCallbackObject.cpp:
646         (KJS::JSCallbackObject::init):
647         (KJS::JSCallbackObject::construct):
648         (KJS::JSCallbackObject::callAsFunction):
649         * API/JSObjectRef.cpp:
650         (JSPropertyNameArrayGetNameAtIndex):
651         * API/JSStringRef.cpp:
652         (JSStringCreateWithCharacters):
653         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
654         * bindings/c/c_utility.cpp:
655         (KJS::Bindings::convertUTF8ToUTF16):
656         (KJS::Bindings::coerceValueToNPVariantStringType):
657         (KJS::Bindings::convertValueToNPVariant):
658         * kjs/DateMath.h:
659         (KJS::GregorianDateTime::GregorianDateTime):
660         * kjs/ExecState.h:
661         (KJS::ExecState::hadException):
662         * kjs/JSImmediate.h:
663         (KJS::JSImmediate::fromDouble):
664         (KJS::JSImmediate::toDouble):
665         (KJS::JSImmediate::NanAsBits):
666         (KJS::JSImmediate::oneAsBits):
667         * kjs/Parser.h:
668         * kjs/PropertyNameArray.h:
669         (KJS::PropertyNameArray::size):
670         * kjs/array_object.cpp:
671         (ArrayObjectImp::callAsFunction):
672         * kjs/bool_object.cpp:
673         (BooleanObjectImp::callAsFunction):
674         * kjs/collector.cpp:
675         (KJS::Collector::allocate):
676         (KJS::Collector::markCurrentThreadConservatively):
677         (KJS::Collector::collect):
678         * kjs/completion.h:
679         (KJS::Completion::isValueCompletion):
680         * kjs/date_object.cpp:
681         (KJS::findMonth):
682         * kjs/debugger.cpp:
683         (Debugger::sourceParsed):
684         (Debugger::sourceUnused):
685         (Debugger::exception):
686         (Debugger::atStatement):
687         (Debugger::callEvent):
688         (Debugger::returnEvent):
689         * kjs/dtoa.cpp:
690         * kjs/error_object.cpp:
691         (ErrorObjectImp::callAsFunction):
692         (NativeErrorImp::callAsFunction):
693         * kjs/function.cpp:
694         (KJS::FunctionImp::processVarDecls):
695         (KJS::GlobalFuncImp::callAsFunction):
696         * kjs/function_object.cpp:
697         (FunctionPrototype::callAsFunction):
698         * kjs/grammar.y:
699         * kjs/identifier.cpp:
700         (KJS::CStringTranslator::translate):
701         (KJS::Identifier::add):
702         * kjs/internal.h:
703         * kjs/lexer.cpp:
704         (Lexer::lex):
705         (Lexer::isIdentStart):
706         (Lexer::isIdentPart):
707         (isDecimalDigit):
708         (Lexer::isHexDigit):
709         (Lexer::isOctalDigit):
710         (Lexer::matchPunctuator):
711         (Lexer::singleEscape):
712         (Lexer::convertOctal):
713         (Lexer::convertHex):
714         (Lexer::convertUnicode):
715         (Lexer::record8):
716         * kjs/lexer.h:
717         * kjs/math_object.cpp:
718         (MathFuncImp::callAsFunction):
719         * kjs/number_object.cpp:
720         (integer_part_noexp):
721         (intPow10):
722         (NumberProtoFunc::callAsFunction):
723         (NumberObjectImp::callAsFunction):
724         * kjs/object.cpp:
725         (KJS::JSObject::deleteProperty):
726         (KJS::JSObject::callAsFunction):
727         (KJS::JSObject::toBoolean):
728         (KJS::JSObject::toObject):
729         * kjs/object.h:
730         (KJS::JSObject::getPropertySlot):
731         * kjs/property_map.cpp:
732         (KJS::isValid):
733         (KJS::PropertyMap::put):
734         (KJS::PropertyMap::insert):
735         (KJS::PropertyMap::containsGettersOrSetters):
736         * kjs/property_map.h:
737         (KJS::PropertyMap::hasGetterSetterProperties):
738         * kjs/property_slot.h:
739         * kjs/string_object.cpp:
740         (StringInstance::getPropertyNames):
741         (StringObjectImp::callAsFunction):
742         (StringObjectFuncImp::callAsFunction):
743         * kjs/ustring.cpp:
744         (KJS::UString::Rep::computeHash):
745         (KJS::UString::UString):
746         (KJS::UString::from):
747         (KJS::UString::append):
748         (KJS::UString::ascii):
749         (KJS::UString::operator=):
750         (KJS::UString::find):
751         (KJS::UString::rfind):
752         * kjs/ustring.h:
753         (KJS::UChar::high):
754         (KJS::UChar::low):
755         (KJS::UCharReference::low):
756         (KJS::UCharReference::high):
757         * kjs/value.cpp:
758         (KJS::JSValue::toUInt16):
759         * kjs/value.h:
760         * pcre/pcre_compile.c:
761         (get_othercase_range):
762         * pcre/pcre_exec.c:
763         (match):
764         * pcre/pcre_internal.h:
765         * wtf/HashFunctions.h:
766         (WTF::intHash):
767         (WTF::PtrHash::hash):
768         * wtf/MathExtras.h:
769         (isnan):
770         (lround):
771         (lroundf):
772         * wtf/StringExtras.h:
773         (strncasecmp):
774         * wtf/unicode/icu/UnicodeIcu.h:
775         (WTF::Unicode::isPrintableChar):
776
777 2006-10-26  W. Andy Carrel  <wac@google.com>
778
779         Reviewed by Maciej.
780
781         - Fix http://bugs.webkit.org/show_bug.cgi?id=7445 /
782           <rdar://problem/4614195> (and 7253 / <rdar://4694011>) by changing
783           inline regexps so that they can have \u escaped Unicode sequences and
784           still work properly.
785
786         * kjs/lexer.cpp:
787         (Lexer::Lexer): 
788         (Lexer::setCode):
789         (Lexer::shift): Looking ahead one additional character for the benefit
790         of scanRegExp
791         (Lexer::scanRegExp): Change code to support unicode escapes in inline 
792         regexps.
793         * kjs/lexer.h: Extra lookahead added.
794
795 === Safari-521.29 ===
796
797 2006-10-26  Nikolas Zimmermann  <zimmermann@kde.org>
798
799         Reviewed by Darin.
800
801         Fix build with older gcc 3.3.4.
802
803         * kjs/DateMath.cpp: Remove inline prefix.
804         (KJS::equivalentYearForDST):
805
806 2006-10-26  Darin Adler  <darin@apple.com>
807
808         Reviewed by John.
809
810         - fix iteration of properties of string objects (found because of a warning
811           emitted by the MSVC compiler)
812
813         * kjs/string_object.cpp: (StringInstance::getPropertyNames): Change code that
814         wants to format a number as a string to use UString::from. Before it was using
815         the UString constructor that makes a string from a character!
816
817         * kjs/ustring.h:
818         * kjs/ustring.cpp: Remove the dangerous and not all that helpful UString(char)
819         constructor.
820
821         * kjs/grammar.y: Change code to not depend on the UString(char) constructor.
822         This is potentially more efficient anyway because we could overload the + operator
823         some day to handle char* directly instead of creating a UString.
824
825         * kjs/nodes2string.cpp: (SourceStream::operator<<): Change code to not depend on
826         the UString(char) constructor.
827
828 2006-10-25  Kevin McCullough  <KMcCullough@apple.com>
829
830         Reviewed by Steve (rubber stamp).
831
832         - Link against your local build of JavaScriptCore.lib first, this fixes some errors on release builds of testkjs.
833
834         * JavaScriptCore.vcproj/testkjs/testkjs.vcproj:
835
836 2006-10-25  Geoffrey Garen  <ggaren@apple.com>
837
838         Reviewed by Lou.
839         
840         Removed duplicate symbol declaration.
841
842         * JavaScriptCore.xcodeproj/project.pbxproj:
843         * kjs/grammar.y:
844
845 2006-10-24  Steve Falkenburg  <sfalken@apple.com>
846
847         Build config change
848
849         * JavaScriptCore.vcproj/testkjs/testkjs.vcproj:
850
851 2006-10-24  Kevin McCullough  <KMcCullough@apple.com>
852
853         Reviewed by Brady.
854
855         - 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.
856
857         * kjs/date_object.cpp:
858         (KJS::):
859         (KJS::formatLocaleDate):
860         (KJS::DateProtoFunc::callAsFunction):
861
862 2006-10-23  Kevin McCullough  <KMcCullough@apple.com>
863
864         Reviewed by 
865
866        - Build fix
867
868         * JavaScriptCore.xcodeproj/project.pbxproj:
869         * kjs/grammar.y:
870
871 2006-10-23  Kevin McCullough  <KMcCullough@apple.com>
872
873         Reviewed by Maciej.
874
875         - Makes the toTM function an operator.  Was going to piggy back on a patch but the patch needs more work.
876
877         * kjs/DateMath.cpp:
878         (KJS::equivalentYearForDST):
879         * kjs/DateMath.h:
880         (KJS::GregorianDateTime::operator tm):
881         * kjs/date_object.cpp:
882         (KJS::formatTime):
883         (KJS::DateProtoFunc::callAsFunction):
884
885 2006-10-23  Kevin McCullough  <KMcCullough@apple.com>
886
887         Reviewed by Maciej.
888
889        - 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).
890
891         * kjs/grammar.y:
892         * kjs/object.cpp:
893
894 2006-10-21  Steve Falkenburg  <sfalken@apple.com>
895
896         Reviewed by Adam.
897         
898         Add minimal compatibility with MSVCRT leak checker
899
900         * wtf/FastMalloc.h:
901
902 2006-10-23  Kevin McCullough  <KMcCullough@apple.com>
903
904         Reviewed by Geof.
905
906         - Sets the lowercase range correctly in the test and consolidates a variable to make the test more readable.
907
908        * tests/mozilla/ecma/String/15.5.4.11-2.js:
909
910 2006-10-21  Darin Adler  <darin@apple.com>
911
912         Reviewed by Anders.
913
914         - http://bugs.webkit.org/show_bug.cgi?id=11377
915           swap(Vector, Vector) should be O(1) instead of O(n)
916
917         * wtf/Vector.h:
918         (WTF::VectorBuffer::swap): Added.
919         (WTF::Vector::swap): Added.
920         (WTF::swap): Added overload that takes two Vector objects.
921
922 2006-10-21  Darin Adler  <darin@apple.com>
923
924         Reviewed by Adam.
925
926         - http://bugs.webkit.org/show_bug.cgi?id=11376
927           build scripts should invoke make with "-j" option for multiple processors
928
929         * JavaScriptCore.xcodeproj/project.pbxproj: Pass -j `sysctl -n hw.ncpu` to make.
930
931 2006-10-19  Kevin McCullough  <KMcCullough@apple.com>
932
933         Reviewed by Geof.
934
935         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.
936         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.
937
938         * tests/mozilla/ecma/String/15.5.4.11-2.js:
939
940 2006-10-18  Maciej Stachowiak  <mjs@apple.com>
941
942         Reviewed by Geoff.
943         
944         - remove vestiges of KXMLCore name (former name of WTF).
945
946         * wtf/Assertions.h:
947         * wtf/FastMalloc.h:
948         (operator new):
949         (operator delete):
950         (operator new[]):
951         (operator delete[]):
952         * wtf/FastMallocInternal.h:
953         * wtf/Forward.h:
954         * wtf/GetPtr.h:
955         * wtf/HashCountedSet.h:
956         * wtf/HashFunctions.h:
957         * wtf/HashMap.h:
958         * wtf/HashSet.h:
959         * wtf/HashTable.h:
960         * wtf/HashTraits.h:
961         * wtf/ListRefPtr.h:
962         * wtf/MathExtras.h:
963         * wtf/Noncopyable.h:
964         * wtf/OwnArrayPtr.h:
965         * wtf/OwnPtr.h:
966         * wtf/PassRefPtr.h:
967         * wtf/Platform.h:
968         * wtf/RefPtr.h:
969         * wtf/StringExtras.h:
970         (snprintf):
971         * wtf/UnusedParam.h:
972         * wtf/Vector.h:
973         * wtf/VectorTraits.h:
974
975 2006-10-17  Steve Falkenburg  <sfalken@apple.com>
976
977         Reviewed by Maciej.
978         
979         Adjust include paths
980
981         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
982
983 2006-10-17  Kevin McCullough  <KMcCullough@apple.com>
984
985         Reviewed by Darin.
986
987         Fixed a date issue where the UTC offset was not set in win.
988
989         * kjs/DateMath.cpp:
990         (KJS::getDSTOffsetSimple):
991         (KJS::getDSTOffset):
992         (KJS::msToGregorianDateTime):
993         * kjs/DateMath.h:
994         (KJS::):
995         (KJS::GregorianDateTime::GregorianDateTime):
996
997 2006-10-17  Kevin McCullough  <KMcCullough@apple.com>
998
999         Reviewed by Brady.
1000
1001         Fixes a JavaScriptCore math issue on win.
1002
1003         * kjs/math_object.cpp:
1004         (MathFuncImp::callAsFunction):
1005         * wtf/MathExtras.h:
1006         (wtf_atan2):
1007
1008 2006-10-16  Kevin McCullough  <kmccullough@apple.com>
1009
1010         Reviewed by Geof.
1011
1012         Removed unecessary global specifiers.
1013
1014         * kjs/math_object.cpp:
1015         (MathFuncImp::callAsFunction):
1016
1017 2006-10-16  Kevin McCullough  <KMcCullough@apple.com>
1018
1019         Reviewed by John.
1020
1021         Fixes a compile order issue for testkjs on win.
1022
1023         * JavaScriptCore.vcproj/testkjs/testkjs.vcproj:
1024
1025 2006-10-15  Krzysztof Kowalczyk  <kkowalczyk@gmail.com>
1026
1027         Reviewed by Anders.
1028
1029         Remove junk (as gcc calls it) after #else clause.
1030
1031         * wtf/FastMalloc.cpp:
1032         (WTF::do_free):
1033
1034 2006-10-14  Krzysztof Kowalczyk  <kkowalczyk@gmail.com>
1035
1036         Reviewed by Maciej.
1037
1038         Define KXMLCORE_USE_CURL for platforms that wish to use CURL as
1039         networking, and set it for GDK build
1040
1041         * wtf/Platform.h:
1042
1043 2006-10-13  Marvin Decker  <marv.decker@gmail.com>
1044
1045         Reviewed by Kevin McCullough.
1046
1047         Fixes http://bugs.webkit.org/show_bug.cgi?id=11283
1048         Fixes Qt/Linux and Windows build
1049
1050         * kjs/DateMath.cpp:
1051         * kjs/DateMath.h:
1052         * kjs/date_object.cpp:
1053         (KJS::DateProtoFunc::callAsFunction):
1054
1055 2006-10-13  Kevin McCullough  <KMcCullough@apple.com>
1056
1057         Reviewed by Adam, Geoff, Darin.
1058
1059        Fixed displaying the UTC offset and time zone string, as well as renamed the GregorianDateTime structure and clean up. 
1060
1061         * ChangeLog:
1062         * kjs/DateMath.cpp:
1063         (KJS::getUTCOffset):
1064         (KJS::getDSTOffsetSimple):
1065         (KJS::gregorianDateTimeToMS):
1066         (KJS::msToGregorianDateTime):
1067         * kjs/DateMath.h:
1068         (KJS::GregorianDateTime::GregorianDateTime):
1069         (KJS::GregorianDateTime::~GregorianDateTime):
1070         (KJS::GregorianDateTime::toTM):
1071         * kjs/date_object.cpp:
1072         (KJS::gmtoffset):
1073         (KJS::formatDate):
1074         (KJS::formatDateUTCVariant):
1075         (KJS::formatTime):
1076         (KJS::fillStructuresUsingTimeArgs):
1077         (KJS::fillStructuresUsingDateArgs):
1078         (KJS::DateInstance::getTime):
1079         (KJS::DateInstance::getUTCTime):
1080         (KJS::DateProtoFunc::callAsFunction):
1081         (KJS::DateObjectImp::construct):
1082         (KJS::DateObjectImp::callAsFunction):
1083         (KJS::DateObjectFuncImp::callAsFunction):
1084         (KJS::parseDate):
1085         * kjs/date_object.h:
1086
1087 2006-10-13  Kevin McCullough  <KMcCullough@apple.com>
1088
1089         Reviewed by Adam.
1090
1091         Gets JavaScripCore tests running on windows.
1092
1093         * Scripts/run-javascriptcore-tests:
1094         * Scripts/webkitdirs.pm:
1095
1096 2006-10-12  Geoffrey Garen  <ggaren@apple.com>
1097
1098         Reviewed by Maciej.
1099         
1100         Removed JSObjectMakeWithPrototype, clarified some comments. We really
1101         don't want people to manage their own prototypes, so we don't want an
1102         extra function in the API devoted to just that. People can still manage
1103         their own prototypes if they really want by using JSObjectSetPrototype.
1104
1105         * API/JSClassRef.cpp:
1106         (OpaqueJSClass::createNoAutomaticPrototype):
1107         (OpaqueJSClass::create):
1108         * API/JSClassRef.h:
1109         * API/JSObjectRef.cpp:
1110         (JSClassCreate):
1111         (JSObjectMake):
1112         * API/JSObjectRef.h:
1113         * API/testapi.c:
1114         (main):
1115         * JavaScriptCore.exp:
1116
1117 2006-10-12  Kevin McCullough  <KMcCullough@apple.com>
1118
1119         Reviewed by Adam.
1120
1121         Build breakage fix
1122
1123         * kjs/DateMath.cpp:
1124         (KJS::msToTM):
1125         * kjs/date_object.cpp:
1126         (KJS::gmtoffset):
1127
1128 2006-10-11  Kevin McCullough  <KMcCullough@apple.com>
1129
1130         Reviewed by Geoff.
1131
1132         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.
1133
1134         * kjs/DateMath.cpp:
1135         (KJS::timeToMS):
1136         (KJS::getUTCOffset):
1137         (KJS::getDSTOffsetSimple):
1138         (KJS::dateToMS):
1139         (KJS::msToTM):
1140         (KJS::tmToKJStm):
1141         (KJS::KJStmToTm):
1142         * kjs/DateMath.h:
1143         * kjs/date_object.cpp: 
1144         (KJS::gmtoffset): 
1145         (KJS::formatTime): 
1146         (KJS::DateProtoFunc::callAsFunction): 
1147         (KJS::DateObjectImp::construct):
1148         (KJS::DateObjectImp::callAsFunction):
1149         (KJS::DateObjectFuncImp::callAsFunction):
1150         (KJS::parseDate):
1151         * kjs/date_object.h:
1152
1153 2006-10-09  Krzysztof Kowalczyk  <kkowalczyk@gmail.com>
1154
1155         Reviewed by Geoff.
1156
1157         Improve gdk build compiler flags (show warning, no rtti and exceptions).
1158
1159         * jscore.bkl:
1160
1161 2006-10-06  Kevin McCullough  <KMcCullough@apple.com>
1162
1163         Reviewed by Brady.
1164
1165         DST and TimeZones were wrong in some cases, specifically on some of the dates where DST changes.
1166
1167         * kjs/DateMath.cpp:
1168         (KJS::equivalentYearForDST):
1169         (KJS::getUTCOffset):
1170         (KJS::getDSTOffsetSimple):
1171         (KJS::getDSTOffset):
1172         (KJS::dateToMseconds):
1173         (KJS::msToTM):
1174         * kjs/DateMath.h:
1175         * kjs/date_object.cpp:
1176         (KJS::gmtoffset):
1177
1178 2006-10-05  Darin Adler  <darin@apple.com>
1179
1180         Reviewed by Kevin McCullough.
1181
1182         * wtf/Assertions.cpp: Fix build when _DEBUG is not defined.
1183
1184 2006-10-04  Kevin McCullough  <KMcCullough@apple.com>
1185
1186         Reviewed by Adam.
1187
1188         - 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.
1189
1190         * kjs/DateMath.cpp:
1191         (KJS::getUTCOffset):
1192         (KJS::msToTM):
1193         * kjs/date_object.cpp:
1194         (KJS::gmtoffset):
1195         (KJS::formatTime):
1196
1197 2006-10-04  Geoffrey Garen  <ggaren@apple.com>
1198
1199         Patch by Darin and me, reviewed by Maciej.
1200
1201         Fixed <rdar://problem/4518397> REGRESSION(?): Oft-seen but unrepro crash 
1202               in JavaScript garbage collection (KJS::Collector::collect())
1203                <rdar://problem/4752492> Crash in KJS::collect
1204               
1205         The issue here was allocating one garbage-collected object in the midst 
1206         of allocating a second garbage-collected object. In such a case, the
1207         zeroIfFree word lies.
1208
1209         * kjs/collector.cpp:
1210         (KJS::Collector::allocate):
1211         (KJS::Collector::collect):
1212
1213 2006-10-04  Kevin McCullough  <KMcCullough@apple.com>
1214
1215         Reviewed by Adam.
1216
1217         - Layout test fix
1218
1219         * kjs/DateMath.cpp:
1220         (KJS::dateToDayInYear): accept and correctly handle negative months
1221
1222 2006-10-05  Kevin McCullough  <KMcCullough@apple.com>
1223
1224        build fix
1225
1226         * kjs/DateMath.cpp:
1227         (KJS::dateToDayInYear):
1228
1229 2006-10-05  Mark Rowe  <bdash@webkit.org>
1230
1231         Reviewed by maculloch.
1232
1233         Gdk build fix.
1234
1235         * JavaScriptCoreSources.bkl: Add DateMath.cpp to file list.
1236
1237 2006-10-05  Kevin McCullough  <KMcCullough@apple.com>
1238
1239         Reviewed by aroben
1240
1241         - build fix
1242
1243         * JavaScriptCore.xcodeproj/project.pbxproj:
1244
1245 2006-10-04  Nikolas Zimmermann  <zimmermann@kde.org>
1246
1247         Reviewed by Mitz.
1248
1249         Fix Qt/Linux build by adding DateMath.cpp to compilation.
1250
1251         * CMakeLists.txt: Also replace tabs with spaces.
1252
1253 2006-10-04  Kevin McCullough  <KMcCullough@apple.com>
1254
1255         Reviewed by DethBakin.
1256
1257         - 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.
1258
1259         * kjs/DateMath.cpp:
1260         (KJS::msToYear):
1261         (KJS::dayInYear):
1262         (KJS::dateToDayInYear):
1263
1264 2006-10-05  Darin Adler  <darin@apple.com>
1265
1266         Reviewed by Adam.
1267
1268         * wtf/Assertions.cpp: Changed assertion formatting to omit the "======"
1269         lines so you can see more assertions in less space. Also improved format
1270         of file/line information so it works with more development environments.
1271
1272 2006-10-04  Kevin McCullough  <KMcCullough@apple.com>
1273
1274         Reviewed by Tim H.
1275
1276         - The build machine is more sensitive about automatic conversions.  These fixes exp
1277 licitly cast or change the input and return types of functions to avoid conversions.
1278
1279         * JavaScriptCore.xcodeproj/project.pbxproj:
1280         * kjs/DateMath.cpp:
1281         (KJS::):
1282         (KJS::msToDays):
1283         (KJS::msToYear):
1284         (KJS::dayInYear):
1285         (KJS::monthToDayInYear):
1286         (KJS::dateToDayInYear):
1287         (KJS::getDSTOffsetSimple):
1288         (KJS::getDSTOffset):
1289         (KJS::dateToMseconds):
1290         (KJS::msToTM):
1291
1292 2006-10-04  Kevin McCullough  <KMcCullough@apple.com>
1293
1294         Reviewed by GGaren
1295
1296         - 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.
1297
1298         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
1299         * JavaScriptCore.xcodeproj/project.pbxproj:
1300         * kjs/DateMath.cpp: Added.
1301         (KJS::):
1302         (KJS::daysInYear):
1303         (KJS::daysFrom1970ToYear):
1304         (KJS::msFrom1970ToYear):
1305         (KJS::msToDays):
1306         (KJS::msToYear):
1307         (KJS::isLeapYear):
1308         (KJS::isInLeapYear):
1309         (KJS::dayInYear):
1310         (KJS::msToMilliseconds):
1311         (KJS::msToWeekDay):
1312         (KJS::msToSeconds):
1313         (KJS::msToMinutes):
1314         (KJS::msToHours):
1315         (KJS::msToMonth):
1316         (KJS::msToDayInMonth):
1317         (KJS::monthToDayInYear):
1318         (KJS::timeToMseconds):
1319         (KJS::dateToDayInYear):
1320         (KJS::equivalentYearForDST):
1321         (KJS::getUTCOffset):
1322         (KJS::getDSTOffsetSimple):
1323         (KJS::getDSTOffset):
1324         (KJS::localTimeToUTC):
1325         (KJS::UTCToLocalTime):
1326         (KJS::dateToMseconds):
1327         (KJS::msToTM):
1328         (KJS::isDST):
1329         * kjs/DateMath.h: Added.
1330         (KJS::):
1331         * kjs/date_object.cpp:
1332         (KJS::gmtoffset):
1333         (KJS::formatTime):
1334         (KJS::DateInstance::getTime):
1335         (KJS::DateInstance::getUTCTime):
1336         (KJS::DateProtoFunc::callAsFunction):
1337         (KJS::DateObjectImp::construct):
1338         (KJS::DateObjectFuncImp::callAsFunction):
1339         (KJS::parseDate):
1340         * kjs/testkjs.cpp:
1341         * os-win32/stdint.h:
1342
1343 2006-10-02  Nikolas Zimmermann  <zimmermann@kde.org>
1344
1345         Reviewed/landed by Adam.
1346
1347         Build testkjs on Qt/Linux.
1348
1349         * CMakeLists.txt:
1350
1351 2006-10-02  Nikolas Zimmermann  <zimmermann@kde.org>
1352
1353         Reviewed by eseidel.  Landed by eseidel.
1354
1355         Fix win32 build, which has no inttypes.h
1356
1357         * wtf/Assertions.h:
1358
1359 2006-10-02  Nikolas Zimmermann <zimmermann@kde.org>
1360
1361         Reviewed by eseidel & mjs.  Landed by eseidel.
1362
1363         Fix Qt/Linux build with older gcc 3.3.4.
1364         http://bugs.webkit.org/show_bug.cgi?id=11116
1365  
1366         * kjs/lookup.h: Move cacheGlobalObject into KJS namespace.
1367         (KJS::cacheGlobalObject): Also remove GCC_ROOT_NS_HACK.
1368         * wtf/Assertions.h: Include inttypes.h for uintptr_t.
1369
1370 2006-09-28  Steve Falkenburg  <sfalken@apple.com>
1371
1372         Reviewed by Maciej.
1373         
1374         Use $(ConfigSuffix) set via vsprops files to add _debug
1375         to end of debug filenames.
1376
1377         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
1378         * JavaScriptCore.vcproj/debug.vsprops: Added.
1379         * JavaScriptCore.vcproj/dftables/dftables.vcproj:
1380         * JavaScriptCore.vcproj/release.vsprops: Added.
1381         * JavaScriptCore.vcproj/testkjs/testkjs.vcproj:
1382
1383 2006-09-28  Darin Adler  <darin@apple.com>
1384
1385         Reviewed by Alice.
1386
1387         - support for change that should fix <rdar://problem/4733044>
1388           REGRESSION: XML iBench shows 10% perf. regression (copying
1389           strings while decoding)
1390
1391         * wtf/Vector.h: Changed VectorBuffer so that the general case
1392         contains an instance of the 0 case, since deriving from it
1393         was violating the Liskov Substitution Principle.
1394         (WTF::VectorBuffer::releaseBuffer): Added. Releases the buffer so it can
1395         be adopted by another data structure that uses the FastMalloc.h allocator.
1396         Returns 0 if the internal buffer was being used.
1397         (WTF::Vector::releaseBuffer): Added. Releases the buffer as above or creates
1398         a new one in the case where the internal buffer was being used.
1399
1400 2006-09-28  Maciej Stachowiak  <mjs@apple.com>
1401
1402         Reviewed by Geoff.
1403         
1404         - change garbage collection to happen at increments proportional to number of live objects, not always
1405         every 1000 allocations
1406
1407         * kjs/collector.cpp:
1408         (KJS::Collector::allocate):
1409
1410 2006-09-28  Maciej Stachowiak  <mjs@apple.com>
1411
1412         Reviewed by Mitz.
1413
1414         - fixed REGRESSION (r16606): javascriptCore Crash on website load
1415         
1416         Plus style fixes.
1417         
1418             - fixed some possible off-by-one bugs
1419             - use indexing, not iterators, for Vectors
1420             - store Vector by pointer instead of by value to avoid blowing out FunctionImp size
1421         
1422         * kjs/function.cpp:
1423         (KJS::FunctionImp::addParameter):
1424         (KJS::FunctionImp::parameterString):
1425         (KJS::FunctionImp::processParameters):
1426         (KJS::FunctionImp::lengthGetter):
1427         (KJS::FunctionImp::getParameterName):
1428         * kjs/function.h:
1429
1430 2006-09-27  Steve Falkenburg  <sfalken@apple.com>
1431
1432         Reviewed by Maciej.
1433         
1434         More build tweaks
1435
1436         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
1437         * JavaScriptCore.vcproj/JavaScriptCore/dstroot-to-sdk.cmd: Removed.
1438
1439 2006-09-27  John Sullivan  <sullivan@apple.com>
1440
1441         * kjs/function.cpp:
1442         (KJS::FunctionImp::getParameterName):
1443         removed assertion that displeased gcc 4.0.1 (build 5420):
1444         ASSERT(static_cast<size_t>(index) == index);
1445
1446 2006-09-27  Kevin McCullough  <KMcCullough@apple.com>
1447
1448         Reviewed by GGaren.
1449
1450         Cleanup of previous fix which was to address Radar: 4752492
1451
1452         * kjs/function.cpp:
1453         (KJS::FunctionImp::addParameter):
1454         (KJS::FunctionImp::parameterString):
1455         (KJS::FunctionImp::processParameters):
1456         (KJS::FunctionImp::lengthGetter):
1457         (KJS::FunctionImp::getParameterName):
1458         * kjs/function.h:
1459
1460 2006-09-27  Kevin McCullough  <KMcCullough@apple.com>
1461
1462         Reviewed by Adele.
1463
1464         Fixes a GC stack overflow crash.
1465         The change is to move from a linked list implementation of Parameters to a Vector.
1466         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. 
1467
1468         * kjs/function.cpp:
1469         (KJS::Parameter::Parameter):
1470         (KJS::FunctionImp::addParameter):
1471         (KJS::FunctionImp::parameterString):
1472         (KJS::FunctionImp::processParameters):
1473         (KJS::FunctionImp::lengthGetter):
1474         (KJS::FunctionImp::getParameterName):
1475         * kjs/function.h:
1476
1477 2006-09-27  Steve Falkenburg  <sfalken@apple.com>
1478
1479         Fix last path fix.
1480
1481         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
1482
1483 2006-09-27  Steve Falkenburg  <sfalken@apple.com>
1484
1485         Set path before build.
1486
1487         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
1488
1489 2006-09-27  Sean Gies  <seangies@apple.com>
1490
1491         Reviewed by Adam Roben.
1492
1493         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj: Debug config should link to debug runtime.
1494         * JavaScriptCore.vcproj/dftables/dftables.vcproj: Debug config should link to debug runtime.
1495
1496 2006-09-27  Don Melton  <gramps@apple.com>
1497
1498         Reviewed by Adam Roben.
1499
1500         Changed line ending from DOS to UNIX format so it doesn't die running
1501         on my machine. ;)
1502
1503         * JavaScriptCore.vcproj/JavaScriptCore/build-generated-files.sh:
1504
1505 2006-09-23  Alexey Proskuryakov  <ap@nypop.com>
1506
1507         Reviewed by Maciej.
1508
1509         http://bugs.webkit.org/show_bug.cgi?id=10183
1510         REGRESSION: obfuscated JS decoding breaks because of soft hyphen removal
1511         (Fanfiction.net author pages not listing stories)
1512
1513         Rolled out the fix for bug 4139.
1514
1515         * kjs/lexer.cpp:
1516         (Lexer::setCode):
1517         (Lexer::shift):
1518         * tests/mozilla/ecma/Array/15.4.5.1-1.js:
1519         * tests/mozilla/expected.html:
1520
1521 2006-09-22  Steve Falkenburg  <sfalken@apple.com>
1522
1523         Build fix.
1524
1525         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
1526
1527 2006-09-22  Darin Adler  <darin@apple.com>
1528
1529         Reviewed by Alice.
1530
1531         * wtf/Vector.h: Add an append that takes a pointer and length.
1532         Generalize the existing Vector append to work on vectors with
1533         any value for inlineCapacity. Change the append algorithm so
1534         it doesn't check capacity each time through the loop.
1535
1536 2006-09-22  Steve Falkenburg  <sfalken@apple.com>
1537
1538         Fix release build.
1539
1540         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
1541
1542 2006-09-21  Geoffrey Garen  <ggaren@apple.com>
1543
1544         Reviewed by Maciej.
1545
1546         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
1547         Updated to include the right path.
1548         * wtf/FastMalloc.h: #include Platform.h, since we use Platform macros.
1549
1550 === Safari-521.27 ===
1551
1552 2006-09-20  Anders Carlsson  <acarlsson@apple.com>
1553
1554         Reviewed by Dave Hyatt.
1555
1556         * wtf/MathExtras.h:
1557         Get rid of lrint.
1558
1559 2006-09-20  Sean Gies  <seangies@apple.com>
1560
1561         Reviewed by Steve Falkenburg.
1562
1563         * wtf/Assertions.cpp: Debug messages should go into debugger console.
1564
1565 2006-09-20  David Hyatt  <hyatt@apple.com>
1566
1567         Add an implementation of lrint for Win32.
1568
1569         Reviewed by anders
1570
1571         * wtf/MathExtras.h:
1572         (lrint):
1573
1574 2006-09-15  Krzysztof Kowalczyk  <kkowalczyk@gmail.com>
1575
1576         Reviewed by Adam.
1577
1578         http://bugs.webkit.org/show_bug.cgi?id=10864
1579         Bug 10864: Linux\GDK build fixes
1580
1581         * JavaScriptCoreSources.bkl:
1582         * jscore.bkl:
1583
1584 2006-09-15  Adam Roben  <aroben@apple.com>
1585
1586         Windows build fix.
1587
1588         * JavaScriptCore.vcproj/JavaScriptCore/build-generated-files.sh:
1589
1590 2006-09-15  Anders Carlsson  <acarlsson@apple.com>
1591
1592         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
1593         Fix the release build.
1594
1595 2006-09-15  Anders Carlsson  <acarlsson@apple.com>
1596
1597         Reviewed by Steve.
1598
1599         Add JavaScriptCore API to the build.
1600         * API/JSBase.cpp:
1601         * API/JSCallbackConstructor.cpp:
1602         * API/JSCallbackFunction.cpp:
1603         * API/JSCallbackObject.cpp:
1604         * API/JSClassRef.cpp:
1605         * API/JSContextRef.cpp:
1606         * API/JSObjectRef.cpp:
1607         * API/JSStringRef.cpp:
1608         * API/JSValueRef.cpp:
1609         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
1610         * os-win32/stdbool.h: Added.
1611
1612 2006-09-12  Steve Falkenburg  <sfalken@apple.com>
1613
1614         Reviewed by Ada.
1615         
1616         Build tweaks (doing JavaScriptCore now since it doesn't have
1617         dependencies).
1618
1619         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
1620         * JavaScriptCore.vcproj/JavaScriptCore/build-generated-files.sh:
1621         * JavaScriptCore.vcproj/JavaScriptCore/dstroot-to-sdk.cmd: Added.
1622         * JavaScriptCore.vcproj/dftables/dftables.vcproj:
1623         * JavaScriptCore.vcproj/testkjs/testkjs.vcproj:
1624
1625 2006-09-11  Brady Eidson  <beidson@apple.com>
1626
1627         Build fix - I think Tim's last checkin wasn't tested on Tiger, possibly.  I simply
1628         commented out the undefined constants until he can have a chance to make the right call
1629
1630         * bindings/objc/objc_utility.mm:
1631         (KJS::Bindings::objcValueTypeForType): Commented out undefined symbols
1632
1633 2006-09-11  Timothy Hatcher  <timothy@apple.com>
1634
1635         Reviewed by Tim O. and Darin.
1636
1637         Add support for more method signatures affecting ObjC methods called from JavaScript:
1638         - Added unsigned types and long long.
1639         - Allow methods that use const, oneway, bycopy and byref type modifiers.
1640
1641         * bindings/objc/objc_instance.mm:
1642         (ObjcInstance::invokeMethod):
1643         * bindings/objc/objc_utility.h:
1644         (KJS::Bindings::):
1645         * bindings/objc/objc_utility.mm:
1646         (KJS::Bindings::convertValueToObjcValue):
1647         (KJS::Bindings::convertObjcValueToValue):
1648         (KJS::Bindings::objcValueTypeForType):
1649
1650 2006-09-05  Timothy Hatcher  <timothy@apple.com>
1651
1652         Reviewed by Tim O.
1653
1654         <rdar://problem/4715840> SEL is not char*
1655
1656         * bindings/objc/objc_class.mm:
1657         (KJS::Bindings::ObjcClass::methodsNamed): use sel_getName instead of a char* cast.
1658         * bindings/objc/objc_runtime.mm:
1659         (ObjcFallbackObjectImp::callAsFunction): ditto
1660
1661 2006-09-03  Alexey Proskuryakov  <ap@nypop.com>
1662
1663         Reviewed by Tim H.
1664
1665         http://bugs.webkit.org/show_bug.cgi?id=10693
1666         Convert JavaScript arrays to AppleScript lists
1667
1668         * JavaScriptCore.exp: Export ArrayInstance::info and ArrayInstance::getItem().
1669         * kjs/array_instance.h:
1670         * kjs/array_object.cpp:
1671         (ArrayInstance::getItem): Added a method to access array items from C++.
1672
1673 2006-09-02  Krzysztof Kowalczyk  <kkowalczyk@gmail.com>
1674
1675         Reviewed by Tim H.
1676
1677         Bug 10454: Unix bakefile fixes
1678         http://bugs.webkit.org/show_bug.cgi?id=10454
1679
1680         * JavaScriptCoreSources.bkl:
1681
1682 2006-09-01  Nikolas Zimmermann  <zimmermann@kde.org>
1683
1684         Reviewed by hyatt.  Landed by eseidel.
1685
1686         Fix build on Linux.
1687
1688         * pcre/CMakeLists.txt: Add wtf/ include.
1689
1690 2006-09-01  Nikolas Zimmermann  <zimmermann@kde.org>
1691
1692         Reviewed and landed by ap.
1693
1694         Fix build on Linux (C89 without gcc extensions enabled).
1695
1696         * pcre/pcre_internal.h: Use C style comments.
1697         * wtf/Assertions.h: Use C style comments.
1698         * wtf/Platform.h: Use C style comments.
1699
1700 2006-09-01  Steve Falkenburg  <sfalken@apple.com>
1701
1702         Fix build.
1703
1704         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
1705         * JavaScriptCore.vcproj/dftables/dftables.vcproj:
1706
1707 2006-08-31  Anders Carlsson  <acarlsson@apple.com>
1708
1709         Reviewed by Darin.
1710         
1711         Add new portability functions to MathExtras.h and add StringExtras.h which is for
1712         string portability functions.
1713         
1714         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
1715         * bindings/c/c_instance.cpp:
1716         * kjs/date_object.cpp:
1717         * wtf/MathExtras.h:
1718         (copysign):
1719         (isfinite):
1720         * wtf/StringExtras.h: Added.
1721         (snprintf):
1722         (strncasecmp):
1723
1724 2006-08-31  Anders Carlsson  <acarlsson@apple.com>
1725
1726         Reviewed by Tim H.
1727         
1728         Fix Windows build.
1729         
1730         * JavaScriptCore.vcproj/dftables/dftables.vcproj:
1731         * pcre/pcre_internal.h:
1732
1733 2006-08-31  Timothy Hatcher  <timothy@apple.com>
1734
1735         Reviewed by Geoff.
1736
1737         Band-aid fix for PCRE to compile for ppc64 and x86_64 now that
1738         we use -Wshorten-64-to-32. Adds an INT_CAST macro that ASSERTs
1739         the value <= INT_MAX.
1740
1741         I filed <rdar://problem/4712064> to track the need to verify
1742         PCRE's 64-bit compliance.
1743
1744         * pcre/pcre_compile.c:
1745         (complete_callout):
1746         (compile_branch):
1747         (compile_regex):
1748         (pcre_compile2):
1749         * pcre/pcre_exec.c:
1750         (match):
1751         (pcre_exec):
1752         * pcre/pcre_get.c:
1753         (pcre_get_substring_list):
1754         * pcre/pcre_internal.h:
1755         * pcre/pcre_tables.c:
1756         * pcre/pcre_try_flipped.c:
1757         (_pcre_try_flipped):
1758
1759 2006-08-30  Darin Adler  <darin@apple.com>
1760
1761         Reviewed by Tim Hatcher.
1762
1763         - add WTF::getPtr, a function template that makes it possible to write
1764           generic code that gets a raw pointer out of any of our pointer types
1765
1766         * JavaScriptCore.xcodeproj/project.pbxproj:
1767         * wtf/GetPtr.h: Added.
1768         * wtf/ListRefPtr.h: (WTF::getPtr): Added.
1769         * wtf/OwnArrayPtr.h: (WTF::getPtr): Added.
1770         * wtf/OwnPtr.h: (WTF::getPtr): Added.
1771         * wtf/PassRefPtr.h: (WTF::getPtr): Added.
1772         * wtf/RefPtr.h: (WTF::getPtr): Added.
1773
1774 2006-08-29  waylonis  <waylonis@google.com>
1775
1776         Reviewed, tweaked by ggaren.
1777
1778         - Added storage and accessor functions for ExecState as a fix for
1779           http://bugs.webkit.org/show_bug.cgi?id=10114
1780         
1781         * kjs/ExecState.cpp:
1782         (KJS::ExecState::ExecState):
1783         * kjs/ExecState.h:
1784         * kjs/context.h:
1785         (KJS::Context::setExecState):
1786         (KJS::Context::execState):
1787
1788 2006-08-30  Nikolas Zimmermann  <zimmermann@kde.org>
1789
1790         Reviewed by Tim H.
1791
1792         Commit KDE related tweaks, to be able to
1793         differentiate between a Qt-only or a KDE build.
1794
1795         * CMakeLists.txt: Install wtf-unity library.
1796         * wtf/Platform.h: Add define for the KDE platform.
1797
1798 2006-08-28  Darin Adler  <darin@apple.com>
1799
1800         Reviewed by Geoff.
1801
1802         * kjs/list.h: Use explicit in constructor (as appropriate).
1803
1804 2006-08-24  Nikolas Zimmermann  <zimmermann@kde.org>
1805
1806         Reviewed, tweaked and landed by ap
1807
1808         http://bugs.webkit.org/show_bug.cgi?id=10467
1809         WebKit should have Qt platform support (Part II)
1810
1811         * CMakeLists.txt: Adjust to Anders' build fixes.
1812         * wtf/Platform.h: Fix define for the Qt platform (we don't use/need Cairo.)
1813
1814 2006-08-23  David Hyatt  <hyatt@apple.com>
1815
1816         Fix Platform.h to include #defines for graphics features.
1817
1818         Reviewed by darin
1819
1820         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
1821         * wtf/Platform.h:
1822
1823 2006-08-23  Anders Carlsson  <acarlsson@apple.com>
1824
1825         Reviewed by Darin.
1826
1827         Make the bindings compile without CoreFoundation.
1828         
1829         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
1830         * bindings/c/c_instance.cpp:
1831         * bindings/c/c_utility.cpp:
1832         (KJS::Bindings::convertUTF8ToUTF16):
1833         * bindings/npapi.h:
1834         * bindings/runtime.cpp:
1835         (KJS::Bindings::Instance::createBindingForLanguageInstance):
1836         (KJS::Bindings::Instance::createLanguageInstanceForValue):
1837         * bindings/runtime_root.cpp:
1838         * bindings/runtime_root.h:
1839         * kjs/interpreter.cpp:
1840         (KJS::Interpreter::createLanguageInstanceForValue):
1841         * kjs/interpreter.h:
1842
1843 2006-08-22  Anders Carlsson  <acarlsson@apple.com>
1844
1845         Reviewed by Darin.
1846
1847         Move the npruntime code over to using HashMap and the runtime_root code over to using 
1848         HashMap and HashCountedSet.
1849         
1850         * bindings/NP_jsobject.cpp:
1851         * bindings/c/c_utility.cpp:
1852         (KJS::Bindings::identifierFromNPIdentifier):
1853         * bindings/c/c_utility.h:
1854         * bindings/jni/jni_jsobject.cpp:
1855         (JavaJSObject::invoke):
1856         * bindings/npruntime.cpp:
1857         (getStringIdentifierMap):
1858         (getIntIdentifierMap):
1859         (_NPN_GetStringIdentifier):
1860         (_NPN_GetIntIdentifier):
1861         * bindings/runtime_root.cpp:
1862         (getReferencesByRootMap):
1863         (getReferencesSet):
1864         (KJS::Bindings::findReferenceSet):
1865         (KJS::Bindings::rootForImp):
1866         (KJS::Bindings::rootForInterpreter):
1867         (KJS::Bindings::addNativeReference):
1868         (KJS::Bindings::removeNativeReference):
1869         (RootObject::removeAllNativeReferences):
1870         * bindings/runtime_root.h:
1871
1872 2006-08-22  Anders Carlsson  <acarlsson@apple.com>
1873
1874         Reviewed by Geoff.
1875         
1876         Switch over the NPAPI and Java bindings to using HashMaps instead of dictionaries.
1877         
1878         * JavaScriptCore.xcodeproj/project.pbxproj:
1879         * bindings/c/c_class.cpp:
1880         (KJS::Bindings::CClass::CClass):
1881         (KJS::Bindings::CClass::~CClass):
1882         (KJS::Bindings::CClass::classForIsA):
1883         (KJS::Bindings::CClass::methodsNamed):
1884         (KJS::Bindings::CClass::fieldNamed):
1885         * bindings/c/c_class.h:
1886         * bindings/jni/jni_class.cpp:
1887         (JavaClass::JavaClass):
1888         (JavaClass::~JavaClass):
1889         (JavaClass::methodsNamed):
1890         (JavaClass::fieldNamed):
1891         * bindings/jni/jni_class.h:
1892         * bindings/objc/objc_class.h:
1893         * bindings/objc/objc_class.mm:
1894         (KJS::Bindings::deleteMethod):
1895         (KJS::Bindings::deleteField):
1896         (KJS::Bindings::):
1897         (KJS::Bindings::ObjcClass::methodsNamed):
1898         (KJS::Bindings::ObjcClass::fieldNamed):
1899         * bindings/runtime.cpp:
1900         * bindings/runtime.h:
1901         * bindings/runtime_object.cpp:
1902         (RuntimeObjectImp::fieldGetter):
1903         (RuntimeObjectImp::getOwnPropertySlot):
1904         (RuntimeObjectImp::put):
1905         (RuntimeObjectImp::canPut):
1906
1907 2006-08-21  Vladimir Olexa  <vladimir.olexa@gmail.com>
1908
1909         Reviewed by Darin.
1910
1911         http://bugs.webkit.org/show_bug.cgi?id=6252
1912         JavaScript 1.6 Array.lastIndexOf
1913
1914         Test: fast/js/array-lastIndexOf.html
1915
1916         * kjs/array_object.cpp:
1917         (ArrayProtoFunc::callAsFunction): Added a LastIndexOf case.
1918         * kjs/array_object.h:
1919         (KJS::ArrayProtoFunc::): Added LastIndexOf to enum.
1920         * tests/mozilla/expected.html: Two more tests now pass.
1921
1922 2006-08-20  Nikolas Zimmermann  <zimmermann@kde.org>
1923
1924         Reviewed by Maciej. Landed by rwlbuis.
1925
1926         Fixes parts of: http://bugs.webkit.org/show_bug.cgi?id=10463
1927         WebKit should have Qt platform support
1928
1929         Removing obsolete QConstString/QString constructors in kjs code.
1930
1931         * kjs/identifier.h:
1932         * kjs/ustring.h:
1933
1934 2006-08-17  Nikolas Zimmermann  <zimmermann@kde.org>
1935
1936         Reviewed by Maciej. Landed by rwlbuis.
1937
1938         Fixes: http://bugs.webkit.org/show_bug.cgi?id=10463
1939         WTF Changes needed for Qt platform code.
1940
1941         * wtf/Platform.h:
1942         * wtf/unicode/UnicodeDecomposition.h: Added.
1943         (WTF::Unicode::):
1944         * wtf/unicode/UnicodeDirection.h: Added.
1945         (WTF::Unicode::):
1946         * wtf/unicode/qt4/UnicodeQt4.cpp: Added.
1947         (WTF::Unicode::direction):
1948         (WTF::Unicode::category):
1949         (WTF::Unicode::decomposition):
1950         * wtf/unicode/qt4/UnicodeQt4.h:
1951         (WTF::Unicode::toLower):
1952         (WTF::Unicode::toUpper):
1953         (WTF::Unicode::isPrintableChar):
1954         (WTF::Unicode::isSpace):
1955         (WTF::Unicode::isPunct):
1956         (WTF::Unicode::isDigit):
1957         (WTF::Unicode::mirroredChar):
1958         (WTF::Unicode::compare):
1959
1960 2006-08-17  Nikolas Zimmermann  <zimmermann@kde.org>
1961
1962         Reviewed by Eric. Landed by rwlbuis.
1963
1964         Fixes: http://bugs.webkit.org/show_bug.cgi?id=10464
1965         Offer a cmake build system for Qt platform.
1966
1967         * CMakeLists.txt: Added.
1968         * pcre/CMakeLists.txt: Added.
1969
1970 2006-08-17  Anders Carlsson  <acarlsson@apple.com>
1971
1972         Reviewed by Maciej.
1973
1974         * bindings/npapi.h:
1975         Fix ifdef.
1976
1977 2006-08-15  Steve Falkenburg  <sfalken@apple.com>
1978
1979         Reviewed by mjs.
1980         
1981         Build fix.
1982
1983         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
1984         * wtf/Assertions.h:
1985
1986 2006-08-15  Mark Rowe  <opendarwin.org@bdash.net.nz>
1987
1988         Reviewed by Tim H.
1989
1990         Build fix:  DWARF and -gfull are incompatible with symbol separation.
1991
1992         * JavaScriptCore.xcodeproj/project.pbxproj:
1993
1994 2006-08-15  Mark Rowe  <opendarwin.org@bdash.net.nz>
1995
1996         Reviewed by Tim H.
1997
1998         http://bugs.webkit.org/show_bug.cgi?id=10394
1999         Bug 10394: WebKit Release and Production configurations should enable dead code stripping
2000
2001         * JavaScriptCore.xcodeproj/project.pbxproj:
2002
2003 2006-08-15  Mark Rowe  <opendarwin.org@bdash.net.nz>
2004
2005         Reviewed by Tim H.
2006
2007         http://bugs.webkit.org/show_bug.cgi?id=10384
2008         Bug 10384: Switch to DWARF for Release configuration
2009
2010         * JavaScriptCore.xcodeproj/project.pbxproj:
2011
2012 2006-08-13  Maks Orlovich  <maksim@kde.org>
2013
2014         Reviewed (and tweaked a little) by Maciej.
2015         
2016         - shrank the size of JSObject by 8 bytes and made the corresponding reduction to the cell size, resulting
2017         in a 1.2% speed improvement on JS iBench (and probably overall memory savings).
2018
2019         This was done by removing _scope and _internalValue data members
2020         from JSObject and moving them only to the subclasses that actually
2021         make use of them.
2022         
2023         * kjs/object.cpp: 
2024         (KJS::JSObject::mark): No need to mark scope or internal value here.
2025         * kjs/object.h:
2026         (KJS::JSObject::JSObject): Don't initialize them.
2027         * kjs/JSWrapperObject.cpp: Added. New base class for object types that
2028         wrap primitive values (Number, String, Boolean, Date).
2029         (KJS::JSWrapperObject::mark): 
2030         * kjs/JSWrapperObject.h: Added.
2031         (KJS::JSWrapperObject::JSWrapperObject):
2032         (KJS::JSWrapperObject::internalValue):
2033         (KJS::JSWrapperObject::setInternalValue):
2034         * kjs/array_object.cpp:
2035         (ArrayPrototype::ArrayPrototype): Don't set useless internal value.
2036         * kjs/bool_object.cpp:
2037         (BooleanInstance::BooleanInstance): Inherit from JSWrapperObject.
2038         (BooleanProtoFunc::callAsFunction): Fixed to account for fact that not all
2039         JSObjects have an internal value.
2040         (BooleanObjectImp::construct): ditto.
2041         * kjs/bool_object.h:
2042         * kjs/collector.cpp: Lowered cell size to 48.
2043         (KJS::Collector::allocate): meaningless whitespace change
2044         * kjs/date_object.cpp:
2045         (KJS::DateInstance::DateInstance): Inherit from JSWrapperObject.
2046         (KJS::DateProtoFunc::callAsFunction): adjusted for move of internalValue
2047         (KJS::DateObjectImp::construct): ditto
2048         * kjs/date_object.h:
2049         * kjs/error_object.cpp:
2050         (ErrorPrototype::ErrorPrototype): don't set internal value
2051         * kjs/function.cpp: move _scope and related handling here
2052         (KJS::FunctionImp::mark): mark scope
2053         * kjs/function.h:
2054         (KJS::FunctionImp::scope): moved here from JSObject
2055         (KJS::FunctionImp::setScope): ditto
2056         * kjs/number_object.cpp:
2057         (NumberInstance::NumberInstance): inherit from JSWrapperObject
2058         (NumberProtoFunc::callAsFunction): adjusted
2059         (NumberObjectImp::construct): adjusted
2060         * kjs/number_object.h: shring RegExp-related objects a little
2061         * kjs/regexp_object.cpp:
2062         (RegExpPrototype::RegExpPrototype): Adjust for size tweaks
2063         (RegExpObjectImp::RegExpObjectImp): ditto
2064         * kjs/regexp_object.h:
2065         * kjs/string_object.cpp:
2066         (StringInstance::StringInstance): inherit from JSWrapperObject
2067         (StringProtoFunc::callAsFunction): adjusted
2068         * kjs/string_object.h:
2069         * JavaScriptCore.exp: Exported new methods as needed.
2070         * JavaScriptCore.xcodeproj/project.pbxproj: Added new files to build.
2071
2072 2006-08-04  Brady Eidson  <beidson@apple.com>
2073
2074         Reviewed by Geoff's rubber stamp
2075
2076         Fix a build break on Intel hardware causes by adapting stricter
2077         compiler warnings (-Wshorten-64-to-32)
2078
2079         * API/testapi.c:
2080         (assertEqualsAsNumber): manually cast some doubles to floats
2081         (main): ditto
2082
2083 2006-08-04  Sam Weinig  <sam.weinig@gmail.com>
2084
2085         Reviewed by Darin.
2086
2087         - patch for http://bugs.webkit.org/show_bug.cgi?id=10192
2088           Make WebCore (and friends) compile with -Wshorten-64-to-32
2089
2090           * Adds -Wshorten-64-to-32 flag to Xcode project.
2091           * Adds explicit casts where OK.
2092
2093         * API/JSNodeList.c:
2094         (JSNodeList_item):
2095         (JSNodeList_getProperty):
2096         * JavaScriptCore.xcodeproj/project.pbxproj:
2097
2098 2006-08-04  Adam Roben  <aroben@apple.com>
2099
2100         Reviewed by Anders.
2101
2102         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj: Convert
2103         spaces to tabs
2104
2105 2006-08-03  Sam Weinig  <sam.weinig@gmail.com>
2106
2107         Reviewed by Darin.
2108
2109         - patch for http://bugs.webkit.org/show_bug.cgi?id=10176
2110           Make WebCore compile with -Wundef
2111
2112           * Adds -Wundef flag to Xcode project
2113           * Converts #ifs to #ifdef and #ifndefs where needed.
2114           * Added #define YYMAXDEPTH 10000 in kjs/grammar.y
2115             to fix a warning from within Bison.
2116
2117         * JavaScriptCore.xcodeproj/project.pbxproj:
2118         * bindings/jni/jni_jsobject.cpp:
2119         (JavaJSObject::getSlot):
2120         (JavaJSObject::setSlot):
2121         * bindings/npapi.h:
2122         * bindings/objc/objc_class.mm:
2123         (KJS::Bindings::ObjcClass::methodsNamed):
2124         (KJS::Bindings::ObjcClass::fieldNamed):
2125         * bindings/objc/objc_instance.mm:
2126         (ObjcInstance::invokeMethod):
2127         * bindings/objc/objc_runtime.mm:
2128         (ObjcMethod::getMethodSignature):
2129         (ObjcField::name):
2130         (ObjcField::type):
2131         * kjs/grammar.y:
2132         * kjs/identifier.h:
2133
2134 2006-08-03  Anders Carlsson  <acarlsson@apple.com>
2135
2136         Reviewed by John Sullivan.
2137
2138        * wtf/HashSet.h:
2139         (WTF::::operator):
2140         Return *this in operator=
2141
2142 2006-08-03  Adam Roben  <aroben@apple.com>
2143
2144         Reviewed by Anders.
2145
2146         - Fixed Windows build
2147
2148         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
2149         * wtf/MathExtras.h: Implement inline versions of these functions
2150         (nextafter):
2151         (nextafterf):
2152
2153 2006-08-02  Adam Roben  <aroben@apple.com>
2154
2155         Reviewed by Darin.
2156
2157         - Fixed build
2158
2159         * kjs/date_object.cpp:
2160         (KJS::formatTime):
2161
2162 2006-07-29  Darin Adler  <darin@apple.com>
2163
2164         - Removed tabs from these source files that still had them.
2165           We don't use them; that way source files look fine in editors
2166           that have tabs set to 8 spaces or to 4 spaces.
2167         - Removed allow-tabs Subversion property from the files too.
2168
2169         * bindings/NP_jsobject.cpp:
2170         * bindings/c/c_utility.cpp:
2171         * bindings/jni/jni_runtime.cpp:
2172         * bindings/jni/jni_utility.cpp:
2173         * bindings/objc/objc_utility.mm:
2174         * bindings/runtime.cpp:
2175         * bindings/runtime_method.cpp:
2176         * bindings/testbindings.cpp:
2177         * bindings/testbindings.mm:
2178         * kjs/date_object.cpp:
2179         * kjs/function.cpp:
2180         * kjs/list.cpp:
2181         * kjs/nodes.cpp:
2182         * kjs/nodes.h:
2183         * kjs/string_object.cpp:
2184         * kjs/ustring.cpp:
2185
2186 2006-07-29  Darin Adler  <darin@apple.com>
2187
2188         * tests/mozilla/expected.html: Update test results now that regress-185165.js
2189         is succeeding. I suspect Anders fix for bug 4620655 is the reason.
2190
2191 2006-07-29  Sam Weinig  <sam.weinig@gmail.com>
2192
2193         Reviewed by Darin.
2194
2195         - patch for http://bugs.webkit.org/show_bug.cgi?id=10080
2196           Adopt pedantic changes from the Unity project to improve 
2197           cross-compiler compatibility
2198
2199           Changes include:
2200           * Removing trailing semicolon from namespace braces.
2201           * Removing trailing comma from last enum declaration.
2202           * Updating to match style guidelines.
2203           * Adding missing newline to the end of the file.
2204           * Turning on gcc warning for missing newline at the end of a source file
2205             (GCC_WARN_ABOUT_MISSING_NEWLINE in Xcode, -Wnewline in gcc).
2206           * Alphabetical sorting of Xcode source list files. 
2207           * Replace use of non-portable variable-size array with Vector.
2208           * Use C-style comments instead of C++ comments in files that might
2209             be included by either C or C++ files.
2210
2211         * API/JSCallbackConstructor.cpp:
2212         (KJS::JSCallbackConstructor::construct):
2213         * API/JSCallbackFunction.cpp:
2214         (KJS::JSCallbackFunction::callAsFunction):
2215         * API/JSCallbackObject.cpp:
2216         (KJS::JSCallbackObject::construct):
2217         (KJS::JSCallbackObject::callAsFunction):
2218         * JavaScriptCore.xcodeproj/project.pbxproj:
2219         * JavaScriptCorePrefix.h:
2220         * bindings/jni/jni_class.cpp:
2221         (JavaClass::fieldNamed):
2222         * bindings/jni/jni_class.h:
2223         * bindings/jni/jni_instance.cpp:
2224         (JavaInstance::JavaInstance):
2225         (JavaInstance::valueOf):
2226         * bindings/jni/jni_objc.mm:
2227         (KJS::Bindings::dispatchJNICall):
2228         * bindings/jni/jni_runtime.cpp:
2229         (JavaParameter::JavaParameter):
2230         (JavaArray::JavaArray):
2231         * bindings/jni/jni_runtime.h:
2232         * bindings/jni/jni_utility.h:
2233         * bindings/objc/objc_instance.h:
2234         * bindings/runtime_array.h:
2235         * kjs/collector.h:
2236         * kjs/config.h:
2237         * kjs/ustring.cpp:
2238         * wtf/Platform.h:
2239
2240 2006-07-29  Mike Emmel  <mike.emmel@gmail.com>
2241
2242         Reviewed by Darin.
2243
2244         - fixes for Linux build
2245
2246         * JavaScriptCoreSources.bkl: Added new files to build, kjs/PropertyNameArray.cpp
2247         and kjs/testkjs.cpp, and removed old files.
2248
2249 2006-07-24  Dan Waylonis  <waylonis@google.com>
2250
2251         Reviewed and tweaked a bit by Darin.
2252
2253         - fix http://bugs.webkit.org/show_bug.cgi?id=9902
2254           jsNull and NSNull not properly converted between JS and ObjC
2255
2256         * bindings/objc/objc_utility.mm: (KJS::Bindings::convertObjcValueToValue):
2257         Added case for converting NSNull to jsNull.
2258
2259 2006-07-24  Rob Buis  <buis@kde.org>
2260
2261         Reviewed by Darin.
2262
2263         http://bugs.webkit.org/show_bug.cgi?id=4258
2264         Date().toString() only includes GMT offset, not timezone string
2265
2266         Use the info in tm_zone to append timezone abbreviation
2267         to Date().toString().
2268
2269         * kjs/date_object.cpp:
2270         (KJS::formatTime):
2271
2272 2006-07-24  Rob Buis  <buis@kde.org>
2273
2274         Reviewed by Darin.
2275
2276         http://bugs.webkit.org/show_bug.cgi?id=5257
2277         setYear() does not match FireFox/IE behavior
2278
2279         Make sure the right values end up in tm_year.
2280
2281         * kjs/date_object.cpp:
2282         (KJS::formatTime):
2283
2284 2006-07-23  Mark Rowe  <opendarwin.org@bdash.net.nz>
2285
2286         Reviewed by Maciej.
2287
2288         Bug 9686: [Drosera] Need the ability to break into Drosera on Javascript exceptions
2289         http://bugs.webkit.org/show_bug.cgi?id=9686
2290
2291         JavaScriptCore portion of the fix.
2292
2293         * JavaScriptCore.exp: Update symbol for change in argument type.
2294         * kjs/debugger.cpp:
2295         (Debugger::detach): Clear map of recent exceptions.
2296         (Debugger::hasHandledException): Track the most recent exception
2297         thrown by an interpreter.
2298         (Debugger::exception): Change exception argument to a JSValue.
2299         * kjs/debugger.h:
2300         * kjs/nodes.cpp:
2301         (Node::debugExceptionIfNeeded): Notify the debugger of an exception
2302         if it hasn't seen it before.
2303         (ThrowNode::execute): Notify the debugger that an exception is being thrown.
2304         * kjs/nodes.h:
2305
2306     2006-07-23  Geoffrey Garen  <ggaren@apple.com>
2307
2308         Patch by Eric Albert, reviewed by Darin and me.
2309         
2310         - Fixed <rdar://problem/4645931> JavaScriptCore stack-scanning code 
2311         crashes (Collector::markStackObjectsConservatively)
2312         
2313         * bindings/jni/jni_jsobject.cpp: On 64bit systems, jint is a long, not an
2314         int.
2315         (JavaJSObject::getSlot):
2316         (JavaJSObject::setSlot):
2317         * kjs/collector.cpp:
2318         (KJS::Collector::markCurrentThreadConservatively): Use a pointer instead of
2319         an int as 'dummy,' because on LP64 systems, an int is not pointer-aligned,
2320         and we want to scan the stack for pointers.
2321         * JavaScriptCore.xcodeproj/project.pbxproj: After a tense cease-fire, the 
2322         XCode war has started up again!
2323
2324 === Safari-521.20 ===
2325
2326 2006-07-21  Geoffrey Garen  <ggaren@apple.com>
2327
2328         Reviewed by Darin.
2329
2330         <rdar://problem/4507265> REGRESSION: overlays don't work on HousingMaps.com (Google Maps-based site)
2331
2332         - Added support for strings that masquerade as undefined. Currently used
2333         by WebCore to implement undetectable style.filter.
2334         
2335         The name is a little long, but it's only used in one line of code, so I
2336         thought clarity should win over brevity.
2337
2338         * JavaScriptCore.exp:
2339         * JavaScriptCore.xcodeproj/project.pbxproj:
2340         * kjs/object.h:
2341         * kjs/string_object.h:
2342         (KJS::StringInstanceThatMasqueradesAsUndefined::StringInstanceThatMasqueradesAsUndefined):
2343         (KJS::StringInstanceThatMasqueradesAsUndefined::masqueradeAsUndefined):
2344         (KJS::StringInstanceThatMasqueradesAsUndefined::toBoolean):
2345
2346 === Safari-521.19 ===
2347
2348 2006-07-20  Steve Falkenburg  <sfalken@apple.com>
2349
2350         Fix the build
2351
2352         * kjs/function.cpp:
2353         (KJS::escapeStringForPrettyPrinting):
2354
2355 2006-07-19  Anders Carlsson  <acarlsson@apple.com>
2356
2357         Reviewed by Darin.
2358
2359         <rdar://problem/4620655> REGRESSION(10.4.7-10.5): preview button for a blogger.com post doesn't work
2360         
2361         * kjs/nodes2string.cpp:
2362         (StringNode::streamTo):
2363         Return the escaped string.
2364         
2365         (RegExpNode::streamTo):
2366         Use the correct syntax.
2367         
2368         * kjs/function.cpp:
2369         (KJS::escapeStringForPrettyPrinting):
2370         * kjs/function.h:
2371         Add escape function which escapes a string for pretty-printing so it can be parsed again.
2372         
2373         * wtf/unicode/icu/UnicodeIcu.h:
2374         (WTF::Unicode::isPrintableChar):
2375         New function.
2376
2377 2006-07-18  Maciej Stachowiak  <mjs@apple.com>
2378
2379         Reviewed by Adele Peterson.
2380         
2381         <rdar://problem/4589530> REGRESSION: null character in JS string causes parse error (works in Tiger and in other browsers)
2382
2383         * kjs/lexer.cpp:
2384         (Lexer::shift):
2385         (Lexer::lex):
2386         (Lexer::record16):
2387         (Lexer::scanRegExp):
2388         * kjs/lexer.h:
2389
2390 2006-07-18  Tim Omernick  <timo@apple.com>
2391
2392         Reviewed by Tim Hatcher.
2393
2394         Removed a misleading comment; we recently added support for the NPNVPluginElementNPObject
2395         variable.
2396
2397         * bindings/npapi.h:
2398
2399 === Safari-521.18 ===
2400
2401 2006-07-18  Timothy Hatcher  <timothy@apple.com>
2402
2403         Made the following headers public:
2404
2405         * JavaScriptCore.h
2406         * JSBase.h
2407         * JSContextRef.h
2408         * JSObjectRef.h
2409         * JSStringRef.h
2410         * JSValueRef.h
2411
2412         * JavaScriptCore.xcodeproj/project.pbxproj:
2413
2414 2006-07-17  Geoffrey Garen  <ggaren@apple.com>
2415
2416         Reviewed by Maciej.
2417         
2418         - Added automatic prototype creation for classes.
2419         
2420         A class stores a weak reference to a prototype, which is cleared when
2421         the prototype is garbage collected, to avoid a reference cycle.
2422         
2423         We now have an attributes field in JSClassDefinition, that currently is
2424         used only to override automatic prototype creation when you want to manage your
2425         own prototypes, but can be extended in the future for other nefarious purposes.
2426         
2427         Similarly, we have JSObjectMake and JSObjectMakeWithPrototype, the latter
2428         allowing you to manage your own prototypes.
2429         
2430         JSObjectMakeConstructor is more interesting now, able to make a constructor
2431         on your behalf if you just give it a class.
2432         
2433         - Removed bogus old code from minidom.js.
2434         
2435         - Tweaked the headerdocs.
2436         
2437         - Added more GC testing, which caught some leaks, and tested more funny 
2438         edge cases in lookup, which caught a lookup bug. Removed some testing 
2439         we used to do with MyObject because it was redundant with the new, cool 
2440         stuff.
2441         
2442         While fixing the lookup bug I retracted this change:
2443         
2444             "If a static setProperty callback returns 'false', to indicate that the
2445             property was not set, we no longer forward the set request up the class
2446             chain, because that's almost certainly not what the programmer expected."
2447
2448         Returning false when setting a static property is a little silly, but you can see
2449         it being useful when shadowing a base class's static properties, and, regardless
2450         of usefullness, this is the defined behavior of the setProperty callback.
2451         
2452         - Plus a little ASCII art, for the kids.
2453
2454 2006-07-17  Timothy Hatcher  <timothy@apple.com>
2455
2456         Reviewed by Maciej.
2457
2458         <rdar://problem/4634874> WebScriptObject and WebUndefined are no longer defined by WebKit
2459
2460         Moves WebScriptObject and WebUndefined up to WebCore.
2461         This change does create an upwards-dependancy on WebScriptObject existing
2462         in the loaded process, but this code path in JavaScriptCore does not get used
2463         unless it is through WebKit/WebCore. Moving all of the binding code out of
2464         JavaScriptCore might make sense in the future.
2465
2466         * JavaScriptCore.exp:
2467         * JavaScriptCore.xcodeproj/project.pbxproj:
2468         * bindings/objc/WebScriptObject.h: Replaced.
2469         * bindings/objc/WebScriptObject.mm: Removed.
2470         * bindings/objc/WebScriptObjectPrivate.h: Removed.
2471         * bindings/objc/objc_class.h:
2472         * bindings/objc/objc_instance.h:
2473         * bindings/objc/objc_instance.mm:
2474         (ObjcInstance::~ObjcInstance):
2475         * bindings/objc/objc_runtime.h:
2476         * bindings/objc/objc_runtime.mm:
2477         (convertValueToObjcObject):
2478         * bindings/objc/objc_utility.mm:
2479         (KJS::Bindings::convertValueToObjcValue):
2480         (KJS::Bindings::convertObjcValueToValue):
2481         (KJS::Bindings::createObjcInstanceForValue):
2482
2483 2006-07-17  Darin Adler  <darin@apple.com>
2484
2485         * API/JSBase.h: Fix comment formatting where things used to be lined up but
2486         are now ragged. Got rid of spaces that attempted to line things up.
2487         * API/JSObjectRef.h: Ditto. Also add missing periods for a couple of comments.
2488
2489 2006-07-17  Geoffrey Garen  <ggaren@apple.com>
2490
2491         Reviewed by Maciej.
2492         
2493         - Removed the exception parameter from the initialize callback and, by extension,
2494         JSObjectMake. We have never had a need for exceptions when iniitializing,
2495         so the parameter seemed likely to "get in the way." 
2496         
2497         Also, an exception in JavaScript is thrown in response to input -- 
2498         "invalid URL", "index not a number", etc., so it's the job of the 
2499         constructor function, not the initialize method, to throw.
2500         
2501         If initialize *really* wants to throw, it can communicate the throw to
2502         the constructor through the constructed object's private data (e.g., set
2503         it to NULL, signaling to the consntructor that initialization failed.)
2504         
2505         - Added JSObjectMakeWithData, which enables a constructor to set private
2506         data on an object *before* it has been initialized. That way, the initialize
2507         methods can properly operate on the data. 
2508
2509         * API/JSNode.c: Moved ref into the initialize method, for better encapsulation,
2510         now that it's possible.
2511         * API/JSNodeList.c: ditto
2512         * API/minidom.c:
2513         (main): Do more aggressive garbage collection to test ref/deref and 
2514         initialize/finalize.
2515         * API/minidom.js: store childNodes in a temporary so it doesn't get re-created
2516         like a thousand times. This makes debugging ref/deref easier
2517
2518 2006-07-17  Geoffrey Garen  <ggaren@apple.com>
2519
2520         Reviewed by Maciej.
2521         
2522         - Changed the initialize callback to run from least derived class (parent
2523         class) to most derived class. This enables C++ style initialization,
2524         and derived class overriding of member data.
2525         
2526         - Added excpetion propopgation to JSObjectMake, to support initialize
2527         exceptions, and generally round out our policy of making function
2528         signatures as long as possible.
2529
2530         * API/JSCallbackObject.h: Use ExecState instead of ContextRef, cuz we're
2531         in C++ land now.
2532
2533 2006-07-17  Geoffrey Garen  <ggaren@apple.com>
2534
2535         Reviewed by Maciej.
2536         
2537         - Changed JSObjectMakeConstructor to JSObjectMakeConstructorWithCallback,
2538         to match JSObjectMakeFunctionWithCallback.
2539         
2540         - Added prototype parameter, so the generated constructor
2541         automatically works with hasInstance / instanceof
2542         
2543         - Moved hasInstance implementation from InternalFunctionImp to JSObject
2544         so that subclasses can inherit it without inheriting function-related baggage.
2545         More refactoring here would be good, but this seems like a good short-term
2546         solution.
2547
2548         (KJS::JSCallbackFunction::implementsHasInstance): override and return false,
2549         because callback functions aren't constructors.
2550
2551 2006-07-17  Maciej Stachowiak  <mjs@apple.com>
2552
2553         Reviewed by Geoff.
2554         
2555         - add a JSContextRef parameter to all JSValueRef, JSObjectRef, and JSContextRef operations;
2556         except JSObject{Get,Set}PrivateData which can be assumed to be simple pure accessors.
2557         
2558         Also renamed the parameter "context" to "ctx" because it makes the code read better with this pervasive
2559         but usually uninteresting parameter.
2560
2561         * API/JSBase.cpp:
2562         (JSEvaluateScript):
2563         (JSCheckScriptSyntax):
2564         (JSGarbageCollect):
2565         * API/JSBase.h:
2566         * API/JSCallbackObject.cpp:
2567         (KJS::JSCallbackObject::JSCallbackObject):
2568         (KJS::JSCallbackObject::init):
2569         (KJS::JSCallbackObject::getOwnPropertySlot):
2570         (KJS::JSCallbackObject::put):
2571         (KJS::JSCallbackObject::deleteProperty):
2572         (KJS::JSCallbackObject::toNumber):
2573         (KJS::JSCallbackObject::toString):
2574         * API/JSContextRef.cpp:
2575         (JSGlobalContextCreate):
2576         (JSGlobalContextRetain):
2577         (JSGlobalContextRelease):
2578         (JSContextGetGlobalObject):
2579         * API/JSContextRef.h:
2580         * API/JSNode.c:
2581         (JSNodePrototype_appendChild):
2582         (JSNodePrototype_removeChild):
2583         (JSNodePrototype_replaceChild):
2584         (JSNode_getNodeType):
2585         (JSNode_getFirstChild):
2586         (JSNode_prototype):
2587         * API/JSNodeList.c:
2588         (JSNodeListPrototype_item):
2589         (JSNodeList_length):
2590         (JSNodeList_getProperty):
2591         (JSNodeList_prototype):
2592         * API/JSObjectRef.cpp:
2593         (JSObjectMake):
2594         (JSObjectMakeFunctionWithCallback):
2595         (JSObjectMakeConstructor):
2596         (JSObjectMakeFunction):
2597         (JSObjectGetPrototype):
2598         (JSObjectSetPrototype):
2599         (JSObjectHasProperty):
2600         (JSObjectGetProperty):
2601         (JSObjectSetProperty):
2602         (JSObjectGetPropertyAtIndex):
2603         (JSObjectSetPropertyAtIndex):
2604         (JSObjectDeleteProperty):
2605         (JSObjectIsFunction):
2606         (JSObjectCallAsFunction):
2607         (JSObjectIsConstructor):
2608         (JSObjectCallAsConstructor):
2609         (JSObjectCopyPropertyNames):
2610         * API/JSObjectRef.h:
2611         * API/JSStringRef.cpp:
2612         * API/JSValueRef.cpp:
2613         (JSValueGetType):
2614         (JSValueIsUndefined):
2615         (JSValueIsNull):
2616         (JSValueIsBoolean):
2617         (JSValueIsNumber):
2618         (JSValueIsString):
2619         (JSValueIsObject):
2620         (JSValueIsObjectOfClass):
2621         (JSValueIsEqual):
2622         (JSValueIsStrictEqual):
2623         (JSValueIsInstanceOfConstructor):
2624         (JSValueMakeUndefined):
2625         (JSValueMakeNull):
2626         (JSValueMakeBoolean):
2627         (JSValueMakeNumber):
2628         (JSValueMakeString):
2629         (JSValueToBoolean):
2630         (JSValueToNumber):
2631         (JSValueToStringCopy):
2632         (JSValueToObject):
2633         (JSValueProtect):
2634         (JSValueUnprotect):
2635         * API/JSValueRef.h:
2636         * API/minidom.c:
2637         (print):
2638         * API/testapi.c:
2639         (MyObject_getProperty):
2640         (MyObject_deleteProperty):
2641         (MyObject_callAsFunction):
2642         (MyObject_callAsConstructor):
2643         (MyObject_convertToType):
2644         (print_callAsFunction):
2645         (main):
2646
2647 2006-07-16  Geoffrey Garen  <ggaren@apple.com>
2648
2649         Approved by Maciej, RS by Beth.
2650         
2651         JSObjectMakeFunction -> JSObjectMakeFunctionWithCallback
2652         JSObjectMakeFunctionWithBody -> JSObjectMakeFunction
2653         
2654         because the latter is more common, and more fundamental, than the former.
2655
2656         * API/APICast.h:
2657         (toJS):
2658         * API/JSBase.h:
2659         * API/JSCallbackObject.cpp:
2660         (KJS::JSCallbackObject::getOwnPropertySlot):
2661         (KJS::JSCallbackObject::put):
2662         (KJS::JSCallbackObject::deleteProperty):
2663         (KJS::JSCallbackObject::getPropertyNames):
2664         (KJS::JSCallbackObject::staticValueGetter):
2665         (KJS::JSCallbackObject::staticFunctionGetter):
2666         * API/JSClassRef.cpp:
2667         (OpaqueJSClass::OpaqueJSClass):
2668         (OpaqueJSClass::~OpaqueJSClass):
2669         * API/JSClassRef.h:
2670         * API/JSObjectRef.cpp:
2671         (JSClassCreate):
2672         (JSObjectMakeFunctionWithCallback):
2673         (JSObjectMakeFunction):
2674         (OpaqueJSPropertyNameArray::OpaqueJSPropertyNameArray):
2675         (JSObjectCopyPropertyNames):
2676         * API/JSObjectRef.h:
2677         * API/minidom.c:
2678         (main):
2679         * API/testapi.c:
2680         (main):
2681         * ChangeLog:
2682         * JavaScriptCore.exp:
2683
2684 2006-07-16  Geoffrey Garen  <ggaren@apple.com>
2685
2686         Laughed at by Beth.
2687         
2688         Replace __JS with OpaqueJS because the former, while used by CF, is
2689         a prefix that's triply-reserved by the compiler. (_* is reserved in global 
2690         names, _[A-Z] is reserved in all names, and __ is reserved in all names 
2691         in C++.)
2692         
2693         Opaque is an alternative used by other Mac OS X framewokrs.
2694
2695         * API/APICast.h:
2696         (toJS):
2697         * API/JSBase.h:
2698         * API/JSCallbackObject.cpp:
2699         (KJS::JSCallbackObject::getOwnPropertySlot):
2700         (KJS::JSCallbackObject::put):
2701         (KJS::JSCallbackObject::deleteProperty):
2702         (KJS::JSCallbackObject::getPropertyNames):
2703         (KJS::JSCallbackObject::staticValueGetter):
2704         (KJS::JSCallbackObject::staticFunctionGetter):
2705         * API/JSClassRef.cpp:
2706         (OpaqueJSClass::OpaqueJSClass):
2707         (OpaqueJSClass::~OpaqueJSClass):
2708         * API/JSClassRef.h:
2709         * API/JSObjectRef.cpp:
2710         (JSClassCreate):
2711         (OpaqueJSPropertyNameArray::OpaqueJSPropertyNameArray):
2712         (JSObjectCopyPropertyNames):
2713
2714 2006-07-16  Darin Adler  <darin@apple.com>
2715
2716         - try to fix Windows build
2717
2718         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
2719         Added some recently added files, removed some recently removed.
2720
2721 2006-07-16  Geoffrey Garen  <ggaren@apple.com>
2722
2723         Reviewed by Maciej.
2724         
2725         - Change getProperty* to return undefined, rather than NULL, for missing
2726         properties, since that's what the spec says. Also added exception out
2727         parameters to the *Index functions, because they can call through to the
2728         regular functions, which can throw for custom objects.
2729
2730         * API/JSObjectRef.cpp:
2731         (JSObjectGetProperty):
2732         (JSObjectGetPropertyAtIndex):
2733         (JSObjectSetPropertyAtIndex):
2734         * API/JSObjectRef.h:
2735         * API/testapi.c:
2736         (main):
2737
2738 2006-07-16  Geoffrey Garen  <ggaren@apple.com>
2739
2740         Reviewed by Maciej.
2741         
2742         - Properly document and handle NULL callbacks for static properties. We
2743         throw an exception in any case other than a ReadOnly property with a NULL
2744         setProperty callback, because a NULL callback almost certainly indicates 
2745         a programming error. Also throw an exception if hasProperty returns true
2746         for a property that getProperty can't get.
2747         
2748         - If a static setProperty callback returns 'false', to indicate that the
2749         property was not set, we no longer forward the set request up the class
2750         chain, because that's almost certainly not what the programmer expected.
2751
2752         * API/JSCallbackObject.cpp:
2753         (KJS::JSCallbackObject::getOwnPropertySlot):
2754         (KJS::JSCallbackObject::put):
2755         (KJS::JSCallbackObject::staticValueGetter):
2756         (KJS::JSCallbackObject::staticFunctionGetter):
2757         (KJS::JSCallbackObject::callbackGetter):
2758         * API/JSObjectRef.h:
2759         * API/minidom.js:
2760         * API/testapi.c:
2761         (MyObject_hasProperty):
2762         * API/testapi.js:
2763
2764 2006-07-16  Geoffrey Garen  <ggaren@apple.com>
2765
2766         Reviewed by Maciej.
2767         
2768         - Added names to functions.
2769         
2770         - Removed GetPrivate/SetPrivate from callbackFunctions and callbackConstructors.
2771         The private data idiom is that a JS object stores its native implementation
2772         as private data. For functions and constructors, the native implementation is nothing
2773         more than the callback they already store, so supporting private data, too,
2774         confuses the idiom. If you *really* want, you can still create a custom 
2775         function with private data.
2776
2777         * API/JSCallbackConstructor.cpp:
2778         * API/JSCallbackConstructor.h:
2779         * API/JSCallbackFunction.cpp:
2780         (KJS::JSCallbackFunction::JSCallbackFunction):
2781         * API/JSCallbackFunction.h:
2782         * API/JSCallbackObject.cpp:
2783         (KJS::JSCallbackObject::staticFunctionGetter):
2784         * API/JSObjectRef.cpp:
2785         (JSObjectMakeFunction):
2786         (JSObjectMakeFunctionWithBody):
2787         (JSObjectGetPrivate):
2788         (JSObjectSetPrivate):
2789         * API/JSObjectRef.h:
2790         * API/minidom.c:
2791         (main):
2792         * API/testapi.c:
2793         (main):
2794
2795 2006-07-15  Maciej Stachowiak  <mjs@apple.com>
2796
2797         Reviewed by Darin.
2798         
2799         - switch property lists to be vector+set of Identifiers instead of list of References
2800         
2801         This has the following benefits:
2802         
2803         - no duplicates in property lists
2804         - simplifies API calls
2805         - probably more efficient, since linked list is gone
2806         - entirely removed Reference, ReferenceList and ProtectedReference types from the API
2807
2808         * kjs/PropertyNameArray.cpp: Added.
2809         (KJS::PropertyNameArray::add): Check set, if not already there, add to
2810         vector.
2811         * kjs/PropertyNameArray.h: Added.
2812         (KJS::PropertyNameArray::PropertyNameArray): Newly added type, combines
2813         a set and a vector to make a unique but ordered list of identifiers.
2814         (KJS::PropertyNameArray::begin): ditto
2815         (KJS::PropertyNameArray::end): ditto
2816         (KJS::PropertyNameArray::size): ditto
2817         (KJS::PropertyNameArray::operator[]): ditto
2818         * kjs/array_instance.h:
2819         * kjs/array_object.cpp:
2820         (ArrayInstance::getPropertyNames): renamed from getPropertyList, updated
2821         for PropertyNameArray
2822         (ArrayInstance::setLength): updated for PropertyNameArray
2823         (ArrayInstance::pushUndefinedObjectsToEnd): ditto
2824         * kjs/nodes.cpp:
2825         (ForInNode::execute): updated for PropertyNameArray
2826         * kjs/nodes.h:
2827         * kjs/object.cpp:
2828         (KJS::JSObject::getPropertyNames): renamed from getPropertyList, updated
2829         for PropertyNameArray
2830         * kjs/object.h:
2831         * kjs/property_map.cpp:
2832         (KJS::PropertyMap::getEnumerablePropertyNames): updated for PropertyNameArray
2833         (KJS::PropertyMap::getSparseArrayPropertyNames): ditto
2834         * kjs/property_map.h:
2835         * kjs/protected_reference.h: Removed.
2836         * kjs/reference.cpp: Removed.
2837         * kjs/reference.h: Removed.
2838         * kjs/reference_list.cpp: Removed.
2839         * kjs/reference_list.h: Removed.
2840         * kjs/scope_chain.cpp:
2841         (KJS::ScopeChain::print): Use PropertyNamesArray instead of ReferenceList.
2842         * kjs/string_object.cpp:
2843         (StringInstance::getPropertyNames): Updated for new approach.
2844         * kjs/string_object.h:
2845         * kjs/ustring.h:
2846         * API/APICast.h:
2847         (toJS): Added overload for PropertyNameAccumulatorRef / PropertyNameArray*
2848         (toRef): ditto
2849         * API/JSBase.h:
2850         * API/JSCallbackObject.cpp:
2851         (KJS::JSCallbackObject::getPropertyNames): Fixed for new API.
2852         * API/JSCallbackObject.h:
2853         * API/JSObjectRef.cpp:
2854         (__JSPropertyNameArray::__JSPropertyNameArray): Type used for a publicly vended
2855         JSPropertyNameArrayRef.
2856         (JSObjectCopyPropertyNames): New API call - renamed / refactored from 
2857         JSObjectCreatePropertyList
2858         (JSPropertyNameArrayRetain): new retain call for JSPropertyNameArray.
2859         (JSPropertyNameArrayRelease): new release call for - " -.
2860         (JSPropertyNameArrayGetCount): Instead of having to use a stateful enumerator you
2861         can now get the count and items in any order.
2862         (JSPropertyNameArrayGetNameAtIndex): See above.
2863         (JSPropertyNameAccumulatorAddName): What you add properties to is now an opaque 
2864         accumulator object.
2865         * API/JSObjectRef.h: Prototyped new functions, removed old ones
2866         * JavaScriptCore.exp: Updated exported symbols.
2867         * JavaScriptCore.xcodeproj/project.pbxproj: Added new files, removed old.
2868         * API/testapi.c:
2869         (MyObject_getPropertyNames): Renamed / fixed callback to fit new paradigm.
2870         (main): Updated for new API.
2871
2872 2006-07-15  Darin Adler  <darin@apple.com>
2873
2874         - oops, missed a few more arrays that had to be const
2875
2876         * API/JSNode.c:
2877         (JSNodePrototype_appendChild): Added const.
2878         (JSNodePrototype_removeChild): Ditto.
2879         (JSNodePrototype_replaceChild): Ditto.
2880         (JSNode_construct): Ditto.
2881         * API/JSNodeList.c:
2882         (JSNodeListPrototype_item): Ditto.
2883         * API/JSObjectRef.cpp:
2884         (JSObjectMakeFunctionWithBody): Ditto.
2885         (JSObjectCallAsFunction): Ditto.
2886         (JSObjectCallAsConstructor): Ditto.
2887         * API/minidom.c:
2888         (print): Ditto.
2889         * API/testapi.c:
2890         (MyObject_callAsFunction): Ditto.
2891         (MyObject_callAsConstructor): Ditto.
2892         (print_callAsFunction): Ditto.
2893         (myConstructor_callAsConstructor): Ditto.
2894
2895 2006-07-15  Darin Adler  <darin@apple.com>
2896
2897         Reviewed by Maciej.
2898
2899         * API/JSNode.h: Made an array parameter const.
2900         * API/JSObjectRef.h: Made array parameters const. Fixed a comment.
2901
2902 2006-07-15  Geoffrey Garen  <ggaren@apple.com>
2903
2904         Reviewed by Maciej.
2905         
2906         - JSObjectMakeFunctionWithBody includes a function name and named parameters now.
2907
2908         * API/JSObjectRef.cpp:
2909         (JSObjectMakeFunctionWithBody):
2910         * API/JSObjectRef.h:
2911         * API/testapi.c:
2912         (assertEqualsAsUTF8String): More informative failure reporting.
2913         (main): Test more function cases.
2914
2915 2006-07-15  Geoffrey Garen  <ggaren@apple.com>
2916
2917         Reviewed by Maciej.
2918
2919         - Moved the arguments passed to JSClassCreate into a single structure,
2920         called JSClassDefinition. This will enable easier structure 
2921         migration/versioning in the future, if necessary.
2922         
2923         - Added support for class names.
2924         
2925         - kJSClassDefinitionNull replaces kJSObjectCallbacksNone.
2926         
2927         - JSClass is becoming a fairly complex struct, so I migrated all of its
2928         implementation other than reference counting to the sruct.
2929         
2930         - Also moved JSClass* functions in the API to JSObjectRef.cpp, since they're
2931         declared in JSObjectRef.h
2932         
2933         - Also added some more informative explanation to the class structure doc.
2934         
2935 2006-07-15  Darin Adler  <darin@apple.com>
2936
2937         Reviewed by Geoff.
2938
2939         - fix http://bugs.webkit.org/show_bug.cgi?id=8395
2940           <rdar://problem/4613467>
2941           REGRESSION: RegEx seems broken for hex escaped non breaking space
2942
2943         Test: fast/js/regexp-extended-characters-more.html
2944
2945         * pcre/pcre_exec.c:
2946         (match): Got rid of utf16Length local variable to guarantee there's no
2947         extra stack usage in recursive calls. Fixed two places in the PCRE_UTF16
2948         code that were using the length variable, which is the UTF-8 length of
2949         a character in the pattern, to move in the UTF-16 subject string. Instead
2950         they hardcode lengths of 1 and 2 since the code already handles BMP
2951         characters and surrogate pairs separately. Also fixed some DPRINTF so
2952         I could compile with DEBUG on.
2953         (pcre_exec): Changed a place that was checking for multibyte characters
2954         in the subject string to use ISMIDCHAR. Instead it was using hardcoded
2955         logic that was right for UTF-8 but wrong for UTF-16.
2956
2957         * pcre/pcre_compile.c: (pcre_compile2): Fixed a DPRINTF so I could compile
2958         with DEBUG on.
2959
2960 2006-07-14  Geoffrey Garen  <ggaren@apple.com>
2961
2962         RS by Maciej.
2963         
2964         Global replace in the API of argc/argv with argumentCount/arguments.
2965
2966 2006-07-14  Geoffrey Garen  <ggaren@apple.com>
2967
2968         Reviewed by Maciej.
2969         
2970         - Finalized exception handling in the API.
2971         
2972         setProperty can throw because it throws for built-in arrays. getProperty
2973         and deleteProperty can throw because setProperty can throw and we want
2974         to be consistent, and also because they seem like "actions." callAsFunction,
2975         callAsConstructor, and hasInstance can throw, because they caan throw for
2976         all built-ins.
2977         
2978         toBoolean can't throw because it's defined that way in the spec.
2979         
2980         - Documented that toBoolean and toObject can't be overridden by custom 
2981         objects because they're defined that way in the spec.
2982
2983 === Safari-521.17 ===
2984
2985 2006-07-14  Geoffrey Garen  <ggaren@apple.com>
2986
2987         Reviewed by Maciej.
2988         
2989         - Implemented ref-counting of JSContexts by splitting into two datatypes:
2990         JSGlobalContext, which you can create/retain/release, and JSContext, which
2991         you can't.
2992         
2993         Internally, you retain a JSGlobalContext/ExecState by retaining its
2994         interpreter, which, in the case of a global ExecState, owns it.
2995         
2996         - Also made ~Interpreter() protected to catch places where Interpreter
2997         is manually deleted. (Can't make it private because some crazy fool
2998         decided it would be a good idea to subclass Interpreter in other frameworks.
2999         I pity da fool.)
3000
3001         * API/APICast.h: 
3002         (toJS): Added cast for new JSGlobalContext
3003         * API/JSStringRef.h: Changed vague "you must" language to more specific
3004         (but, ultimately, equally vague) "behavior is undefined if you don't" 
3005         language.
3006         (KJS::Interpreter::Interpreter): Factored more common initialization into
3007         init()
3008         * kjs/interpreter.h:
3009         (KJS::Interpreter::ref): new
3010         (KJS::Interpreter::deref): new
3011         (KJS::Interpreter::refCount): new
3012         * kjs/testkjs.cpp: 
3013         (doIt): Ref-count the interpreter.
3014
3015 2006-07-14  Maciej Stachowiak  <mjs@apple.com>
3016
3017         Reviewed by Geoff.
3018         
3019         - removed bool return value from JSObjectSetProperty, since it is inefficient and
3020         also doesn't work quite right
3021         - added JSObjectGetPropertyAtIndex and JSObjectSetPropertyAtIndex
3022
3023         * API/JSObjectRef.cpp:
3024         (JSObjectSetProperty): Removed return value and canPut stuff.
3025         (JSObjectGetPropertyAtIndex): Added.
3026         (JSObjectSetPropertyAtIndex): Added.
3027         * API/JSObjectRef.h: Prototyped and documented new functions.
3028
3029 2006-07-14  Geoffrey Garen  <ggaren@apple.com>
3030
3031         Reviewed by Beth.
3032         
3033         Moved JSCheckScriptSyntax, JSEvaluateScript, and JSGarbageCollect into
3034         JSBase.h/.cpp. They don't belong in the value-specific or context-specific 
3035         files because they're not part of the value or context implementations.
3036
3037         * API/JSBase.h:
3038         * API/JSContextRef.cpp:
3039         (JSContextGetGlobalObject):
3040         * API/JSContextRef.h:
3041         * API/JSValueRef.cpp:
3042         (JSValueUnprotect):
3043         * API/JSValueRef.h:
3044         * JavaScriptCore.xcodeproj/project.pbxproj:
3045
3046 2006-07-13  Timothy Hatcher  <timothy@apple.com>
3047
3048         Reviewed by Maciej.
3049
3050         Moved JavaScriptCore to be a public framework.
3051
3052         * JavaScriptCore.xcodeproj/project.pbxproj:
3053
3054 2006-07-13  Mark Rowe  <opendarwin.org@bdash.net.nz>
3055
3056         Reviewed by Geoffrey.
3057
3058         http://bugs.webkit.org/show_bug.cgi?id=9742
3059         Bug 9742: REGRESSION: WebKit hangs when loading <http://www.vtbook.com>
3060
3061         * kjs/value.h:
3062         (KJS::JSValue::getUInt32): Only types tagged as numeric can be converted to UInt32.
3063
3064 2006-07-13  Geoffrey Garen  <ggaren@apple.com>
3065
3066         Pleasing to Maciej.
3067         
3068         - Renamed JSEvaluate -> JSEvaluateScript, JSCheckSyntax -> JSCheckScriptSyntax
3069         - Added exception out parameters to JSValueTo* and JSValueIsEqual because
3070         they can throw
3071         - Removed JSObjectGetDescription because it's useless and vague, and 
3072         JSValueToString/JSValueIsObjectOfClass do a better job, anyway
3073         - Clarified comments about "IsFunction/Constructor" to indicate that they
3074         are true of all functions/constructors, not just those created by JSObjectMake*
3075
3076 2006-07-12  Geoffrey Garen  <ggaren@apple.com>
3077
3078         RS by Beth.
3079         
3080         Finished previously approved JSInternalString -> JSString conversion 
3081         by renaming the files.
3082
3083         * API/JSCallbackObject.cpp:
3084         * API/JSInternalStringRef.cpp: Removed.
3085         * API/JSInternalStringRef.h: Removed.
3086         * API/JSStringRef.cpp: Added.
3087         * API/JSStringRef.h: Added.
3088         * API/JavaScriptCore.h:
3089         * JavaScriptCore.xcodeproj/project.pbxproj:
3090
3091 2006-07-12  Geoffrey Garen  <ggaren@apple.com>
3092
3093         Reviewed by Maciej.
3094         
3095         - Removed context and exception parameters from JSObjectGetPropertyEnumerator,
3096         removing the spurious use of ExecState inside JavaScriptCore that made
3097         us think this was necessary in the first place.
3098
3099         (StringInstance::getPropertyList): Use getString instead of toString because
3100         we know we're dealing with a string -- we put it there in the first place.
3101         While we're at it, store the string's size instead of retrieving it each time 
3102         through the loop, to avoid the unnecessary killing of puppies.
3103         * kjs/string_object.h:
3104
3105 2006-07-12  Maciej Stachowiak  <mjs@apple.com>
3106
3107         Reviewed by Geoff.
3108         
3109         - add handling of hasInstance callback for API objects
3110
3111         * API/JSCallbackObject.cpp:
3112         (KJS::JSCallbackObject::implementsHasInstance): Check if callback is present.
3113         (KJS::JSCallbackObject::hasInstance): Invoke appropriate callback.
3114         * API/JSCallbackObject.h:
3115         * API/JSClassRef.cpp:
3116         * API/JSObjectRef.h:
3117         * API/testapi.c:
3118         (MyObject_hasInstance): Test case; should match what construct would do.
3119         * API/testapi.js:
3120
3121 2006-07-11  Geoffrey Garen  <ggaren@apple.com>
3122
3123         Reviewed by Maciej.
3124         
3125         - Implemented a vast number of renames and comment clarifications 
3126         suggested during API review.
3127         
3128         JSInternalString -> JSString
3129         JS*Make -> JSValueMake*, JSObjectMake*
3130         JSTypeCode -> JSType
3131         JSValueIsInstanceOf -> JSValueIsInstanceOfConstructor (reads strangely well in client code)
3132         JSGC*Protect -> JSValue*Protect
3133         JS*Callback -> JSObject*Callback
3134         JSGetPropertyListCallback -> JSObjectAddPropertiesToListCallback
3135         JSPropertyEnumeratorGetNext -> JSPropertyEnumeratorGetNextName
3136         JSString* -> 
3137             JSStringCreateWithUTF8CString, JSStringGetUTF8CString,
3138             JSStringGetMaximumUTF8CStringSize JSStringIsEqualToUTF8CString, 
3139             JSStringCreateWithCFString, JSStringCopyCFString, JSStringCreateWithCharacters.
3140         
3141         - Changed functions taking a JSValue out arg and returning a bool indicating
3142         whether it was set to simply return a JSValue or NULL.
3143         
3144         - Removed JSStringGetCharacters because it's more documentation than code,
3145         and it's just a glorified memcpy built on existing API functionality.
3146         
3147         - Moved standard library includes into the headers that actually require them.
3148         
3149         - Standardized use of the phrase "Create Rule."
3150         
3151         - Removed JSLock from make functions that don't allocate.
3152         
3153         - Added exception handling to JSValueToBoolean, since we now allow
3154         callback objects to throw exceptions upon converting to boolean.
3155         
3156         - Renamed JSGCCollect to JSGarbageCollect.
3157
3158 2006-07-10  Geoffrey Garen  <ggaren@apple.com>
3159
3160         Reviewed by Darin.
3161         
3162         - Changed public header includes to the <JavaScriptCore/ style.
3163         - Changed instances of 'buffer' to 'string' since we decided on
3164         JSInternalString instead of JSStringBuffer.
3165
3166         * API/JSContextRef.h:
3167         * API/JSInternalStringRef.cpp:
3168         (JSStringMake):
3169         (JSInternalStringRetain):
3170         (JSInternalStringRelease):
3171         (JSValueCopyStringValue):
3172         (JSInternalStringGetLength):
3173         (JSInternalStringGetCharactersPtr):
3174         (JSInternalStringGetCharacters):
3175         (JSInternalStringGetMaxLengthUTF8):
3176         (JSInternalStringGetCharactersUTF8):
3177         (CFStringCreateWithJSInternalString):
3178         * API/JSInternalStringRef.h:
3179         * API/JSNode.c:
3180         (JSNodePrototype_appendChild):
3181         (JSNode_getNodeType):
3182         * API/JSObjectRef.cpp:
3183         (JSObjectCallAsConstructor):
3184         * API/JSValueRef.h:
3185         * API/JavaScriptCore.h:
3186         * API/minidom.c:
3187         (main):
3188         (print):
3189         * API/testapi.c:
3190         (MyObject_getPropertyList):
3191         (myConstructor_callAsConstructor):
3192         (main): I noticed that we were prematurely releasing some string buffers,
3193         so I moved their release calls to the end of main(). I got rid of 'Buf' in *Buf
3194         (sometimes changing to 'IString', when necessary to differentiate a variable) 
3195         to match the buffer->string change.
3196
3197 === Safari-521.16 ===
3198
3199 2006-07-10  Darin Adler  <darin@apple.com>
3200
3201         * kjs/value.cpp: (KJS::JSValue::toInt32Inline): Added inline keyword one more place.
3202         Just in case.
3203
3204 2006-07-10  Darin Adler  <darin@apple.com>
3205
3206         - fix the release build
3207
3208         * kjs/value.h:
3209         * kjs/value.cpp:
3210         (KJS::JSValue::toInt32Inline): Move the code here to an inline.
3211         (KJS::JSValue::toInt32): Call the inline from both overloaded toInt32 functions.
3212
3213 2006-07-10  David Kilzer  <ddkilzer@kilzer.net>
3214
3215         Reviewed by Darin.
3216
3217         - fix http://bugs.webkit.org/show_bug.cgi?id=9179
3218           Implement select.options.add() method
3219
3220         * JavaScriptCore.exp: Added overloaded KJS::JSValue::toInt32() method.
3221         * JavaScriptCore.xcodeproj/project.pbxproj: Altered attributes metadata for
3222         kjs/value.h to make it available as a forwarded header.
3223         * kjs/lookup.h:
3224         (KJS::lookupPut): Extracted a lookupPut() method from the existing lookupPut() method.
3225         The new method returns a boolean value if no entry is found in the lookup table.
3226         * kjs/value.cpp:
3227         (KJS::JSValue::toInt32): Overloaded toInt32() method with boolean "Ok" argument.
3228         * kjs/value.h: Ditto.
3229
3230 2006-07-10  Geoffrey Garen  <ggaren@apple.com>
3231
3232         No review necessary. Removed bogus file I accidentally checked in before.
3233
3234         * API/JSInternalSringRef.h: Removed.
3235
3236 2006-07-10  Geoffrey Garen  <ggaren@apple.com>
3237
3238         Reviewed by Darin.
3239         
3240         Added exception out parameter to API object callbacks, removed semi-bogus
3241         JSContext(.*)Exception functions.
3242         
3243         To make these calls syntactically simple, I added an exceptionSlot()
3244         method to the ExecState class, which provides a JSValue** slot in which to 
3245         store a JSValue* exception.
3246
3247         * API/APICast.h:
3248         (toRef):
3249         * API/JSCallbackConstructor.cpp:
3250         (KJS::JSCallbackConstructor::construct):
3251         * API/JSCallbackFunction.cpp:
3252         (KJS::JSCallbackFunction::callAsFunction):
3253         * API/JSCallbackObject.cpp:
3254         (KJS::JSCallbackObject::init):
3255         (KJS::JSCallbackObject::getOwnPropertySlot):
3256         (KJS::JSCallbackObject::put):
3257         (KJS::JSCallbackObject::deleteProperty):
3258         (KJS::JSCallbackObject::construct):
3259         (KJS::JSCallbackObject::callAsFunction):
3260         (KJS::JSCallbackObject::getPropertyList):
3261         (KJS::JSCallbackObject::toBoolean):
3262         (KJS::JSCallbackObject::toNumber):
3263         (KJS::JSCallbackObject::toString):
3264         (KJS::JSCallbackObject::staticValueGetter):
3265         (KJS::JSCallbackObject::callbackGetter):
3266         * API/JSContextRef.cpp:
3267         (JSCheckSyntax):
3268         * API/JSContextRef.h:
3269         * API/JSNode.c:
3270         (JSNodePrototype_appendChild):
3271         (JSNodePrototype_removeChild):
3272         (JSNodePrototype_replaceChild):
3273         (JSNode_getNodeType):
3274         (JSNode_getChildNodes):
3275         (JSNode_getFirstChild):
3276         (JSNode_construct):
3277         * API/JSNode.h:
3278         * API/JSNodeList.c:
3279         (JSNodeListPrototype_item):
3280         (JSNodeList_length):
3281         (JSNodeList_getProperty):
3282         * API/JSObjectRef.h:
3283         * API/minidom.c:
3284         (print):
3285         * API/testapi.c:
3286         (MyObject_initialize):
3287         (MyObject_hasProperty):
3288         (MyObject_getProperty):
3289         (MyObject_setProperty):
3290         (MyObject_deleteProperty):
3291         (MyObject_getPropertyList):
3292         (MyObject_callAsFunction):
3293         (MyObject_callAsConstructor):
3294         (MyObject_convertToType):
3295         (print_callAsFunction):
3296         (myConstructor_callAsConstructor):
3297         (main):
3298         * JavaScriptCore.exp:
3299         * kjs/ExecState.h:
3300         (KJS::ExecState::exceptionHandle):
3301
3302 2006-07-10  Geoffrey Garen  <ggaren@apple.com>
3303
3304         Reviewed by Darin.
3305
3306         Improved type safety by implementing opaque JSValue/JSObject typing through 
3307         abuse of 'const', not void*. Also fixed an alarming number of bugs
3308         exposed by this new type safety.
3309         
3310         I made one design change in JavaScriptCore, which is that the JSObject
3311         constructor should take a JSValue* as its prototype argument, not a JSObject*,
3312         since we allow the prototype to be any JSValue*, including jsNull(), for
3313         example.
3314         
3315         * API/APICast.h:
3316         (toJS):
3317         * API/JSBase.h:
3318         * API/JSCallbackConstructor.cpp:
3319         (KJS::JSCallbackConstructor::construct):
3320         * API/JSCallbackFunction.cpp:
3321         (KJS::JSCallbackFunction::callAsFunction):
3322         * API/JSCallbackObject.cpp:
3323         (KJS::JSCallbackObject::JSCallbackObject):
3324         (KJS::JSCallbackObject::getOwnPropertySlot):
3325         (KJS::JSCallbackObject::put):
3326         (KJS::JSCallbackObject::construct):
3327         (KJS::JSCallbackObject::callAsFunction):
3328         (KJS::JSCallbackObject::staticFunctionGetter):
3329         * API/JSCallbackObject.h:
3330         * API/JSContextRef.cpp:
3331         (JSEvaluate):
3332         * API/JSNode.c:
3333         (JSNodePrototype_appendChild):
3334         (JSNodePrototype_removeChild):
3335         (JSNodePrototype_replaceChild):
3336         * API/JSObjectRef.cpp:
3337         (JSObjectMake):
3338         (JSFunctionMakeWithBody):
3339         (JSObjectGetProperty):
3340         (JSObjectCallAsFunction):
3341         (JSObjectCallAsConstructor):
3342         * API/JSObjectRef.h:
3343         * API/testapi.c:
3344         (main):
3345         * ChangeLog:
3346         * kjs/object.h:
3347         (KJS::JSObject::JSObject):
3348
3349 2006-07-10  Geoffrey Garen  <ggaren@apple.com>
3350
3351         Approved by Maciej, Darin.
3352         
3353         Renamed JSStringBufferRef to JSInternalStringRef. "Internal string" means the 
3354         JavaScript engine's internal string representation, which is the most 
3355         low-level and efficient representation to use when interfacing with JavaScript.
3356
3357         * API/APICast.h:
3358         (toJS):
3359         (toRef):
3360         * API/JSBase.h:
3361         * API/JSCallbackObject.cpp:
3362         (KJS::JSCallbackObject::getOwnPropertySlot):
3363         (KJS::JSCallbackObject::put):
3364         (KJS::JSCallbackObject::deleteProperty):
3365         (KJS::JSCallbackObject::staticValueGetter):
3366         (KJS::JSCallbackObject::callbackGetter):
3367         * API/JSContextRef.cpp:
3368         (JSEvaluate):
3369         (JSCheckSyntax):
3370         * API/JSContextRef.h:
3371         * API/JSInternalStringRef.cpp: Added.
3372         (JSStringMake):
3373         (JSInternalStringCreate):
3374         (JSInternalStringCreateUTF8):
3375         (JSInternalStringRetain):
3376         (JSInternalStringRelease):
3377         (JSValueCopyStringValue):
3378         (JSInternalStringGetLength):
3379         (JSInternalStringGetCharactersPtr):
3380         (JSInternalStringGetCharacters):
3381         (JSInternalStringGetMaxLengthUTF8):
3382         (JSInternalStringGetCharactersUTF8):
3383         (JSInternalStringIsEqual):
3384         (JSInternalStringIsEqualUTF8):
3385         (JSInternalStringCreateCF):
3386         (CFStringCreateWithJSInternalString):
3387         * API/JSInternalStringRef.h: Added.
3388         * API/JSNode.c:
3389         (JSNodePrototype_appendChild):
3390         (JSNode_getNodeType):
3391         (JSNode_getChildNodes):
3392         (JSNode_getFirstChild):
3393         * API/JSNodeList.c:
3394         (JSNodeList_length):
3395         (JSNodeList_getProperty):
3396         * API/JSObjectRef.cpp:
3397         (JSFunctionMakeWithBody):
3398         (JSObjectGetDescription):
3399         (JSObjectHasProperty):
3400         (JSObjectGetProperty):
3401         (JSObjectSetProperty):
3402         (JSObjectDeleteProperty):
3403         (JSPropertyEnumeratorGetNext):
3404         (JSPropertyListAdd):
3405         * API/JSObjectRef.h:
3406         * API/JSStringBufferRef.cpp: Removed.
3407         * API/JSStringBufferRef.h: Removed.
3408         * API/JSValueRef.h:
3409         * API/JavaScriptCore.h:
3410         * API/minidom.c:
3411         (main):
3412         (print):
3413         * API/testapi.c:
3414         (assertEqualsAsUTF8String):
3415         (assertEqualsAsCharactersPtr):
3416         (assertEqualsAsCharacters):
3417         (MyObject_hasProperty):
3418         (MyObject_getProperty):
3419         (MyObject_setProperty):
3420         (MyObject_deleteProperty):
3421         (MyObject_getPropertyList):
3422         (print_callAsFunction):
3423         (myConstructor_callAsConstructor):
3424         (main):
3425         * JavaScriptCore.exp:
3426         * JavaScriptCore.xcodeproj/project.pbxproj:
3427
3428 2006-07-08  Tim Omernick  <timo@apple.com>
3429
3430         Reviewed by Maciej.
3431
3432         Added an OpenGL drawing model to the Netscape Plug-in API.
3433
3434         * bindings/npapi.h:
3435
3436 2006-07-08  Timothy Hatcher  <timothy@apple.com>
3437
3438         Reviewed by Maciej.
3439
3440         Moved KJS_GetCreatedJavaVMs to jni_utility.cpp.
3441         Switched KJS_GetCreatedJavaVMs over to use dlopen and dlsym
3442         now that NSAddImage, NSLookupSymbolInImage and NSAddressOfSymbol
3443         are deprecated in Leopard.
3444
3445         * JavaScriptCore.exp:
3446         * JavaScriptCore.xcodeproj/project.pbxproj:
3447         * bindings/jni/jni_utility.cpp:
3448         (KJS::Bindings::KJS_GetCreatedJavaVMs):
3449         * bindings/softlinking.c: Removed.
3450         * bindings/softlinking.h: Removed.
3451
3452 2006-07-08  Geoffrey Garen  <ggaren@apple.com>
3453
3454         Reviewed by Anders.
3455         
3456         - Make JSObjectGetProperty return a JSValue or NULL, like JSEvaluate does.
3457
3458         * API/JSObjectRef.cpp:
3459         (JSObjectGetProperty):
3460         * API/JSObjectRef.h:
3461         * API/testapi.c:
3462         (main):
3463
3464 2006-07-08  Geoffrey Garen  <ggaren@apple.com>
3465
3466         Style change -- no review necessary.
3467         
3468         Use 0 instead of NULL in API .cpp files, to match our style guidelines.
3469
3470         * API/JSContextRef.cpp:
3471         (JSEvaluate):
3472         * API/JSObjectRef.cpp:
3473         (JSFunctionMakeWithBody):
3474         (JSObjectCallAsFunction):
3475         (JSObjectCallAsConstructor):
3476         * API/JSValueRef.cpp:
3477         (JSValueToObject):
3478
3479 2006-07-08  Geoffrey Garen  <ggaren@apple.com>
3480
3481         Reviewed by TimO.
3482
3483         - Added ability to pass NULL for thisObject when calling JSObjectCallAsFunction,
3484         to match JSEvaluate.
3485         
3486         * API/JSObjectRef.cpp:
3487         (JSObjectCallAsFunction):
3488         * API/JSObjectRef.h:
3489         * API/testapi.c:
3490         (main):
3491
3492 === Safari-521.15 ===
3493
3494 2006-07-07  Geoffrey Garen  <ggaren@apple.com>
3495
3496         Reviewed by Maciej.
3497         
3498         - Standardized which functions take a JSContext as an argument. The rule is:
3499         if you might execute JavaScript, you take a JSContext, otherwise you don't.
3500         
3501         The FIXME in JSObjectRef.h requires refactoring some parts of Interpreter,
3502         but not API changes, so I'm putting it off until later.
3503
3504         * API/JSCallbackObject.cpp:
3505         (KJS::JSCallbackObject::JSCallbackObject):
3506         (KJS::JSCallbackObject::init):
3507         * API/JSCallbackObject.h:
3508         * API/JSContextRef.cpp:
3509         (JSContextCreate):
3510         * API/JSContextRef.h:
3511         * API/JSObjectRef.cpp:
3512         (JSObjectMake):
3513         (JSPropertyEnumeratorGetNext):
3514         * API/JSObjectRef.h:
3515         * API/testapi.c:
3516         (MyObject_initialize):
3517         (main):
3518         * JavaScriptCore.exp:
3519         * kjs/array_object.cpp:
3520         (ArrayInstance::setLength):
3521         (ArrayInstance::pushUndefinedObjectsToEnd):
3522         * kjs/nodes.cpp:
3523         (ForInNode::execute):
3524         * kjs/reference.cpp:
3525         (KJS::Reference::getPropertyName):
3526         (KJS::Reference::getValue):
3527         * kjs/reference.h:
3528         * kjs/scope_chain.cpp:
3529         (KJS::ScopeChain::print):
3530
3531 2006-07-06  Geoffrey Garen  <ggaren@apple.com>
3532
3533         Reviewed by Maciej.
3534         
3535         More API action.
3536         
3537         - Headerdoc finished
3538
3539         Semantic Changes:
3540         - Added a JSContextRef argument to many functions, because you need a 
3541         JSContextRef for doing virtually anything. I expect to add this argument
3542         to even more functions in a future patch.
3543         
3544         - Removed the globalObjectPrototype argument to JSContextCreate because
3545         you can't create an object until you have a context, so it's impossible
3546         to pass a prototype object to JSContextCreate. That's OK because (1) there's
3547         no reason to give the global object a prototype and (2) if you really want
3548         to, you can just use a separate call to JSObjectSetPrototype.
3549         
3550         - Removed the JSClassRef argument to JSClassCreate because it was unnecessary,
3551         and you need to be able to make the global object's class before you've
3552         created a JSContext.
3553         
3554         - Added an optional exception parameter to JSFunctionMakeWithBody because anything
3555         less would be uncivilized.
3556         
3557         - Made the return value parameter to JSObjectGetProperty optional to match
3558         all other return value parameters in the API.
3559         
3560         - Made JSObjectSetPrivate/JSObjectGetPrivate work on JSCallbackFunctions
3561         and JSCallbackConstructors. You could use an abstract base class or strategic
3562         placement of m_privateData in the class structure to implement this, but 
3563         the former seemed like overkill, and the latter seemed too dangerous.
3564         
3565         - Fixed a bug where JSPropertyEnumeratorGetNext would skip the first property.
3566
3567         Cosmetic Changes:
3568         - Reversed the logic of the JSChar #ifdef to avoid confusing headerdoc
3569         
3570         - Removed function names from @function declarations because headeroc
3571         can parse them automatically, and I wanted to rule out manual mismatch.
3572
3573         - Changed Error::create to take a const UString& instead of a UString*
3574         because it was looking at me funny.
3575         
3576         - Renamed JSStringBufferCreateWithCFString to JSStringBufferCreateCF
3577         because the latter is more concise and it matches JSStringBufferCreateUTF8.
3578         
3579         * API/JSCallbackObject.cpp:
3580         (KJS::JSCallbackObject::getOwnPropertySlot):
3581         (KJS::JSCallbackObject::put):
3582         (KJS::JSCallbackObject::deleteProperty):
3583         (KJS::JSCallbackObject::getPropertyList):
3584         (KJS::JSCallbackObject::toBoolean):
3585         (KJS::JSCallbackObject::toNumber):
3586         (KJS::JSCallbackObject::toString):
3587         * API/JSClassRef.cpp:
3588         (JSClassCreate):
3589         * API/JSContextRef.cpp:
3590         (JSContextCreate):
3591         (JSContextSetException):
3592         * API/JSContextRef.h:
3593         * API/JSNode.c:
3594         (JSNodePrototype_class):
3595         (JSNode_class):
3596         * API/JSNodeList.c:
3597         (JSNodeListPrototype_class):
3598         (JSNodeList_class):
3599         * API/JSObjectRef.cpp:
3600         (JSObjectGetProperty):
3601         (JSObjectGetPrivate):
3602         (JSObjectSetPrivate):
3603         (JSObjectCallAsFunction):
3604         (JSObjectCallAsConstructor):
3605         (JSPropertyEnumeratorGetNext):
3606         * API/JSObjectRef.h:
3607         * API/JSStringBufferRef.cpp:
3608         (JSStringBufferCreateCF):
3609         * API/JSStringBufferRef.h:
3610         * API/JSValueRef.cpp:
3611         (JSValueIsInstanceOf):
3612         * API/JSValueRef.h:
3613         * API/minidom.c:
3614         (main):
3615         * API/minidom.js:
3616         * API/testapi.c:
3617         (MyObject_hasProperty):
3618         (MyObject_setProperty):
3619         (MyObject_deleteProperty):
3620         (MyObject_getPropertyList):
3621         (MyObject_convertToType):
3622         (MyObject_class):
3623         (main):
3624         * JavaScriptCore.exp:
3625
3626 2006-07-07  Geoffrey Garen  <ggaren@apple.com>
3627
3628         Reviewed by John.
3629         
3630         - Fixed a few crashes resulting from NULL parameters to JSClassCreate.
3631
3632         * API/JSClassRef.cpp:
3633         (JSClassCreate):
3634         (JSClassRelease):
3635         * API/testapi.c: Added test for NULL parameters.
3636         (main):
3637
3638 2006-07-07  Geoffrey Garen  <ggaren@apple.com>
3639
3640         Reviewed by John, mocked by Darin.
3641         
3642         - Changed JSEvaluate to take a JSObjectRef instead of a JSValueRef as
3643         "this," since "this" must be an object.
3644
3645         * API/JSContextRef.cpp:
3646         (JSEvaluate):
3647         * API/JSContextRef.h:
3648
3649 2006-07-07  Geoffrey Garen  <ggaren@apple.com>
3650
3651         Reviewed by John.
3652         
3653         - More headerdoc
3654
3655         * API/JSBase.h:
3656         * JavaScriptCore.xcodeproj/project.pbxproj:
3657
3658 2006-07-05  Geoffrey Garen  <ggaren@apple.com>
3659
3660         RS by Beth.
3661         
3662         Renamed JSCharBufferRef, which was universally unpopular, to JSStringBufferRef,
3663         which, hopefully, will be less unpopular.
3664
3665         * API/APICast.h:
3666         (toJS):
3667         (toRef):
3668         * API/JSBase.h:
3669         * API/JSCallbackObject.cpp:
3670         (KJS::JSCallbackObject::getOwnPropertySlot):
3671         (KJS::JSCallbackObject::put):
3672         (KJS::JSCallbackObject::deleteProperty):
3673         (KJS::JSCallbackObject::staticValueGetter):
3674         (KJS::JSCallbackObject::callbackGetter):
3675         * API/JSCharBufferRef.cpp: Removed.
3676         * API/JSCharBufferRef.h: Removed.
3677         * API/JSContextRef.cpp:
3678         (JSEvaluate):
3679         (JSCheckSyntax):
3680         * API/JSContextRef.h:
3681         * API/JSNode.c:
3682         (JSNodePrototype_appendChild):
3683         (JSNode_getNodeType):
3684         (JSNode_getChildNodes):
3685         (JSNode_getFirstChild):
3686         * API/JSNodeList.c:
3687         (JSNodeList_length):
3688         (JSNodeList_getProperty):
3689         * API/JSObjectRef.cpp:
3690         (JSFunctionMakeWithBody):
3691         (JSObjectGetDescription):
3692         (JSObjectHasProperty):
3693         (JSObjectGetProperty):
3694         (JSObjectSetProperty):
3695         (JSObjectDeleteProperty):
3696         (JSPropertyEnumeratorGetNext):
3697         (JSPropertyListAdd):
3698         * API/JSObjectRef.h:
3699         * API/JSStringBufferRef.cpp: Added.
3700         (JSStringMake):
3701         (JSStringBufferCreate):
3702         (JSStringBufferCreateUTF8):
3703         (JSStringBufferRetain):
3704         (JSStringBufferRelease):
3705         (JSValueCopyStringValue):
3706         (JSStringBufferGetLength):
3707         (JSStringBufferGetCharactersPtr):
3708         (JSStringBufferGetCharacters):
3709         (JSStringBufferGetMaxLengthUTF8):
3710         (JSStringBufferGetCharactersUTF8):
3711         (JSStringBufferIsEqual):
3712         (JSStringBufferIsEqualUTF8):
3713         (JSStringBufferCreateWithCFString):
3714         (CFStringCreateWithJSStringBuffer):
3715         * API/JSStringBufferRef.h: Added.
3716         * API/JSValueRef.h:
3717         * API/JavaScriptCore.h:
3718         * API/minidom.c:
3719         (main):
3720         (print):
3721         * API/testapi.c:
3722         (assertEqualsAsUTF8String):
3723         (assertEqualsAsCharactersPtr):
3724         (assertEqualsAsCharacters):
3725         (MyObject_hasProperty):
3726         (MyObject_getProperty):
3727         (MyObject_setProperty):
3728         (MyObject_deleteProperty):
3729         (MyObject_getPropertyList):
3730         (print_callAsFunction):
3731         (myConstructor_callAsConstructor):
3732         (main):
3733         * JavaScriptCore.exp:
3734         * JavaScriptCore.xcodeproj/project.pbxproj:
3735
3736 2006-07-05  Geoffrey Garen  <ggaren@apple.com>
3737
3738         RS by Beth.
3739         
3740         Moved some code around for more logical file separation.
3741
3742         * API/JSBase.h:
3743         * API/JSContextRef.h:
3744         * API/JSObjectRef.cpp:
3745         * API/JSValueRef.cpp:
3746         (JSValueToObject):
3747         * API/JSValueRef.h:
3748
3749 2006-07-03  Geoffrey Garen  <ggaren@apple.com>
3750
3751         Reviewed by Maciej.
3752         
3753         Implemented JSFunctionMakeWithBody, which parses a script as a function body
3754         in the global scope, and returns the resulting anonymous function.
3755         
3756         I also removed private data from JSCallbackFunction. It never worked,
3757         since JSCallbackFunction doesn't inherit from JSCallbackObject.
3758
3759         * API/JSCallbackConstructor.cpp: Removed.
3760         * API/JSCallbackConstructor.h: Removed.
3761         * API/JSCallbackFunction.cpp:
3762         (KJS::JSCallbackFunction::JSCallbackFunction):
3763         (KJS::JSCallbackFunction::implementsConstruct):
3764         (KJS::JSCallbackFunction::construct):
3765         (KJS::JSCallbackFunction::implementsCall):
3766         (KJS::JSCallbackFunction::callAsFunction):
3767         * API/JSCallbackFunction.h:
3768         * API/JSCallbackObject.cpp:
3769         (KJS::JSCallbackObject::staticFunctionGetter):
3770         * API/JSObjectRef.cpp:
3771         (JSFunctionMake):
3772         (JSFunctionMakeWithCallbacks):
3773         * API/JSObjectRef.h:
3774         * API/JSValueRef.h:
3775         * API/minidom.c:
3776         (main):
3777         * API/testapi.c:
3778         (main):
3779         * JavaScriptCore.exp: Programmatically added all symbols exported by
3780         API object files, and sorted results
3781         * JavaScriptCore.xcodeproj/project.pbxproj:
3782
3783 2006-07-03  Geoffrey Garen  <ggaren@apple.com>
3784
3785         Reviewed by Maciej.
3786
3787         - Return syntax error in JSCheckSyntax through a JSValueRef* exception
3788         argument
3789         
3790         * API/JSBase.h:
3791         * API/JSContextRef.cpp:
3792         (JSCheckSyntax):
3793         * API/testapi.c:
3794         (main):
3795         * JavaScriptCore.exp:
3796         * kjs/interpreter.cpp:
3797         (KJS::Interpreter::checkSyntax):
3798         * kjs/interpreter.h:
3799
3800 2006-07-04  Darin Adler  <darin@apple.com>
3801
3802         - fixed build
3803
3804         * wtf/MathExtras.h: Oops. Added missing #endif.
3805
3806 2006-07-04  Bjoern Graf  <bjoern.graf@gmail.com>
3807
3808         Reviewed by Maciej.
3809         Tweaked a bit by Darin.
3810
3811         - http://bugs.webkit.org/show_bug.cgi?id=9678
3812           work around MSVCRT's fmod function returning NaN for fmod(x, infinity) instead of x
3813
3814         * wtf/MathExtras.h: Added include of <float.h>.
3815         (isinf): Fix to return false for NAN.
3816         (wtf_fmod): Added. An inline that works around the bug.
3817
3818         * kjs/nodes.cpp:
3819         * kjs/number_object.cpp:
3820         * kjs/operations.cpp:
3821         * kjs/value.cpp:
3822         Added includes of MathExtras.h to all files using fmod.
3823
3824         * JavaScriptCore.xcodeproj/project.pbxproj: Let Xcode 2.3 have its way with
3825         the project.
3826
3827 2006-07-01  Geoffrey Garen  <ggaren@apple.com>
3828
3829         Reviewed by Darin.
3830         
3831         - Refined value conversions in the API:
3832             - failed toNumber returns NaN
3833             - failed toObject returns NULL
3834             - failed toString returns empty string
3835         
3836         - Refined excpetion handling in the API:
3837             - failed value conversions do not throw exceptions
3838             - uncaught exceptions in JSEvaluate, JSObjectCallAsFunction, and 
3839               JSObjectCallAsConstructor are returned through a JSValueRef* exception
3840               argument
3841             - removed JSContextHasException, because JSContextGetException does
3842               the same job
3843             
3844         * API/JSBase.h:
3845         * API/JSCharBufferRef.cpp:
3846         (JSValueCopyStringValue):
3847         * API/JSContextRef.cpp:
3848         (JSEvaluate):
3849         * API/JSContextRef.h:
3850         * API/JSNodeList.c: Added test code demonstrating how you would use
3851         toNumber, and why you probably don't need toUInt32, etc.
3852         (JSNodeListPrototype_item):
3853         (JSNodeList_getProperty):
3854         * API/JSObjectRef.cpp:
3855         (JSValueToObject):
3856         (JSObjectCallAsFunction):
3857         (JSObjectCallAsConstructor):
3858         * API/JSObjectRef.h:
3859         * API/JSValueRef.cpp:
3860         (JSValueToNumber):
3861         * API/JSValueRef.h:
3862         * API/minidom.c:
3863         (main):
3864         * API/testapi.c:
3865         (main): Added tests for new rules, and call to JSGCProtect to fix Intel 
3866         crash
3867         * JavaScriptCore.exp:
3868
3869 2006-07-03  Darin Adler  <darin@apple.com>
3870
3871         - Rolled out HashMap implementation of NPRuntime, at least temporarily.
3872
3873         Fixes hang in the bindings section of layout tests seen on the
3874         buildbot.
3875
3876         This code was using HashMap<const char*, PrivateIdentifier*>.
3877         But that hashes based on pointer identity, not string value.
3878         The default hash for any pointer type is to hash based on the pointer.
3879         And WTF doesn't currently have a string hash for char*.
3880         We'll need to fix that before re-landing this patch.
3881
3882         (Formatting was also incorrect -- extra spaces in parentheses.)
3883
3884         * bindings/npruntime.cpp: Rolled out last change.
3885
3886 2006-07-02  Justin Haygood  <jhaygood@spsu.edu>
3887
3888         Reviewed, tweaked, landed by ggaren.
3889
3890         - Port NPRuntime from CFDictionary to HashMap.
3891
3892         * bindings/npruntime.cpp:
3893         (getStringIdentifierDictionary):
3894         (getIntIdentifierDictionary):
3895         (_NPN_GetStringIdentifier):
3896         (_NPN_GetIntIdentifier):
3897         * bindings/npruntime.h:
3898
3899 2006-07-01  Geoffrey Garen  <ggaren@apple.com>
3900
3901         Reviewed by Adele.
3902         
3903         - Fixed <rdar://problem/4611197> REGRESSION: Liveconnect with Java test 
3904         fails at http://www-sor.inria.fr/~dedieu/notes/liveconnect/simple_example.html
3905
3906         * JavaScriptCore.exp: Export symbols used by liveconnect
3907
3908 2006-06-29  Geoffrey Garen  <ggaren@apple.com>
3909
3910         Reviewed by Maciej.
3911         
3912         - Phase 2 in the JS API.
3913         
3914         - Added support for specifying static tables of values -- this should
3915         obviate the need for using complicated callbacks for most lookups.
3916         
3917         -  API objects are now created with classes (JSClassRef) -- in order to support
3918         static values, and in order to prevent API objects from storing their
3919         data inline, and thus falling into the oversized (read: slow and prone to
3920         giving Maciej the frowny face) heap.
3921         
3922         - Added two specialized JSObject subclasses -- JSCallbackFunction and JSCallbackConstructor -- 
3923         to allow JSFunctionMake and JSConstructorMake to continue to work with
3924         the new class model. Another solution to this problem would be to create
3925         a custom class object for each function and constructor you make. This
3926         solution is more code but also more efficient.
3927         
3928         - Substantially beefed up the minidom example to demonstrate and test a
3929         lot of these techniques. Its output is still pretty haphazard, though.
3930         
3931         - Gave the <kjs/ preface to some includes -- I'm told this matters to
3932         building on some versions of Linux.
3933         
3934         - Implemented JSValueIsInstanceOf and JSValueIsObjectOfClass
3935         
3936         - Removed GetDescription callback. Something in the class datastructure
3937         should take care of this.
3938
3939         * API/JSBase.h:
3940         * API/JSCallbackConstructor.cpp: Added.
3941         (KJS::):
3942         (KJS::JSCallbackConstructor::JSCallbackConstructor):
3943         (KJS::JSCallbackConstructor::implementsConstruct):
3944         (KJS::JSCallbackConstructor::construct):
3945         (KJS::JSCallbackConstructor::setPrivate):
3946         (KJS::JSCallbackConstructor::getPrivate):
3947         * API/JSCallbackConstructor.h: Added.
3948         (KJS::JSCallbackConstructor::classInfo):
3949         * API/JSCallbackFunction.cpp: Added.
3950         (KJS::):
3951         (KJS::JSCallbackFunction::JSCallbackFunction):
3952         (KJS::JSCallbackFunction::implementsCall):
3953         (KJS::JSCallbackFunction::callAsFunction):
3954         (KJS::JSCallbackFunction::setPrivate):
3955         (KJS::JSCallbackFunction::getPrivate):
3956         * API/JSCallbackFunction.h: Added.
3957         (KJS::JSCallbackFunction::classInfo):
3958         * API/JSCallbackObject.cpp:
3959         (KJS::):
3960         (KJS::JSCallbackObject::JSCallbackObject):
3961         (KJS::JSCallbackObject::init):
3962         (KJS::JSCallbackObject::~JSCallbackObject):
3963         (KJS::JSCallbackObject::className):
3964         (KJS::JSCallbackObject::getOwnPropertySlot):
3965         (KJS::JSCallbackObject::put):
3966         (KJS::JSCallbackObject::deleteProperty):
3967         (KJS::JSCallbackObject::implementsConstruct):
3968         (KJS::JSCallbackObject::construct):
3969         (KJS::JSCallbackObject::implementsCall):
3970         (KJS::JSCallbackObject::callAsFunction):
3971         (KJS::JSCallbackObject::getPropertyList):
3972         (KJS::JSCallbackObject::toBoolean):
3973         (KJS::JSCallbackObject::toNumber):
3974         (KJS::JSCallbackObject::toString):
3975         (KJS::JSCallbackObject::inherits):
3976         (KJS::JSCallbackObject::staticValueGetter):
3977         (KJS::JSCallbackObject::staticFunctionGetter):
3978         (KJS::JSCallbackObject::callbackGetter):
3979         * API/JSCallbackObject.h:
3980         * API/JSCharBufferRef.cpp:
3981         * API/JSClassRef.cpp: Added.
3982         (JSClassCreate):
3983         (JSClassRetain):
3984         (JSClassRelease):
3985         * API/JSClassRef.h: Added.
3986         (StaticValueEntry::StaticValueEntry):
3987         (StaticFunctionEntry::StaticFunctionEntry):
3988         (__JSClass::__JSClass):
3989         * API/JSContextRef.cpp:
3990         (JSContextCreate):
3991         (JSEvaluate):
3992         * API/JSContextRef.h:
3993         * API/JSNode.c: Added.
3994         (JSNodePrototype_appendChild):
3995         (JSNodePrototype_removeChild):
3996         (JSNodePrototype_replaceChild):
3997         (JSNodePrototype_class):
3998         (JSNode_getNodeType):
3999         (JSNode_getChildNodes):
4000         (JSNode_getFirstChild):
4001         (JSNode_finalize):
4002         (JSNode_class):
4003         (JSNode_prototype):
4004         (JSNode_new):
4005         (JSNode_construct):
4006         * API/JSNode.h: Added.
4007         * API/JSNodeList.c: Added.
4008         (JSNodeListPrototype_item):
4009         (JSNodeListPrototype_class):
4010         (JSNodeList_length):
4011         (JSNodeList_getProperty):
4012         (JSNodeList_finalize):
4013         (JSNodeList_class):
4014         (JSNodeList_prototype):
4015         (JSNodeList_new):
4016         * API/JSNodeList.h: Added.
4017         * API/JSObjectRef.cpp:
4018         (JSObjectMake):
4019         (JSFunctionMake):
4020         (JSConstructorMake):
4021         (__JSPropertyEnumerator::__JSPropertyEnumerator):
4022         (JSObjectCreatePropertyEnumerator):
4023         (JSPropertyEnumeratorGetNext):
4024         (JSPropertyEnumeratorRetain):
4025         (JSPropertyEnumeratorRelease):
4026         * API/JSObjectRef.h:
4027         (__JSObjectCallbacks::):
4028         * API/JSValueRef.cpp:
4029         (JSValueIsObjectOfClass):
4030         (JSValueIsInstanceOf):
4031         * API/JSValueRef.h:
4032         * API/Node.c: Added.
4033         (Node_new):
4034         (Node_appendChild):
4035         (Node_removeChild):
4036         (Node_replaceChild):
4037         (Node_ref):
4038         (Node_deref):
4039         * API/Node.h: Added.
4040         * API/NodeList.c: Added.
4041         (NodeList_new):
4042         (NodeList_length):
4043         (NodeList_item):
4044         (NodeList_ref):
4045         (NodeList_deref):
4046         * API/NodeList.h: Added.
4047         * API/minidom.c:
4048         (main):
4049         (print):
4050         (createStringWithContentsOfFile):
4051         * API/minidom.js:
4052         * API/testapi.c:
4053         (assertEqualsAsCharacters):
4054         (MyObject_getProperty):
4055         (MyObject_class):
4056         (myConstructor_callAsConstructor):
4057         (main):
4058         * API/testapi.js:
4059         * JavaScriptCore.xcodeproj/project.pbxproj:
4060
4061 2006-06-26  Kevin Ollivier  <kevino@theolliviers.com>
4062         
4063         Reviewed and tweaked by Darin.
4064
4065         - Compile fixes for wx port / gcc 4.0.2
4066
4067         * kjs/array_object.cpp:
4068         Added missing headers. 
4069
4070         * kjs/ExecState.h:
4071         gcc needs class prototypes before defining those classes as friend classes
4072
4073 2006-06-30  Mike Emmel  <mike.emmel@gmail.com>
4074
4075         Reviewed by Darin.
4076
4077         Compilation fixes for Linux/Gdk.
4078
4079         * JavaScriptCore/kjs/interpreter.cpp: added include of signal.h
4080         * JavaScriptCore/kjs/ExecState.h: added missing class declaration 
4081         * JavaScriptCore/kjs/ExecState.cpp: case wrong on include of context.h 
4082         * JavaScriptCore/JavaScriptCoreSources.bkl: added Context.cpp and ExecState.cpp
4083
4084 === Safari-521.14 ===
4085
4086 2006-06-29  Maciej Stachowiak  <mjs@apple.com>
4087
4088         Reviewed by Geoff.
4089         
4090         - add headerdoc comments to some of the new JS API headers
4091
4092         * API/JSBase.h:
4093         * API/JSValueRef.h:
4094
4095 2006-06-28  Timothy Hatcher  <timothy@apple.com>
4096
4097         Prefer the Stabs debugging symbols format until DWARF bugs are fixed.
4098
4099         * JavaScriptCore.xcodeproj/project.pbxproj:
4100
4101 2006-06-27  Timothy Hatcher  <timothy@apple.com>
4102
4103         Reviewed by Tim O.
4104
4105         <rdar://problem/4448350> Deprecated ObjC language API used in JavaScriptCore, WebCore, WebKit and WebBrowser
4106
4107         Switch to the new ObjC 2 API, ifdefed the old code around OBJC_API_VERSION so it still works on Tiger.
4108         Removed the use of the old stringWithCString, switched to the new Tiger version that accepts an encoding.
4109         Lots of code style cleanup.
4110
4111         * JavaScriptCore.xcodeproj/project.pbxproj:
4112         * bindings/objc/objc_class.h:
4113         * bindings/objc/objc_class.mm:
4114         (KJS::Bindings::ObjcClass::~ObjcClass):
4115         (KJS::Bindings::_createClassesByIsAIfNecessary):
4116         (KJS::Bindings::ObjcClass::classForIsA):
4117         (KJS::Bindings::ObjcClass::name):
4118         (KJS::Bindings::ObjcClass::methodsNamed):
4119         (KJS::Bindings::ObjcClass::fieldNamed):
4120         (KJS::Bindings::ObjcClass::fallbackObject):
4121         * bindings/objc/objc_header.h:
4122         * bindings/objc/objc_instance.h:
4123         * bindings/objc/objc_instance.mm:
4124         (ObjcInstance::ObjcInstance):
4125         (ObjcInstance::~ObjcInstance):
4126         (ObjcInstance::operator=):
4127         (ObjcInstance::begin):
4128         (ObjcInstance::end):
4129         (ObjcInstance::getClass):
4130         (ObjcInstance::invokeMethod):
4131         (ObjcInstance::invokeDefaultMethod):
4132         (ObjcInstance::setValueOfField):
4133         (ObjcInstance::supportsSetValueOfUndefinedField):
4134         (ObjcInstance::setValueOfUndefinedField):
4135         (ObjcInstance::getValueOfField):
4136         (ObjcInstance::getValueOfUndefinedField):
4137         (ObjcInstance::defaultValue):
4138         (ObjcInstance::stringValue):
4139         (ObjcInstance::numberValue):
4140         (ObjcInstance::booleanValue):
4141         (ObjcInstance::valueOf):
4142         * bindings/objc/objc_runtime.h:
4143         * bindings/objc/objc_runtime.mm:
4144         (ObjcMethod::ObjcMethod):
4145         (ObjcMethod::name):
4146         (ObjcMethod::getMethodSignature):
4147         (ObjcMethod::setJavaScriptName):
4148         (ObjcField::name):
4149         (ObjcField::type):
4150         (ObjcField::valueFromInstance):
4151         (convertValueToObjcObject):
4152         (ObjcField::setValueToInstance):
4153         (ObjcArray::operator=):
4154         (ObjcArray::setValueAt):
4155         (ObjcArray::valueAt):
4156         (ObjcFallbackObjectImp::ObjcFallbackObjectImp):
4157         (ObjcFallbackObjectImp::callAsFunction):
4158         (ObjcFallbackObjectImp::defaultValue):
4159
4160 2006-06-28  Anders Carlsson  <acarlsson@apple.com>
4161
4162         Reviewed by Geoff.
4163
4164         http://bugs.webkit.org/show_bug.cgi?id=8636
4165         REGRESSION: JavaScript access to Java applet causes hang (_webViewURL not implemented)
4166
4167         * bindings/jni/jni_objc.mm:
4168         (KJS::Bindings::dispatchJNICall):
4169         Just pass nil as the calling URL. This will cause the Java plugin to use the URL of the page
4170         containing the applet (which is what we used to do).
4171
4172 2006-06-27  Timothy Hatcher  <timothy@apple.com>
4173
4174         Reviewed by Darin.
4175
4176         <rdar://problem/4406785> Add an export file to TOT JavaScriptCore like the Safari-2-0-branch
4177
4178         * JavaScriptCore.exp: Added.
4179         * JavaScriptCore.xcodeproj/project.pbxproj:
4180
4181 2006-06-25  Geoffrey Garen  <ggaren@apple.com>
4182
4183         Reviewed by Adele.
4184         
4185         - Added JSConstructorMake to match JSFunctionMake, along with test code.
4186         
4187         [ I checked in the ChangeLog before without the actual files. ]
4188
4189         * API/JSObjectRef.cpp:
4190         (JSConstructorMake):
4191         * API/JSObjectRef.h:
4192         * API/testapi.c:
4193         (myConstructor_callAsConstructor):
4194         (main):
4195         * API/testapi.js:
4196         * ChangeLog:
4197         * JavaScriptCore.xcodeproj/project.pbxproj: Moved testapi.c to the testapi
4198         target -- this was an oversight in my earlier check-in.
4199
4200 2006-06-25  Timothy Hatcher  <timothy@apple.com>
4201
4202         Reviewed by Darin.
4203
4204         Bug 9574: Drosera should show inline scripts within the original HTML
4205         http://bugs.webkit.org/show_bug.cgi?id=9574
4206
4207         Pass the starting line number and error message to the debugger.
4208
4209         * kjs/debugger.cpp:
4210         (Debugger::sourceParsed):
4211         * kjs/debugger.h:
4212         * kjs/function.cpp:
4213         (KJS::GlobalFuncImp::callAsFunction):
4214         * kjs/function_object.cpp:
4215         (FunctionObjectImp::construct):
4216         * kjs/interpreter.cpp:
4217         (KJS::Interpreter::evaluate):
4218
4219 2006-06-24  Alexey Proskuryakov  <ap@nypop.com>
4220
4221         Rubber-stamped by Eric.
4222
4223         Add a -h (do not follow symlinks) option to ln in derived sources build script (without it,
4224         a symlink was created inside the source directory on second build).
4225
4226         * JavaScriptCore.xcodeproj/project.pbxproj:
4227
4228 2006-06-24  David Kilzer  <ddkilzer@kilzer.net>
4229
4230         Reviewed by Timothy.
4231
4232         * Info.plist: Fixed copyright to include 2003-2006.
4233
4234 2006-06-24  Alexey Proskuryakov  <ap@nypop.com>
4235
4236         Reviewed by Darin.
4237
4238         - http://bugs.webkit.org/show_bug.cgi?id=9418
4239         WebKit will not build when Space exists in path
4240
4241         * JavaScriptCore.xcodeproj/project.pbxproj: Enclose search paths in quotes; create symlinks to 
4242         avoid passing paths with spaces to make.
4243
4244 2006-06-23  Timothy Hatcher  <timothy@apple.com>
4245
4246         Reviewed by Darin.