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