1 2007-03-17 Timothy Hatcher <timothy@apple.com>
5 Made Version.xcconfig smarter when building for different configurations.
6 Now uses the 522+ OpenSource version for Debug and Release, while using the
7 full 522.4 version for Production builds. The system prefix is also computed
8 based on the current system, so 4522.4 on Tiger and 5522.4 on Leopard.
10 * Configurations/JavaScriptCore.xcconfig:
11 * Configurations/Version.xcconfig:
13 2007-03-15 Maciej Stachowiak <mjs@apple.com>
19 * wtf/TCSystemAlloc.cpp:
21 2007-03-15 Maciej Stachowiak <mjs@apple.com>
23 Reviewed by Geoff and Steve.
25 - fix some portability issues with TCMalloc.
27 * JavaScriptCore.vcproj/WTF/WTF.vcproj:
31 (WTF::InitSizeClasses):
32 (WTF::TCMalloc_PageHeap::Split):
33 (WTF::TCMalloc_PageHeap::RegisterSizeClass):
34 (WTF::TCMalloc_Central_FreeList::length):
35 (WTF::TCMalloc_ThreadCache::InitTSD):
36 (WTF::TCMalloc_ThreadCache::CreateCacheIfNecessary):
38 * wtf/TCSystemAlloc.cpp:
40 (TCMalloc_SystemAlloc):
42 2007-03-15 Timothy Hatcher <timothy@apple.com>
46 * Factored out most of our common build settings into .xcconfig files. Anything that was common in
47 each build configuration was factored out into the shared .xcconfig file.
48 * Adds a Version.xcconfig file to define the current framework version, to be used in other places.
49 * Use the new $(BUNDLE_VERSION) (defined in Version.xcconfig) in the preprocessed Info.plist.
50 * Use the versions defined in Version.xcconfig to set $(DYLIB_CURRENT_VERSION).
52 * Configurations/Base.xcconfig: Added.
53 * Configurations/DebugRelease.xcconfig: Added.
54 * Configurations/JavaScriptCore.xcconfig: Added.
55 * Configurations/Version.xcconfig: Added.
57 * JavaScriptCore.xcodeproj/project.pbxproj:
59 2007-03-16 Shrikant Gangoda <shrikant.gangoda@celunite.com>
63 * kjs/DateMath.cpp: gettimeofday comes from <sys/time.h> on Linux.
65 2007-03-14 Kevin McCullough <kmccullough@apple.com>
69 - Fixed one more build breakage
71 * kjs/date_object.cpp:
72 (KJS::formatLocaleDate):
74 2007-03-14 Kevin McCullough <kmccullough@apple.com>
78 - Fixed a build breakage.
81 * kjs/date_object.cpp:
82 (KJS::formatLocaleDate):
83 (KJS::DateObjectImp::construct):
85 2007-03-14 Kevin McCullough <kmccullough@apple.com>
89 - rdar://problem/5045720
90 - DST changes in US affect JavaScript date calculations (12975)
91 This fix was to ensure we properly test for the new changes to DST in the US.
92 Also this fixes when we apply DST, now we correctly map most past years to current
93 DST rules. We still have a small issue with years before 1900 or after 2100.
94 rdar://problem/5055038
96 * kjs/DateMath.cpp: Fix DST to match spec better.
97 (KJS::getCurrentUTCTime):
98 (KJS::mimimumYearForDST):
99 (KJS::maximumYearForDST):
100 (KJS::equivalentYearForDST):
102 * kjs/DateMath.h: Consolodated common funtionality.
103 * kjs/date_object.cpp: Consolodated common functionality.
104 (KJS::formatLocaleDate):
105 (KJS::DateObjectImp::construct):
106 * tests/mozilla/ecma/jsref.js: Added functions for finding the correct days when DST starts and ends.
107 * tests/mozilla/ecma/shell.js: Added back in the old DST functions for ease of merging with mozilla if needed.
108 * tests/mozilla/ecma_2/jsref.js: Added functions for finding the correct days when DST starts and ends.
109 * tests/mozilla/ecma_3/Date/shell.js: Added functions for finding the correct days when DST starts and ends.
110 * tests/mozilla/expected.html: Updated to show all date tests passing.
112 === Safari-5522.4 ===
114 2007-03-13 Kevin McCullough <kmccullough@apple.com>
118 - Adding expected failures until the are truly fixed.
119 - rdar://problem/5060302
121 * tests/mozilla/expected.html:
123 2007-03-12 Kevin McCullough <kmccullough@apple.com>
127 - Actually update tests for new DST rules.
129 * tests/mozilla/ecma/Date/15.9.3.1-1.js:
130 * tests/mozilla/ecma/Date/15.9.3.1-2.js:
131 * tests/mozilla/ecma/Date/15.9.3.1-3.js:
132 * tests/mozilla/ecma/Date/15.9.3.1-4.js:
133 * tests/mozilla/ecma/Date/15.9.3.1-5.js:
134 * tests/mozilla/ecma/Date/15.9.3.2-1.js:
135 * tests/mozilla/ecma/Date/15.9.3.2-2.js:
136 * tests/mozilla/ecma/Date/15.9.3.2-3.js:
137 * tests/mozilla/ecma/Date/15.9.3.2-4.js:
138 * tests/mozilla/ecma/Date/15.9.3.2-5.js:
139 * tests/mozilla/ecma/Date/15.9.3.8-1.js:
140 * tests/mozilla/ecma/Date/15.9.3.8-2.js:
141 * tests/mozilla/ecma/Date/15.9.3.8-3.js:
142 * tests/mozilla/ecma/Date/15.9.3.8-4.js:
143 * tests/mozilla/ecma/Date/15.9.3.8-5.js:
144 * tests/mozilla/ecma/Date/15.9.5.10-1.js:
145 * tests/mozilla/ecma/Date/15.9.5.10-10.js:
146 * tests/mozilla/ecma/Date/15.9.5.10-11.js:
147 * tests/mozilla/ecma/Date/15.9.5.10-12.js:
148 * tests/mozilla/ecma/Date/15.9.5.10-13.js:
149 * tests/mozilla/ecma/Date/15.9.5.10-2.js:
150 * tests/mozilla/ecma/Date/15.9.5.10-3.js:
151 * tests/mozilla/ecma/Date/15.9.5.10-4.js:
152 * tests/mozilla/ecma/Date/15.9.5.10-5.js:
153 * tests/mozilla/ecma/Date/15.9.5.10-6.js:
154 * tests/mozilla/ecma/Date/15.9.5.10-7.js:
155 * tests/mozilla/ecma/Date/15.9.5.10-8.js:
156 * tests/mozilla/ecma/Date/15.9.5.10-9.js:
157 * tests/mozilla/ecma/jsref.js:
158 * tests/mozilla/ecma_2/jsref.js:
159 * tests/mozilla/ecma_3/Date/shell.js:
161 2007-03-12 Kevin McCullough <kmccullough@apple.com>
165 - Update tests for new DST rules.
167 * tests/mozilla/ecma/shell.js:
169 2007-03-11 Geoffrey Garen <ggaren@apple.com>
171 Reviewed by Oliver Hunt.
173 Fixed <rdar://problem/4681051> Installer crashes in KJS::Collector::
174 markOtherThreadConservatively(KJS::Collector::Thread*) trying to install
175 iLife 06 using Rosetta on an Intel Machine
177 The problem was that our thread-specific data destructor would modify the
178 list of active JavaScript threads without holding the JSLock, corrupting
179 the list. Corruption was especially likely if one JavaScript thread exited
180 while another was starting up.
182 * JavaScriptCore.exp:
183 * kjs/JSLock.cpp: Don't conflate locking the JSLock with registering a
184 thread, since the thread-specific data destructor needs to lock
185 without registering a thread. Instead, treat thread registration as a
186 part of the convenience of the JSLock object, and whittle down JSLock::lock()
187 to just the bits that actually do the locking.
189 (KJS::JSLock::registerThread):
190 * kjs/JSLock.h: Updated comments to mention the new behavior above, and
191 other recent changes.
192 (KJS::JSLock::JSLock):
194 (KJS::destroyRegisteredThread): Lock here.
195 (KJS::Collector::registerThread): To match, assert that we're locked here.
197 2007-03-10 Geoffrey Garen <ggaren@apple.com>
199 Reviewed by Darin Adler.
201 Fixed <rdar://problem/4587763> PAC file: lock inversion between QT and
202 JSCore causes a hang @ www.panoramas.dk
204 With a PAC file, run-webkit-tests --threaded passes, the reported site
205 works, and all the Quicktime/JavaScript and Flash/JavaScript examples
206 I found through Google work, too.
208 Any time JavaScript causes arbitrary non-JavaScript code to execute, it
209 risks deadlock, because that code may block, trying to acquire a lock
210 owned by a thread that is waiting to execute JavaScript. In this case,
211 the thread was a networking thread that was waiting to interpret a PAC file.
213 Because non-JavaScript code may execute in response to, well, anything,
214 a perfect solution to this problem is impossible. I've implemented an
215 optimistic solution, instead: JavaScript will drop its lock whenever it
216 makes a direct call to non-JavaScript code through a bridging/plug-in API,
217 but will blissfully ignore the indirect ways it may cause non-JavaScript
218 code to run (resizing a window, for example).
220 Unfortunately, this solution introduces significant locking overhead in
221 the bridging APIs. I don't see a way around that.
223 This patch includes some distinct bug fixes I saw along the way:
225 * bindings/objc/objc_instance.mm: Fixed a bug where a nested begin() call
226 would leak its autorelease pool, because it would NULL out _pool without
229 * bindings/runtime_object.cpp:
230 (RuntimeObjectImp::methodGetter): Don't copy an Identifier to ASCII only
231 to turn around and make an Identifier from the ASCII. In an earlier
232 version of this patch, the copy caused an assertion failure. Now it's
233 just unnecessary work.
234 (RuntimeObjectImp::getOwnPropertySlot): ditto
236 * bindings/objc/objc_instance.h: Removed overrides of setVAlueOfField and
237 getValueOfField, because they did exactly what the base class versions did.
238 Removed overrides of Noncopyable declarations for the same reason.
240 * bindings/runtime.h: Inherit from Noncopyable instead of rolling our own.
241 * bindings/c/c_instance.h: ditto
243 And the actual patch:
245 * API/JSCallbackConstructor.cpp: Drop all locks when calling out to C.
246 (KJS::JSCallbackConstructor::construct):
247 * API/JSCallbackFunction.cpp: ditto
248 (KJS::JSCallbackFunction::callAsFunction):
249 * API/JSCallbackObject.cpp: ditto
250 (KJS::JSCallbackObject::init):
251 (KJS::JSCallbackObject::~JSCallbackObject):
252 (KJS::JSCallbackObject::getOwnPropertySlot):
253 (KJS::JSCallbackObject::put):
254 (KJS::JSCallbackObject::deleteProperty):
255 (KJS::JSCallbackObject::construct):
256 (KJS::JSCallbackObject::hasInstance):
257 (KJS::JSCallbackObject::callAsFunction):
258 (KJS::JSCallbackObject::getPropertyNames):
259 (KJS::JSCallbackObject::toNumber):
260 (KJS::JSCallbackObject::toString):
261 (KJS::JSCallbackObject::staticValueGetter):
262 (KJS::JSCallbackObject::callbackGetter):
264 * bindings/c/c_instance.cpp: Drop all locks when calling out to C.
265 (KJS::Bindings::CInstance::invokeMethod):
266 (KJS::Bindings::CInstance::invokeDefaultMethod):
267 * bindings/c/c_runtime.cpp: Drop all locks when calling out to C.
268 (KJS::Bindings::CField::valueFromInstance):
269 (KJS::Bindings::CField::setValueToInstance):
270 * bindings/jni/jni_objc.mm:
271 (KJS::Bindings::dispatchJNICall): Drop all locks when calling out to Java.
273 * bindings/objc/objc_instance.mm: The changes here are to accomodate the
274 fact that C++ unwinding of DropAllLocks goes crazy when you put it inside
275 a @try block. I moved all JavaScript stuff outside of the @try blocks, and
276 then prefixed the whole blocks with DropAllLocks objects. This required some
277 supporting changes in other functions, which now acquire the JSLock for
278 themselves, intead of relying on their callers to do so.
280 (ObjcInstance::invokeMethod):
281 (ObjcInstance::invokeDefaultMethod):
282 (ObjcInstance::setValueOfUndefinedField):
283 (ObjcInstance::getValueOfUndefinedField):
284 * bindings/objc/objc_runtime.mm: Same as above, except I didn't want to
285 change throwError to acquire the JSLock for itself.
286 (ObjcField::valueFromInstance):
287 (ObjcField::setValueToInstance):
288 * bindings/objc/objc_utility.mm: Supporting changes mentioned above.
289 (KJS::Bindings::convertValueToObjcValue):
290 (KJS::Bindings::convertObjcValueToValue):
293 (1) Fixed DropAllLocks to behave as advertised, and drop the JSLock only
294 if the current thread actually acquired it in the first place. This is
295 important because WebKit needs to ensure that the JSLock has been
296 dropped before it makes a plug-in call, even though it doesn't know if
297 the current thread actually acquired the JSLock. (We don't want WebKit
298 to accidentally drop a lock belonging to *another thread*.)
299 (2) Used the new per-thread code written for (1) to make recursive calls
300 to JSLock very cheap. JSLock now knows to call pthread_mutext_lock/
301 pthread_mutext_unlock only at nesting level 0.
302 (KJS::createDidLockJSMutex):
304 (KJS::JSLock::unlock):
305 (KJS::DropAllLocks::DropAllLocks):
306 (KJS::DropAllLocks::~DropAllLocks):
307 (KJS::JSLock::lockCount):
308 * kjs/JSLock.h: Don't duplicate Noncopyable.
309 (KJS::JSLock::~JSLock):
311 * wtf/Assertions.h: Blind attempt at helping the Windows build.
313 2007-03-08 MorganL <morganl.webkit@yahoo.com>
317 http://bugs.webkit.org/show_bug.cgi?id=13018
318 Bug 13018: allow embedders to override the definition of CRASH.
320 * wtf/Assertions.h: make it possible to override CRASH.
322 2007-03-07 Anrong Hu <huanr@yahoo.com>
326 Fix http://bugs.webkit.org/show_bug.cgi?id=12535
327 Bug 12535: Stack-optimizing compilers can trick GC into freeing in-use objects
330 (KJS::StringImp::toObject): Copy val onto the stack so it is not subject to garbage collection.
332 2007-03-07 Geoffrey Garen <ggaren@apple.com>
334 Build fix for non-multiple-thread folks.
336 Use a shared global in the non-multiple-thread case.
338 * wtf/FastMalloc.cpp:
340 (WTF::fastMallocForbid):
341 (WTF::fastMallocAllow):
343 2007-03-07 Geoffrey Garen <ggaren@apple.com>
345 Reviewed by Darin Adler.
347 Fixed ASSERT failure I just introduced.
349 Made the fastMalloc isForbidden flag per thread. (Oops!) We expect that
350 other threads will malloc while we're marking -- we just want to prevent
351 our own marking from malloc'ing.
353 * wtf/FastMalloc.cpp:
354 (WTF::initializeIsForbiddenKey):
356 (WTF::fastMallocForbid):
357 (WTF::fastMallocAllow):
364 2007-03-07 Shrikant Gangoda <shrikant.gangoda@celunite.com>
368 http://bugs.webkit.org/show_bug.cgi?id=12997
370 Wrap pthread-specific assertion in #if USE(MULTIPLE_THREADS).
373 (KJS::Collector::markMainThreadOnlyObjects):
375 2007-03-06 Geoffrey Garen <ggaren@apple.com>
377 Reviewed by Maciej Stachowiak.
379 Fixed <rdar://problem/4576242> | http://bugs.webkit.org/show_bug.cgi?id=12586
380 PAC file: malloc deadlock sometimes causes a hang @ www.apple.com/pro/profiles/ (12586)
382 This is a modified version of r14752 on the branch.
384 These changes just add debugging functionality. They ASSERT that we don't
385 malloc during the mark phase of a garbage collection, which can cause a
389 (KJS::Collector::collect):
390 * wtf/FastMalloc.cpp:
391 (WTF::fastMallocForbid):
392 (WTF::fastMallocAllow):
400 2007-03-06 Geoffrey Garen <ggaren@apple.com>
402 Reviewed by Maciej Stachowiak.
404 Fixed all known crashers exposed by run-webkit-tests --threaded. This covers:
406 <rdar://problem/4565394> | http://bugs.webkit.org/show_bug.cgi?id=12585
407 PAC file: after closing a window that contains macworld.com, new window
408 crashes (KJS::PropertyMap::mark()) (12585)
409 <rdar://problem/4571215> | http://bugs.webkit.org/show_bug.cgi?id=9211
410 PAC file: Crash occurs when clicking on the navigation tabs at http://www.businessweek.com/ (9211)
411 <rdar://problem/4557926>
412 PAC file: Crash occurs when attempting to view image in slideshow mode
413 at http://d.smugmug.com/gallery/581716 ( KJS::IfNode::execute (KJS::
414 ExecState*) + 312) if you use a PAC file
416 (1) Added some missing JSLocks, along with related ASSERTs.
418 (2) Fully implemented support for objects that can only be garbage collected
419 on the main thread. So far, only WebCore uses this. We can add it to API
420 later if we learn that it's needed.
422 The implementation uses a "main thread only" flag inside each object. When
423 collecting on a secondary thread, the Collector does an extra pass through
424 the heap to mark all flagged objects before sweeping. This solution makes
425 the common case -- flag lots of objects, but never collect on a secondary
426 thread -- very fast, even though the uncommon case of garbage collecting
427 on a secondary thread isn't as fast as it could be. I left some notes
428 about how to speed it up, if we ever care.
430 For posterity, here are some things I learned about GC while investigating:
432 * Each collect must either mark or delete every heap object. "Zombie"
433 objects, which are neither marked nor deleted, raise these issues:
435 * On the next pass, the conservative marking algorithm might mark a
436 zombie, causing it to mark freed objects.
438 * The client might try to use a zombie, which would seem live because
439 its finalizer had not yet run.
441 * A collect on the main thread is free to delete any object. Presumably,
442 objects allocated on secondary threads have thread-safe finalizers.
444 * A collect on a secondary thread must not delete thread-unsafe objects.
446 * The mark function must be thread-safe.
448 Line by line comments:
450 * API/JSObjectRef.h: Added comment specifying that the finalize callback
451 may run on any thread.
453 * JavaScriptCore.exp: Nothing to see here.
455 * bindings/npruntime.cpp:
456 (_NPN_GetStringIdentifier): Added JSLock.
458 * bindings/objc/objc_instance.h:
459 * bindings/objc/objc_instance.mm:
460 (ObjcInstance::~ObjcInstance): Use an autorelease pool. The other callers
461 to CFRelease needed one, too, but they were dead code, so I removed them
462 instead. (This fixes a leak seen while running run-webkit-tests --threaded,
463 although I don't think it's specifically a threading issue.)
466 (KJS::Collector::collectOnMainThreadOnly): New function. Tells the collector
467 to collect a value only if it's collecting on the main thread.
468 (KJS::Collector::markMainThreadOnlyObjects): New function. Scans the heap
469 for "main thread only" objects and marks them.
471 * kjs/date_object.cpp:
472 (KJS::DateObjectImp::DateObjectImp): To make the new ASSERTs happy, allocate
473 our globals on the heap, avoiding a seemingly unsafe destructor call at
475 * kjs/function_object.cpp:
476 (FunctionPrototype::FunctionPrototype): ditto
478 * kjs/interpreter.cpp:
479 (KJS::Interpreter::mark): Removed boolean parameter, which was an incomplete
480 and arguably hackish way to implement markMainThreadOnlyObjects() inside WebCore.
483 * kjs/identifier.cpp:
484 (KJS::identifierTable): Added some ASSERTs to check for thread safety
487 * kjs/list.cpp: Added some ASSERTs to check for thread safety problems.
488 (KJS::allocateListImp):
489 (KJS::List::release):
491 (KJS::List::empty): Make the new ASSERTs happy.
494 (KJS::JSObject::JSObject): "m_destructorIsThreadSafe" => "m_collectOnMainThreadOnly".
495 I removed the constructor parameter because m_collectOnMainThreadOnly,
496 like m_marked, is a Collector bit, so only the Collector should set or get it.
498 * kjs/object_object.cpp:
499 (ObjectPrototype::ObjectPrototype): Make the ASSERTs happy.
500 * kjs/regexp_object.cpp:
501 (RegExpPrototype::RegExpPrototype): ditto
503 * kjs/ustring.cpp: Added some ASSERTs to check for thread safety problems.
504 (KJS::UCharReference::ref):
505 (KJS::UString::Rep::createCopying):
506 (KJS::UString::Rep::create):
507 (KJS::UString::Rep::destroy):
508 (KJS::UString::null): Make the new ASSERTs happy.
510 (KJS::UString::Rep::ref): Added some ASSERTs to check for thread safety problems.
511 (KJS::UString::Rep::deref):
514 (KJS::JSCell::JSCell):
516 2007-03-06 Geoffrey Garen <ggaren@apple.com>
518 Reviewed by Maciej Stachowiak.
520 2% speedup on super accurate JS iBench.
522 (KJS::Collector::collect): Removed anti-optimization to call
523 pthread_is_threaded_np() before calling pthread_main_np(). Almost all
524 apps have more than one thread, so the extra call is actually worse.
525 Interestingly, even the single-threaded testkjs shows a speed gain
526 from removing the pthread_is_threaded_np() short-circuit. Not sure why.
528 2007-03-04 Don Gibson <dgibson77@gmail.com>
530 Reviewed by Nikolas Zimmermann.
532 - fix http://bugs.webkit.org/show_bug.cgi?id=12950
533 Assertions.cpp should not #define macros that are already defined
535 * wtf/Assertions.cpp: Don't #define WINVER and _WIN32_WINNT if they
538 2007-03-02 Steve Falkenburg <sfalken@apple.com>
542 Add unsigned int hash traits (matches existing unsigned long version)
547 2007-03-02 Adam Roben <aroben@apple.com>
551 Try to fix the Qt build.
554 (KJS::msToGregorianDateTime): Removed unnecessary "struct" keyword.
555 * kjs/DateMath.h: Moved forward declarations to the top of the file
556 before they are used.
557 * kjs/date_object.cpp:
558 (KJS::formatLocaleDate): Changed to take a const GregorianDateTime&
559 since GregorianDateTime is Noncopyable.
561 2007-03-02 Darin Adler <darin@apple.com>
563 Reviewed by Kevin McCullough.
565 - fix http://bugs.webkit.org/show_bug.cgi?id=12867
566 REGRESSION: BenchJS test 7 (dates) is 220% slower than in Safari 2.0.4
568 * kjs/DateMath.h: Marked GregorianDateTime as noncopyable, since it has a non-trivial
569 destructor and not the correspoding copy constructor or assignment operator.
570 Changed the GregorianDateTime constructor to use member initialization syntax.
571 Fixed the destructor to use the array delete operator, since timeZone is an array.
574 (KJS::daysInYear): Changed to call isLeapYear so the rule is not repeated twice.
575 (KJS::getUTCOffset): Added caching on PLATFORM(DARWIN), since we can rely on the
576 notify_check function and "com.apple.system.timezone" to let us know when the
579 2007-02-27 Geoffrey Garen <ggaren@apple.com>
581 Reviewed by Darin Adler.
583 Follow-up to fixing http://bugs.webkit.org/show_bug.cgi?id=12659 | <rdar://problem/4954306>
584 JS objects not collected after closing window @ ebay.com/maps.google.com
586 Changed Interpreter cache of global constructors and prototypes from
587 ProtectedPtrs to bare, marked pointers. ProtectedPtrs are inefficient,
588 and they increase the risk of reference cycles. Also, Darin said something
589 about ProtectedPtrs giving him warts.
591 Also changed data members to precise types from generic JSObject*'s.
593 Layout tests and JS tests pass.
595 * kjs/SavedBuiltins.h:
596 * kjs/interpreter.cpp:
597 (KJS::Interpreter::init):
598 (KJS::Interpreter::~Interpreter):
599 (KJS::Interpreter::initGlobalObject): Moved Identifier::init() call to
600 constructor, for clarity.
601 (KJS::Interpreter::mark):
604 2007-02-27 Geoffrey Garen <ggaren@apple.com>
606 Reviewed by Maciej Stachowiak.
608 Fixed http://bugs.webkit.org/show_bug.cgi?id=12659 | <rdar://problem/4954306>
609 JS objects not collected after closing window @ ebay.com/maps.google.com
611 Don't GC in the Interpreter destructor. For that to work, the Interpreter
612 would have to NULL out all of its ProtectedPtrs before calling collect(). But
613 we've decided that we don't want things to work that way, anyway. We want the
614 client to be in charge of manual GC so that it can optimize cases when
615 it will be destroying many interpreters at once
616 (e.g., http://bugs.webkit.org/show_bug.cgi?id=12900).
618 Also removed Interpreter::collect() because it was redundant with
619 Collector::collect().
621 * JavaScriptCore.exp:
622 * kjs/interpreter.cpp:
623 (KJS::Interpreter::~Interpreter):
625 (TestFunctionImp::callAsFunction):
627 2007-02-26 Krzysztof Kowalczyk <kkowalczyk@gmail.com>
629 Reviewed by Adam Roben.
631 Rename *_SUPPORT defines to ENABLE_*.
635 2007-02-26 Maciej Stachowiak <mjs@apple.com>
639 - <rdar://problem/5021698> Disable experimental SVG features (12883)
641 * wtf/Platform.h: Add ENABLE() macro similar to HAVE() and USE(), to
642 allow nicer handling of optional WebKit features.
644 2007-02-22 George Staikos <staikos@kde.org>
650 * wtf/unicode/qt4/UnicodeQt4.h:
651 (WTF::Unicode::toLower):
652 (WTF::Unicode::toUpper):
654 2007-02-22 Oscar Cwajbaum <public@oscarc.net>
658 Fix ARM-specific alignment problem in FastMalloc
659 http://bugs.webkit.org/show_bug.cgi?id=12841
661 * wtf/FastMalloc.cpp:
662 Modify how pageheap_memory is declared to ensure proper alignment
663 on architectures such as ARM
665 2007-02-20 Zack Rusin <zrusin@trolltech.com>
669 Make sure that non-void methods always return something.
671 * wtf/unicode/qt4/UnicodeQt4.h:
672 (WTF::Unicode::toLower):
673 (WTF::Unicode::toUpper):
674 (WTF::Unicode::foldCase):
676 2007-02-18 Kevin Ollivier <kevino@theolliviers.com>
678 Reviewed by Adam Roben.
680 Fix cases where MSVC-specific code was identified as Win32 platform
681 code. (as it should be compiled for e.g. wx port when using MSVC too)
685 * wtf/StringExtras.h:
686 changed PLATFORM(WIN) sections to COMPILER(MSVC) as necessary
688 2007-02-17 Krzysztof Kowalczyk <kkowalczyk@gmail.com>
690 Reviewed by Adam Roben.
692 Fix crashes on ARM due to different struct packing. Based on a patch
694 * kjs/ustring.cpp: compile-time assert to make sure sizeof(UChar) == 2
695 * kjs/ustring.h: pack UChar struct to ensure that sizeof(UChar) == 2
696 * wtf/Assertions.h: add COMPILE_ASSERT macro for compile-time assertions
698 2007-02-16 George Staikos <staikos@kde.org>
702 Fix uninitialized variable
704 * bindings/testbindings.cpp:
707 2007-02-16 Anders Carlsson <acarlsson@apple.com>
711 http://bugs.webkit.org/show_bug.cgi?id=12788
712 REGRESSION: Going back one page in history has a noticeable delay
714 Um...if all elements in two vectors are equal, then I guess we could say that
715 the two vectors are equal too.
720 2007-02-14 Anders Carlsson <acarlsson@apple.com>
724 Add new canCompareWithMemcmp vector trait and use it to determine whether
725 operator== can use memcmp.
729 (WTF::VectorTypeOperations::compare):
731 * wtf/VectorTraits.h:
734 2007-02-13 Brady Eidson <beidson@apple.com>
743 2007-02-13 Dex Deacon <occupant4@gmail.com>
747 - fix for http://bugs.webkit.org/show_bug.cgi?id=12750
748 Vector operator== was not defined correctly. It returned void,
749 did not accept const Vectors, and used an int instead of size_t.
751 * wtf/Vector.h: fixed comparison operators
755 2007-02-10 David Carson <dacarson@gmail.com>
759 - fix for http://bugs.webkit.org/show_bug.cgi?id=12636
760 Corrected the generation of method signatures when the parameter
762 Added support for converting a Javascript array to a Java array.
764 * bindings/jni/jni_utility.h: added new type for array, array_type
765 * bindings/jni/jni_runtime.cpp: add support for new array type
766 (JavaField::valueFromInstance):
767 (JavaField::setValueToInstance):
768 (JavaMethod::JavaMethod):
769 (JavaMethod::signature):
770 * bindings/jni/jni_utility.cpp: add support for new array type
771 (KJS::Bindings::callJNIMethod):
772 (KJS::Bindings::callJNIStaticMethod):
773 (KJS::Bindings::callJNIMethodIDA):
774 (KJS::Bindings::JNITypeFromClassName):
775 (KJS::Bindings::signatureFromPrimitiveType):
776 (KJS::Bindings::JNITypeFromPrimitiveType):
777 (KJS::Bindings::getJNIField):
778 (KJS::Bindings::convertArrayInstanceToJavaArray): new method
779 converts the Javascript array to the requested Java array.
780 (KJS::Bindings::convertValueToJValue):
782 2007-02-08 Anders Carlsson <acarlsson@apple.com>
786 <rdar://problem/4930614>
787 Safari complains about "Slow Script" if GMail is left open and machine is busy
789 <rdar://problem/4649516>
790 Turn off slow script dialog or crank up time that makes it come up
792 <rdar://problem/4963589>
793 Slow script warning is displayed after closing of PROMPT or PRINT dialog
795 Re-do the way script timeouts are handled. No longer use a unix timer that sends signals. Instead, add a
796 tick count and increment it in loop bodies. If the tick count reaches a threshold, do a timeout check. If the total time executing
797 is higher than the timeout value, (possibly) interrupt the script. The timeout checker also adjusts the threshold dynamically
798 to prevent doing the timeout check too often.
800 * JavaScriptCore.exp:
801 Remove pause and resume calls.
803 * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
806 * kjs/interpreter.cpp:
807 (KJS::Interpreter::init):
808 (KJS::Interpreter::~Interpreter):
809 (KJS::Interpreter::startTimeoutCheck):
810 (KJS::Interpreter::stopTimeoutCheck):
811 (KJS::Interpreter::resetTimeoutCheck):
812 (KJS::getCurrentTime):
813 (KJS::Interpreter::checkTimeout):
815 (KJS::Interpreter::timedOut):
817 (DoWhileNode::execute):
818 (WhileNode::execute):
821 2007-02-07 Darin Adler <darin@apple.com>
823 * JavaScriptCore.vcproj/JavaScriptCore.sln: Reenable testkjs.
825 2007-02-07 Darin Adler <darin@apple.com>
829 - another build fix; this time for sure
831 * pcre/pcre_exec.c: (match):
832 The compiler caught an incorrect use of the othercase variable across
833 a call to RMATCH in character repeat processing. Local variables can
834 change in the crazy NO_RECURSE mode that we use, so we instead need
835 the value in othercase to be in one of the special stack frame variables.
836 Added a new stack frame variable for this purpose named repeat_othercase.
837 Also noted a similar error in the non-UTF-16 side of the #ifdef, but
838 didn't try to fix that one. Also removed a SUPPORT_UCP #ifdef from the
839 PCRE_UTF16 side; that code doesn't work without the Unicde properties
840 table, and we don't try to use it that way.
842 2007-02-06 Steve Falkenburg <sfalken@apple.com>
844 Disable testkjs in sln until we figure out mysterious compiler warning.
846 * JavaScriptCore.vcproj/JavaScriptCore.sln:
848 2007-02-06 Steve Falkenburg <sfalken@apple.com>
855 2007-02-06 Darin Adler <darin@apple.com>
859 - fix <rdar://problem/4979089> PCRE should avoid setjmp/longjmp even when compiler
862 Added a new code path that's slower and way uglier but doesn't rely on GCC's
865 * pcre/pcre_exec.c: Added a numeric parameter to the RMATCH function. It must be
866 different at every RMATCH call site. Changed the non-GCC NO_RECURSE version of
867 the macro to use a label incorporating the number. Changed the RRETURN macro to
868 use a goto instead of longjmp.
869 (match): Added a different number at each callsite, using a perl script for the
870 first-time task. Going forward it should be easy to maintain by hand. Added a
871 switch statement at the bottom of the function. We'll get compile time errors
872 if we have anything in the switch statement that's never used in an RMATCH,
873 but errors in the other direction are silent except at runtime.
875 2007-02-06 Darin Adler <darin@apple.com>
879 - fix <rdar://problem/4687840> 9A241: JavaScript RegExp 25-30x slower than on 10.4.7
881 I used Shark to figure out what to do. The test case is now 15% faster than with
882 stock Safari. Some other regular expression cases might still be a few % slower
883 than before, but the >10x slowdown is now completely gone.
885 1) Fix slowness caused by setjmp/longjmp by using computed goto instead.
887 Use GCC extensions - locally declared labels, labels as values, and computed goto -
888 instead of using setjmp/longjmp to implemement non-recursive version of the regular
889 expression system. We could probably make this even faster if we reduced the use
892 2) Fix slowness caused by allocating heapframe objects by allocating the first
893 16 of them from the stack.
895 3) Speed up use of malloc and free in PCRE by making it use fastMalloc and fastFree.
897 4) Speed up the test case by adding a special case to a UString function.
899 5) Made a small improvement to the innermost hottest loop of match by hoisting
900 the conversion from int to pcre_uchar out of the loop.
902 * JavaScriptCore.xcodeproj/project.pbxproj: Compile FastMallocPCRE.cpp, and don't
903 compile pcre_globals.c.
905 * wtf/FastMallocPCRE.cpp: Added. A copy of pcre_globals.c that uses FastMalloc.h.
906 This is better than code that sets the PCRE allocation globals because by doing it
907 this way there's guaranteed to be no problem with order of initialization.
909 * kjs/ustring.cpp: (KJS::UString::spliceSubstringsWithSeparators): Add a fast
910 special case when this is called for only one subrange and no seaprators. This
911 was happening a lot in the test case and it seems quite reasonable to optimize this.
913 * pcre/pcre_exec.c: Create a copy of the RMATCH and RRETURN macros that use goto
914 instead of setjmp/longjmp. Change code that calls pcre_stack_malloc to first use
915 storage on the stack inside the match function.
916 (match): Move initialization of utf8 up a couple lines to avoid "possibly used
917 uninitialized" warning. Use a local variable so we compare with pcre_uchar instead
918 of with int inside the inner "find a character" loop.
920 2007-02-03 George Staikos <staikos@kde.org>
924 -1 is not a valid point. We can't handle anything > 0xffff anyway.
925 Fixes crash on cases like eval("x");
927 * wtf/unicode/qt4/UnicodeQt4.h:
928 (WTF::Unicode::category):
930 2007-02-02 Darin Adler <darin@apple.com>
934 - fix copying and assigning a ListHashSet
936 No test because the code path with bugs I am fixing is not used yet.
938 * wtf/ListHashSet.h: Tweaked ListHashSetNodeAllocator a little bit for clarity.
939 Changed m_allocator to be an OwnPtr instead of doing an explicit delete.
940 Fixed bug in copy constructor where we'd have an uninitialized m_allocator.
941 Fixed bug in assignment operator where it would swap only the hash table, and
942 not the head, tail, and allocator pointers.
944 2007-02-02 Geoffrey Garen <ggaren@apple.com>
946 Reviewed by Maciej Stachowiak.
948 Use WTFLog instead of fprintf for logging KJS::Node leaks.
951 (NodeCounter::~NodeCounter): Changed count to unsigned, updated
952 to match style guidelines.
954 2007-02-02 Maciej Stachowiak <mjs@apple.com>
956 - not reviewed, build fix
959 (WTF::ListHashSetNodeAllocator::ListHashSetNodeAllocator): ummm, use union correctly
961 2007-02-01 Maciej Stachowiak <mjs@apple.com>
965 - use a custom allocator for ListHashSet, to fix ~1% perf regression using it for form control
968 (WTF::ListHashSetNodeAllocator::ListHashSetNodeAllocator):
969 (WTF::ListHashSetNodeAllocator::allocate):
970 (WTF::ListHashSetNodeAllocator::deallocate):
971 (WTF::ListHashSetNode::operator new):
972 (WTF::ListHashSetNode::operator delete):
973 (WTF::ListHashSetNode::destroy):
974 (WTF::ListHashSetTranslator::translate):
975 (WTF::::ListHashSet):
976 (WTF::::~ListHashSet):
978 (WTF::::unlinkAndDelete):
979 (WTF::::deleteAllNodes):
981 2007-01-31 Maciej Stachowiak <mjs@apple.com>
988 (WTF::::remove): remove before deleting
990 2007-01-31 Maciej Stachowiak <mjs@apple.com>
992 Reviewed by Mark with help from Lars.
994 - added new ListHashSet class, which combines a hashtable and a linked list to provide a set
995 that keeps elements in inserted order
997 This is to assist in fixing the following:
998 <rdar://problem/4751164> REGRESSION: Safari places text on incorrect button when returning to a page via back [10541]
999 http://bugs.webkit.org/show_bug.cgi?id=10541
1001 * JavaScriptCore.vcproj/WTF/WTF.vcproj:
1002 * JavaScriptCore.xcodeproj/project.pbxproj:
1004 (WTF::HashTable::find):
1005 (WTF::HashTable::contains):
1008 * wtf/ListHashSet.h: Added.
1009 (WTF::ListHashSetNode::ListHashSetNode):
1010 (WTF::ListHashSetNodeHashFunctions::hash):
1011 (WTF::ListHashSetNodeHashFunctions::equal):
1012 (WTF::ListHashSetIterator::ListHashSetIterator):
1013 (WTF::ListHashSetIterator::get):
1014 (WTF::ListHashSetIterator::operator*):
1015 (WTF::ListHashSetIterator::operator->):
1016 (WTF::ListHashSetIterator::operator++):
1017 (WTF::ListHashSetIterator::operator--):
1018 (WTF::ListHashSetIterator::operator==):
1019 (WTF::ListHashSetIterator::operator!=):
1020 (WTF::ListHashSetIterator::operator const_iterator):
1021 (WTF::ListHashSetIterator::node):
1022 (WTF::ListHashSetConstIterator::ListHashSetConstIterator):
1023 (WTF::ListHashSetConstIterator::get):
1024 (WTF::ListHashSetConstIterator::operator*):
1025 (WTF::ListHashSetConstIterator::operator->):
1026 (WTF::ListHashSetConstIterator::operator++):
1027 (WTF::ListHashSetConstIterator::operator--):
1028 (WTF::ListHashSetConstIterator::operator==):
1029 (WTF::ListHashSetConstIterator::operator!=):
1030 (WTF::ListHashSetConstIterator::node):
1031 (WTF::ListHashSetTranslator::hash):
1032 (WTF::ListHashSetTranslator::equal):
1033 (WTF::ListHashSetTranslator::translate):
1034 (WTF::::ListHashSet):
1036 (WTF::::~ListHashSet):
1047 (WTF::::unlinkAndDelete):
1048 (WTF::::appendNode):
1049 (WTF::::deleteAllNodes):
1050 (WTF::::makeIterator):
1051 (WTF::::makeConstIterator):
1052 (WTF::deleteAllValues):
1054 2007-01-30 Darin Adler <darin@apple.com>
1056 * kjs/DateMath.cpp: Fix license header to reflect LGPL as the first license
1057 mentioned. We still mention the option of using under MPL or GPL since some
1058 of this code came from the Mozilla project with those license terms.
1060 2007-01-30 Simon Hausmann <hausmann@kde.org>
1064 Turned JavaScriptCore from a separate library into an includable
1065 project, to combine it all into libWebKitQt.
1067 * JavaScriptCore.pri: Added.
1068 * JavaScriptCore.pro: Removed.
1071 2007-01-29 Geoffrey Garen <ggaren@apple.com>
1073 Reviewed by Maciej Stachowiak.
1075 Fixed <rdar://problem/4485644> REGRESSION: JavaScriptCore has init routines
1077 The TCMalloc module now initializes, if needed, inside GetCache() and
1078 fastMallocSetIsMultiThreaded(). We leverage the same synchronization
1079 technique used for enabling / disabling the single-threaded optimization
1080 to synchronize initialization of the library without requiring a lock
1083 1,251 runs of tcmalloc_unittest, 2 runs of a custom, massively multi-threaded
1084 tcmalloc_unittest, and my custom version of the PLT show no regressions.
1085 Super-accurate JS iBench reports a .24% regression, which is right at the
1086 limit of its error range, so I'm declaring victory.
1088 * wtf/FastMalloc.cpp:
1089 (WTF::fastMallocSetIsMultiThreaded): Initialize, if needed. (InitModule()
1090 checks the "if needed" part.)
1091 (WTF::TCMalloc_ThreadCache::GetCache): Restored original TCMalloc code
1092 inside #ifdef, for posterity. Added new initialization logic.
1093 (WTF::TCMalloc_ThreadCache::InitModule): Call InitTSD(), since we don't
1094 have a static initializer to call it for us, now. This means that fastMalloc
1095 is not usable as a general libc allocator, but it never was, and if it were
1096 the general libc allocator, we wouldn't be here in the first place, so whatever.
1097 (WTF::TCMalloc_ThreadCache::InitTSD): Don't try to take the pageheap_lock,
1098 since InitModule already has it.
1100 2007-01-29 Kevin McCullough <KMcCullough@apple.com>
1102 Reviewed by Geoff and Oliver.
1104 - rdar://problem/4955561
1105 - missusing JavaScript shouldn't crash webkit. Now it doesn't, in this case.
1107 * bindings/objc/objc_runtime.mm:
1108 (ObjcFallbackObjectImp::callAsFunction):
1109 * bindings/runtime_method.cpp:
1110 (RuntimeMethod::callAsFunction):
1111 * bindings/runtime_object.cpp:
1112 (RuntimeObjectImp::callAsFunction):
1114 2007-01-28 Geoffrey Garen <ggaren@apple.com>
1116 Reviewed by Maciej Stachowiak.
1118 First step in fixing <rdar://problem/4485644> REGRESSION: JavaScriptCore
1121 Don't rely on a static initializer to store the main thread's ID (which
1122 we would use to detect allocations on secondary threads). Instead, require
1123 the caller to notify fastMalloc if it might allocate on a secondary thread.
1125 Also fixed what seemed like a race condition in do_malloc.
1127 tcmalloc_unittest and my custom versions of JS iBench and PLT show no
1130 * wtf/FastMalloc.cpp:
1131 (WTF::fastMallocSetIsMultiThreaded):
1132 (1) Renamed from "fastMallocRegisterThread", which was a misleading name because
1133 not all threads need to register with fastMalloc -- only secondary threads
1134 need to, and only for the purpose of disabling its single-threaded optimization.
1136 (2) Use the pageheap_lock instead of a custom one, since we need to synchronize
1137 with the read of isMultiThreaded inside CreateCacheIfNecessary. This is a new
1138 requirement, now that we can't guarantee that the first call to CreateCacheIfNecessary
1139 will occur on the main thread at init time, before any other threads have been created.
1141 (WTF::TCMalloc_ThreadCache::CreateCacheIfNecessary):
1142 (WTF::do_malloc): Reverted WTF change only to call GetCache() if size <= kMaxSize.
1143 The WTF code would read phinited without holding the pageheap_lock, which
1144 seemed like a race condition. Regardless, calling GetCache reduces the number
1145 of code paths to module initialization, which will help in writing the
1146 final fix for this bug.
1148 2007-01-28 David Kilzer <ddkilzer@webkit.org>
1152 - fix http://bugs.webkit.org/show_bug.cgi?id=9815
1153 JavaScript TypeError loading Dean Edwards' JS compressor/obfuscator
1155 Creating a function using 'new Function()' was not setting its prototype with the
1156 same flags as 'function() { }'.
1158 Test: fast/js/function-prototype.html
1160 * kjs/function_object.cpp:
1161 (FunctionObjectImp::construct): Change flags from DontEnum|DontDelete|ReadOnly to
1162 Internal|DontDelete to match FuncDeclNode::processFuncDecl() and
1163 FuncExprNode::evaluate() in kjs/nodes.cpp.
1165 2007-01-27 Geoffrey Garen <ggaren@apple.com>
1167 Reviewed by Beth Dakin.
1169 Added some missing JSLocks, which might fix <rdar://problem/4889707>.
1171 We need to lock whenever we might allocate memory because our FastMalloc
1172 implementation requires clients to register their threads, which we do
1175 We also need to lock whenever modifying ref-counts because they're not
1178 * API/JSObjectRef.cpp:
1179 (JSClassCreate): Allocates memory
1180 (JSClassRetain): Modifies a ref-count
1181 (JSClassRelease): Modifies a ref-count
1182 (JSPropertyNameArrayRetain): Modifies a ref-count
1183 (JSPropertyNameArrayRelease): Modifies a ref-count
1184 * API/JSStringRef.cpp:
1185 (JSStringRetain): Modifies a ref-count
1186 * API/JSValueRef.cpp:
1187 (JSValueIsInstanceOfConstructor): Might allocate memory if an exception
1190 2007-01-27 Lars Knoll <lars@trolltech.com>
1194 * bindings/qt/qt_instance.h:
1196 2007-01-25 Geoffrey Garen <ggaren@apple.com>
1198 Reviewed by Maciej Stachowiak.
1200 Fixed <rdar://problem/4608404> WebScriptObject's _rootObject lack
1201 of ownership policy causes crashes (e.g., in Dashcode)
1203 The old model for RootObject ownership was either to (1) leak them or (2) assign
1204 them to a single owner -- the WebCore::Frame -- which would destroy them
1205 when it believed that all of its plug-ins had unloaded.
1207 This model was broken because of (1) and also because plug-ins are not the only
1208 RootObject clients. All Bindings clients are RootObjects clients, including
1209 applications, which outlive any particular WebCore::Frame.
1211 The new model for RootObject ownership is to reference-count them, with a
1212 throw-back to the old model: The WebCore::Frame tracks the RootObjects
1213 it creates, and invalidates them when it believes that all of its plug-ins
1216 We maintain this throw-back to avoid plug-in leaks, particularly from Java.
1217 Java is completely broken when it comes to releasing JavaScript objects.
1218 Comments in our code allege that Java does not always call finalize when
1219 collecting objects. Moreoever, my own testing reveals that, when Java does
1220 notify JavaScript of a finalize, the data it provides is totally bogus.
1222 This setup is far from ideal, but I don't think we can do better without
1223 completely rewriting the bindings code, and possibly part of the Java
1226 Layout tests pass. No additional leaks reported. WebCore/manual-tests/*liveconnect*
1227 and a few LiveConnect demos on the web also run without a hitch.
1229 const RootObject* => RootObject*, since we need to ref/deref
1231 * bindings/NP_jsobject.cpp:
1232 (jsDeallocate): deref our RootObjects. Also unprotect or JSObject, instead
1233 of just relying on the RootObject to do it for us when it's invalidated.
1234 (_isSafeScript): Check RootObject validity.
1235 (_NPN_CreateScriptObject): ditto
1236 (_NPN_Invoke): ditto
1237 (_NPN_Evaluate): ditto
1238 (_NPN_GetProperty): ditto
1239 (_NPN_SetProperty): ditto
1240 (_NPN_RemoveProperty): ditto
1241 (_NPN_HasProperty): ditto
1242 (_NPN_HasMethod): ditto
1243 (_NPN_SetException): ditto
1245 * bindings/runtime_root.cpp:
1246 Revived bit-rotted LIAR LIAR LIAR comment.
1248 LOOK: Added support for invalidating RootObjects without deleting them,
1249 which is the main goal of this patch.
1251 Moved protect counting into the RootObject class, to emphasize that
1252 the RootObject protects the JSObject, and unprotects it upon being invalidated.
1253 addNativeReference => RootObject::gcProtect
1254 removeNativeReference => RootObject::gcUnprotect
1255 ProtectCountSet::contains => RootObject::gcIsProtected
1257 I know we'll all be sad to see the word "native" go.
1259 * bindings/runtime_root.h: Added ref-counting support to RootObject, with
1260 all the standard accoutrements.
1262 * bindings/c/c_utility.cpp:
1263 (KJS::Bindings::convertValueToNPVariant): If we can't find a valid RootObject,
1264 return void instead of just leaking.
1266 * bindings/jni/jni_instance.cpp:
1267 (JavaInstance::JavaInstance): Don't take a RootObject in our constructor;
1268 be like other Instances and require the caller to call setRootObject. This
1269 reduces the number of ownership code paths.
1270 (JavaInstance::invokeMethod): Check RootObject for validity.
1271 * bindings/jni/jni_instance.h: Removed private no-arg constructor. Having
1272 an arg constructor accomplishes the same thing.
1274 * bindings/jni/jni_jsobject.cpp:
1275 (JavaJSObject::invoke): No need to call findProtectCountSet, because finalize()
1276 checks for RootObject validity.
1277 (JavaJSObject::JavaJSObject): check RootObject for validity
1278 (JavaJSObject::call): ditto
1279 (JavaJSObject::eval): ditto
1280 (JavaJSObject::getMember): ditto
1281 (JavaJSObject::setMember): ditto
1282 (JavaJSObject::removeMember): ditto
1283 (JavaJSObject::getSlot): ditto
1284 (JavaJSObject::setSlot): ditto
1285 (JavaJSObject::toString): ditto
1286 (JavaJSObject::finalize): ditto
1287 (JavaJSObject::createNative): No need to tell the RootObject to protect
1288 the global object, since the RootObject already owns the interpreter.
1290 * bindings/jni/jni_runtime.cpp:
1291 (JavaArray::JavaArray): Removed copy construcutor becaue it was unused.
1292 Dead code is dangerous code.
1294 * bindings/objc/objc_runtime.mm: Added WebUndefined protocol. Previous use
1295 of WebScriptObject was bogus, because WebUndefined is not a subclass of
1297 (convertValueToObjcObject): If we can't find a valid RootObject,
1298 return nil instead of just leaking.
1300 * bindings/objc/objc_utility.mm:
1301 (KJS::Bindings::convertValueToObjcValue): If we can't find a valid RootObject,
1302 return nil instead of just leaking.
1304 2007-01-27 Andrew Wellington <proton@wiretapped.net>
1308 Fix for Repeated string concatenation results in OOM crash
1309 http://bugs.webkit.org/show_bug.cgi?id=11131
1311 * kjs/operations.cpp:
1312 (KJS::add): Throw exception if string addition result is null
1314 (KJS::UString::UString): Don't call memcpy when malloc failed
1316 2007-01-25 Jan Kraemer <camel@gmx.de>
1320 Fix for http://bugs.webkit.org/show_bug.cgi?id=12382
1322 Fix crash on architectures with 32 bit ints and
1323 64 bit longs (For example Linux on AMD64)
1325 * kjs/dtoa.cpp: #define Long int as suggested in comment
1327 2007-01-24 Geoffrey Garen <ggaren@apple.com>
1329 Fixed up #include order for style. No review necessary.
1331 * API/JSStringRef.cpp:
1333 2007-01-24 Geoffrey Garen <ggaren@apple.com>
1335 Reviewed by Maciej Stachowiak.
1337 * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
1338 Copy JSStringRefCF, in case anybody wants to use it. (I just added
1341 2007-01-24 Maciej Stachowiak <mjs@apple.com>
1343 Not reviewed, trivial property change.
1345 * JavaScriptCore.vcproj/JavaScriptCore.sln: remove svn:mime-type
1346 property which made this binary.
1348 2007-01-25 Mark Rowe <mrowe@apple.com>
1352 * Info.plist: Update copyright string.
1354 2007-01-24 Darin Adler <darin@apple.com>
1356 Reviewed by Mark Rowe.
1358 * JavaScriptCore.xcodeproj/project.pbxproj: Changed to /usr/sbin/sysctl
1359 so we don't rely on people's paths.
1361 2007-01-23 Alice Liu <alice.liu@apple.com>
1365 * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
1368 2007-01-23 Geoffrey Garen <ggaren@apple.com>
1372 * API/JSStringRef.h:
1373 * JavaScriptCore.xcodeproj/project.pbxproj:
1375 2007-01-24 Mark Rowe <mrowe@apple.com>
1377 Build fix for DumpRenderTree.
1379 * JavaScriptCore.xcodeproj/project.pbxproj: Make JSStringRefCF.h public so it's copied into built framework.
1381 2007-01-23 Anders Carlsson <acarlsson@apple.com>
1385 * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
1388 2007-01-23 Geoffrey Garen <ggaren@apple.com>
1390 Reviewed by Maciej Stachowiak.
1392 Fixed <rdar://problem/4885131> Move CFString function declarations from
1393 JSStringRef.h to JSStringRefCF.h
1395 Also removed remaining API FIXMEs and changed them into Radars.
1397 * API/JSClassRef.cpp:
1398 (OpaqueJSClass::OpaqueJSClass): Added Radar numbers for UTF8 conversion.
1400 * API/JSContextRef.cpp:
1401 (JSGlobalContextCreate): Replaced FIXME for NULL JSContextRef with Radar number.
1403 * API/JSObjectRef.h: Removed FIXME, which is unprofessional in a public header.
1405 * API/JSStringRef.cpp: Moved CF related implementations to JSStringRefCF.cpp.
1406 (JSStringCreateWithUTF8CString): Replaced FIXME with Radar number.
1407 * API/JSStringRef.h: Moved CF related declarations to JSStringRefCF.h. Added
1408 #include of JSStringRefCF.h as a stopgap until clients start #including
1409 it as needed by themselves.
1411 * API/JSStringRefCF.cpp: Added.
1412 (JSStringCreateWithCFString):
1413 (JSStringCopyCFString): Replaced JSChar cast with UniChar cast, which is
1414 more appropriate for a CF call.
1415 * API/JSStringRefCF.h: Added.
1416 * JavaScriptCore.xcodeproj/project.pbxproj:
1418 2007-01-18 Sanjay Madhav <sanjay12@gmail.com>
1422 Add JavaScriptCore define to help with tracing of when objects are marked.
1425 (KJS::JSObject::mark):
1427 2007-01-18 Simon Hausmann <hausmann@kde.org>
1431 * JavaScriptCore.pro: Remove generated files on make clean.
1434 2007-01-16 Alexey Proskuryakov <ap@webkit.org>
1438 http://bugs.webkit.org/show_bug.cgi?id=12268
1439 Give object prototypes their own names
1441 * kjs/lookup.h: Append "Prototype" to ClassName in KJS_IMPLEMENT_PROTOTYPE.
1443 2007-01-16 Geoffrey Garen <ggaren@apple.com>
1445 Reviewed by Darin Adler.
1447 Added re-entrency checking to GC allocation and collection. It is an error
1448 to allocate or collect from within a collection. We've had at least one
1449 case of each bug in the past.
1451 Added a comment to the API header, explaining that API clients must not
1452 make this mistake, either.
1454 Layout tests and JS tests pass.
1456 * API/JSObjectRef.h:
1457 * kjs/collector.cpp:
1458 (KJS::GCLock::GCLock):
1459 (KJS::GCLock::~GCLock):
1460 (KJS::Collector::allocate):
1461 (KJS::Collector::collect):
1463 2007-01-14 Mark Rowe <mrowe@apple.com>
1467 Minor fixes to JavaScript pretty-printing.
1469 * JavaScriptCore.exp:
1471 (KJS::Parser::prettyPrint): Return line number and error message if parsing fails.
1473 * kjs/nodes2string.cpp:
1474 (ElementNode::streamTo): Include comma delimiters in array literals.
1475 (PropertyNameNode::streamTo): Quote property names in object literals to handle the case when the property name is not a valid identifier.
1477 (doIt): Print any errors encountered while pretty-printing.
1479 2007-01-12 Anders Carlsson <acarlsson@apple.com>
1484 Add hash traits for unsigned long and unsigned long long.
1486 2007-01-12 Geoffrey Garen <ggaren@apple.com>
1490 Rolling back in r18786 with leaks fixed, and these renames slightly reworked:
1492 Because they can return 0:
1493 rootObjectForImp => findRootObject (overloaded for JSObject* and Interpreter*)
1494 rootObjectForInterpreter => findRootObject (ditto)
1495 findReferenceSet => findProtectCountSet
1497 2007-01-11 Geoffrey Garen <ggaren@apple.com>
1501 Rolling out r18786 because it caused leaks.
1503 2007-01-11 Geoffrey Garen <ggaren@apple.com>
1505 Reviewed by Anders Carlsson.
1507 Even more cleanup in preparation for fixing <rdar://problem/4608404>
1508 WebScriptObject's _executionContext lack of ownership policy causes
1509 crashes (e.g., in Dashcode)
1514 ReferencesSet | ProtectCounts => ProtectCountSet (because it's a typename for a set of GC protect counts)
1515 ReferencesByRootMap => RootObjectMap (because RootObjectToProtectCountSetMap would have been confusing)
1516 pv => protectedValues
1517 rootObjectForImp => getRootObject (overloaded for JSObject* and Interpreter*)
1518 rootObjectForInterpreter => getRootObject (ditto)
1519 findReferenceSet => getProtectCountSet
1522 (KJS::Bindings::getRootObjectMap): Changed to take advantage of built-in
1523 facility for initializing static variables.
1525 (KJS::Bindings::getProtectCountSet):
1526 (KJS::Bindings::destroyProtectCountSet): Added. Helps encapsulate the fact
1527 that getting a ProtectCountSet entails adding a RootObject to a hash table,
1528 and destroying one entails the reverse.
1530 (KJS::Bindings::getRootObject): Removed spurious NULL check.
1532 (KJS::Bindings::findReferenceSet): Renamed. Changed to use getRootObject()
1533 instead of iterating on its own.
1535 (KJS::Bindings::addNativeReference): Changed to use an early return instead
1536 of indenting the whole function.
1537 (KJS::Bindings::removeNativeReference): Ditto.
1539 2007-01-11 Geoffrey Garen <ggaren@apple.com>
1541 Reviewed by Anders Carlsson.
1543 Even more cleanup in preparation for fixing <rdar://problem/4608404>
1544 WebScriptObject's _executionContext lack of ownership policy causes
1545 crashes (e.g., in Dashcode)
1550 findRootObjectForNativeHandleFunction => createRootObject
1551 FindRootObjectForNativeHandleFunctionPtr => CreateRootObjectFunction
1553 Also removed unnecessary use of "Bindings::" prefix.
1555 * JavaScriptCore.exp:
1556 * bindings/jni/jni_jsobject.cpp:
1557 (JavaJSObject::createNative):
1558 (JavaJSObject::convertValueToJObject):
1559 (JavaJSObject::convertJObjectToValue):
1560 * bindings/runtime_root.cpp:
1561 (KJS::Bindings::RootObject::setCreateRootObject):
1562 * bindings/runtime_root.h:
1563 (KJS::Bindings::RootObject::createRootObject):
1565 2007-01-11 George Staikos <staikos@kde.org>
1569 Appears to be Mac specific right now.
1573 2007-01-10 Lars Knoll <lars@trolltech.com>
1577 Use the new functionality in Qt 4.3, to make
1578 the methods closer compliant with the Unicode
1581 Keep the old code so that it still compiles against
1584 * wtf/unicode/qt4/UnicodeQt4.h:
1585 (WTF::Unicode::toLower):
1586 (WTF::Unicode::toUpper):
1587 (WTF::Unicode::toTitleCase):
1588 (WTF::Unicode::foldCase):
1589 (WTF::Unicode::isFormatChar):
1590 (WTF::Unicode::isPrintableChar):
1591 (WTF::Unicode::isSeparatorSpace):
1592 (WTF::Unicode::isPunct):
1593 (WTF::Unicode::isDigit):
1594 (WTF::Unicode::isLower):
1595 (WTF::Unicode::isUpper):
1596 (WTF::Unicode::digitValue):
1597 (WTF::Unicode::mirroredChar):
1598 (WTF::Unicode::combiningClass):
1599 (WTF::Unicode::decompositionType):
1600 (WTF::Unicode::umemcasecmp):
1601 (WTF::Unicode::direction):
1602 (WTF::Unicode::category):
1604 2007-01-09 Darin Adler <darin@apple.com>
1606 - update 2007 Apple copyright for the new company name
1610 2007-01-09 Darin Adler <darin@apple.com>
1614 * kjs/string_object.cpp: (KJS::StringProtoFunc::callAsFunction):
1615 Actually compile it this time.
1617 2007-01-09 Darin Adler <darin@apple.com>
1621 * kjs/string_object.cpp: (KJS::StringProtoFunc::callAsFunction):
1624 2007-01-09 Darin Adler <darin@apple.com>
1626 - fix build on platforms where Unicode::UChar is != uint16_t
1628 * kjs/string_object.cpp: (KJS::StringProtoFunc::callAsFunction):
1631 2007-01-09 Mitz Pettel <mitz@webkit.org>
1635 - changes for http://bugs.webkit.org/show_bug.cgi?id=11078
1636 Forms Don't Submit (ASP Pages)
1638 * JavaScriptCore.exp:
1640 (KJS::JSValue::toInt32): Folded toInt32Inline into this method, which was its
1642 (KJS::JSValue::toUInt32): Added a variant that reports if the conversion has
1646 2007-01-09 Darin Adler <darin@apple.com>
1650 - fix http://bugs.webkit.org/show_bug.cgi?id=12174
1651 improve Unicode use (less WTF::Unicode:: prefix, centralized character names)
1653 * wtf/unicode/icu/UnicodeIcu.h: Change parameter and return types
1654 to UChar32 and UChar. Removed unneeded type casts and added some
1655 const to functions that lacked it. Removed WTF::Unicode::memcmp.
1656 (WTF::Unicode::umemcasecmp): Renamed from strcasecmp since this
1657 doesn't work on 0-terminated strings as the str functions do.
1658 * wtf/unicode/qt4/UnicodeQt4.h: Ditto.
1660 - got rid of namespace prefixes from most uses of WTF::Unicode
1663 (KJS::isStrWhiteSpace):
1664 (KJS::escapeStringForPrettyPrinting):
1666 (KJS::Lexer::isWhiteSpace):
1667 (KJS::Lexer::isIdentStart):
1668 (KJS::Lexer::isIdentPart):
1669 * kjs/string_object.cpp:
1670 (KJS::StringProtoFunc::callAsFunction):
1672 2007-01-07 David Kilzer <ddkilzer@webkit.org>
1676 - fix http://bugs.webkit.org/show_bug.cgi?id=11917
1677 setlocale() can return null
1679 * kjs/date_object.cpp:
1680 (KJS::DateProtoFunc::callAsFunction): Removed dead code.
1682 2007-01-07 David Carson <dacarson@gmail.com>
1686 - fix http://bugs.webkit.org/show_bug.cgi?id=12100
1687 JNI bindings should be available to non-Mac platforms that have JNI
1689 Change JNI so that it is not wrapped in the PLATFORM(MAC) ifdef, enabling
1690 other platforms who have JNI to use it.
1692 * bindings/jni/jni_instance.h:
1693 Removed unnecessary include of <CoreFoundation/CoreFoundation.h>
1694 * bindings/jni/jni_utility.cpp:
1695 (KJS::Bindings::setJavaVM):
1696 * bindings/jni/jni_utility.h:
1697 Added new method for clients to set the JavaVM
1698 * bindings/runtime.cpp:
1699 (KJS::Bindings::Instance::createBindingForLanguageInstance):
1700 Changed code to utilize new #if HAVE(JNI)
1702 Added new #define for JNI, ie HAVE_JNI
1704 2007-01-07 David Carson <dacarson@gmail.com>
1708 Fix http://bugs.webkit.org/show_bug.cgi?id=11431
1709 ARM platform has some byte alignment issues
1711 Fix for NaN being 4 bytes and it must start on a byte boundary
1712 for ARM architectures.
1717 2007-01-04 David Kilzer <ddkilzer@webkit.org>
1719 Reviewed by Kevin McCullough.
1721 - fix http://bugs.webkit.org/show_bug.cgi?id=12070
1722 REGRESSION: KJS::getUTCOffset() caches UTC offset but ignores time zone changes
1725 (KJS::getUTCOffset): Don't cache UTC offset.
1727 2007-01-02 Darin Adler <darin@apple.com>
1729 - minor tweak (hope this doesn't re-break Windows)
1731 * pcre/pcre_compile.c: Removed use of const pcre_uchar const * -- Mitz probably
1732 meant const pcre_uchar *const, but I think we can do without the explicit const here.
1734 * pcre/pcre_internal.h: Re-enabled warning C4114.
1736 2007-01-02 David Kilzer <ddkilzer@webkit.org>
1738 Reviewed by NOBODY (Windows build fix).
1740 The MSVC compiler requires variables to be declared at the top of the enclosing block in C source.
1742 Disable this warning to prevent MSVC from complaining about the 'const pcre_uchar const *' type:
1743 warning C4114: same type qualifier used more than once
1745 * pcre/pcre_compile.c:
1746 (pcre_compile2): Moved variable declarations to top of their respective enclosing blocks.
1747 * pcre/pcre_internal.h: Added pragma to disable compiler warning.
1749 2007-01-01 Mitz Pettel <mitz@webkit.org>
1753 - fix http://bugs.webkit.org/show_bug.cgi?id=11849
1754 REGRESSION (r18182): Google Calendar is broken (a regular expression containing a null character is not parsed correctly)
1756 Modified pcre_compile() (and the functions that it calls) to work with patterns
1757 containing null characters.
1759 Covered by JavaScriptCore tests ecma_3/RegExp/octal-002.js and ecma_3/RegExp/regress-85721.js
1762 (KJS::RegExp::RegExp): Changed to not null-terminate the pattern string and instead
1763 pass its length to pcre_compile.
1765 * pcre/pcre_compile.c:
1768 (is_counted_repeat):
1769 (check_posix_syntax):
1772 (pcre_compile): Added a parameter specifying the length of the pattern, which
1773 is no longer required to be null-terminated and may contain null characters.
1775 * pcre/pcre_internal.h:
1776 * tests/mozilla/expected.html: Updated for the two tests that this patch
1777 fixes. Also updated failing results for ecma_3/RegExp/regress-100199.js
1778 which were not updated after bug 6257 was fixed.
1780 2007-01-01 David Kilzer <ddkilzer@webkit.org>
1784 - fix http://bugs.webkit.org/show_bug.cgi?id=12057
1785 REGRESSION: JavaScript Date Is One Day In The Future in GMT time zone
1787 Because Mac OS X returns geographically and historically accurate time zone information,
1788 converting Jan 02, 1970 12:00:00 AM to local time then subtracting 24 hours did not work
1789 in GMT (London - England) since it was in BST (+0100) all year in 1970[1]. Instead, the
1790 UTC offset is calculated by converting Jan 01, 2000 12:00:00 AM to local time then
1791 subtracting that from the same date in UTC.
1793 [1] http://en.wikipedia.org/wiki/British_Summer_Time
1796 (KJS::getUTCOffset): Updated UTC offset calculation.
1797 (KJS::getDSTOffset): Improved comment.
1799 2006-12-31 David Kilzer <ddkilzer@webkit.org>
1803 Update embedded pcre library from version 6.2 to 6.4. Changes from pcre 6.2 to 6.3
1804 did not include any files in JavaScriptCore/pcre.
1806 All changes include renaming EXPORT to PCRE_EXPORT, renaming of ucp_findchar() to
1807 _pcre_ucp_findchar(), or comment changes. Additional changes noted below.
1809 * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj: Updated source file list.
1810 * JavaScriptCore.xcodeproj/project.pbxproj: Renamed pcre_printint.c to pcre_printint.src
1811 and changed it from a source file to a header file.
1812 * JavaScriptCoreSources.bkl: Updated source file list.
1813 * pcre/CMakeLists.txt: Updated source file list.
1814 * pcre/pcre-config.h:
1815 * pcre/pcre.h: Updated version.
1816 * pcre/pcre.pri: Updated source file list.
1817 * pcre/pcre_compile.c: Include pcre_printint.src #if DEBUG.
1819 * pcre/pcre_config.c:
1822 * pcre/pcre_fullinfo.c:
1824 * pcre/pcre_internal.h: Added header guard. Removed export of _pcre_printint().
1825 * pcre/pcre_ord2utf8.c:
1826 * pcre/pcre_printint.c: Renamed to pcre_printint.src.
1827 * pcre/pcre_printint.src: Added. Renamed _pcre_printint() to pcre_printint().
1828 * pcre/pcre_refcount.c:
1829 * pcre/pcre_study.c:
1830 * pcre/pcre_tables.c:
1831 * pcre/pcre_try_flipped.c:
1832 * pcre/pcre_ucp_findchar.c: Added contents of ucp_findchar.c.
1833 * pcre/pcre_version.c:
1834 * pcre/pcre_xclass.c:
1836 * pcre/ucp.h: Removed export of ucp_findchar().
1837 * pcre/ucp_findchar.c: Removed. Contents moved to pcre_ucp_findchar.c.
1839 2006-12-29 David Kilzer <ddkilzer@webkit.org>
1843 Update embedded pcre library from version 6.1 to 6.2. From the pcre ChangeLog:
1845 3. Added "b" to the 2nd argument of fopen() in dftables.c, for non-Unix-like
1846 operating environments where this matters.
1848 5. Named capturing subpatterns were not being correctly counted when a pattern
1849 was compiled. This caused two problems: (a) If there were more than 100
1850 such subpatterns, the calculation of the memory needed for the whole
1851 compiled pattern went wrong, leading to an overflow error. (b) Numerical
1852 back references of the form \12, where the number was greater than 9, were
1853 not recognized as back references, even though there were sufficient
1854 previous subpatterns.
1856 * pcre/dftables.c: Item 3.
1858 * pcre/pcre.h: Updated version.
1859 * pcre/pcre_compile.c: Item 5.
1860 (read_repeat_counts):
1863 2006-12-29 Geoffrey Garen <ggaren@apple.com>
1865 Reviewed by Brian Dash... err... Mark Rowe.
1867 More cleanup in preparation for fixing <rdar://problem/4608404>
1868 WebScriptObject's _executionContext lack of ownership policy causes
1869 crashes (e.g., in Dashcode)
1871 The key change here is to RootObject::RootObject().
1873 * JavaScriptCore.exp:
1875 * bindings/c/c_utility.cpp:
1876 (KJS::Bindings::convertValueToNPVariant): Changed to use new constructor.
1878 * bindings/jni/jni_jsobject.cpp:
1879 (JavaJSObject::createNative): Changed to use new constructor. Replaced
1880 large 'if' followed by default condition with "if !" and explicit default
1883 * bindings/objc/objc_runtime.mm:
1884 (convertValueToObjcObject): Changed to use new constructor.
1886 * bindings/runtime_root.cpp:
1887 (KJS::Bindings::RootObject::destroy): "removeAllNativeReferences" => "destroy"
1888 because this function actually destroys the RootObject.
1890 * bindings/runtime_root.h: Changed Interpreter* to RefPtr<Interpreter>
1891 to prevent a RootObject from holding a stale Interperter*.
1893 (KJS::Bindings::RootObject::RootObject): Changed constructor to take an
1894 Interpreter*, since it's pointless to create a RootObject without one.
1895 Removed setRootObjectImp() and rootObjectImp() because they were just
1896 a confusing way of setting and getting the Interpreter's global object.
1898 (KJS::Bindings::RootObject::nativeHandle): "_nativeHandle" => "m_nativeHandle"
1899 (KJS::Bindings::RootObject::interpreter): "_interpreter" => "m_interpreter"
1901 2006-12-28 George Staikos <staikos@kde.org>
1905 * bindings/qt/qt_instance.cpp: build
1906 (KJS::Bindings::QtInstance::QtInstance):
1908 2006-12-28 Geoffrey Garen <ggaren@apple.com>
1910 Reviewed by Oliver Hunt.
1912 More cleanup. Layout tests pass.
1914 Use a helper function to initialize and access WebUndefined and WebScriptObject.
1916 * bindings/objc/objc_runtime.h:
1917 * bindings/objc/objc_runtime.mm:
1918 (KJS::Bindings::webScriptObjectClass):
1919 (KJS::Bindings::webUndefinedClass):
1920 (convertValueToObjcObject):
1921 * bindings/objc/objc_utility.mm:
1922 (KJS::Bindings::convertValueToObjcValue):
1923 (KJS::Bindings::convertObjcValueToValue):
1925 2006-12-28 Geoffrey Garen <ggaren@apple.com>
1927 Reviewed by Brady Eidson.
1929 Some cleanup in preparation for fixing <rdar://problem/4608404>
1930 WebScriptObject's _executionContext lack of ownership policy causes
1931 crashes (e.g., in Dashcode)
1933 I'm just trying to make heads or tails of this baffling code.
1935 Renamed "root" | "execContext" | "executionContext" => "rootObject", because
1936 that's the object's (admittedly vague) type name.
1938 * bindings/runtime.cpp: Removed createLanguageInstanceForValue
1939 because I'll give you a dollar if you can explain to me what it actually did.
1941 * bindings/runtime_root.cpp: Put everything in the KJS::Bindings namespace,
1942 removing the KJS::Bindings prefix from individual functions and datatypes.
1943 This matches the header and eliminates a lot of syntax cruft.
1945 * bindings/c/c_utility.cpp:
1946 (KJS::Bindings::convertValueToNPVariant): Replaced use of createLanguageInstanceForValue
1947 with call to _NPN_CreateScriptObject because that's what createLanguageInstanceForValue
1948 actually did (but don't ask me for that dollar now; that's cheating.)
1950 * bindings/objc/objc_utility.h:
1951 * bindings/objc/objc_utility.mm:
1952 (KJS::Bindings::convertValueToObjcValue): Removed. Its only purpose was
1953 to call a single function for WebKit, which WebKit can do on its own.
1955 * kjs/interpreter.h: Removed rtti() because it was unused, and this class
1956 is scheduled for demolition anyway.
1958 * kjs/interpreter.cpp: Removed createLanguageInstanceForValue because it had
1959 nothing to do with the Interpreter, and nothing makes Chuck Norris more mad
1960 than a function whose sole purpose is to call another function of the same
1961 name. (Really, I asked him.)
1963 2006-12-26 Geoffrey Garen <ggaren@apple.com>
1965 Reviewed by Eric Seidel.
1967 Some cleanup in preparation for fixing <rdar://problem/4740328> Safari
1968 crash on quit in _NPN_ReleaseObject from KJS::Bindings::CInstance::~CInstance
1970 * bindings/c/c_instance.cpp:
1971 * bindings/c/c_instance.h: Removed unused copy constructor and assignment
1972 operator. They made tracking data flow more difficult. Unused code is also
1973 dangerous because it can succumb to bit rot with the stealth of a Ninja.
1975 Replaced #include with forward declaration to reduce header dependency.
1977 * bindings/npruntime.cpp: Sorted #includes.
1978 (_NPN_GetStringIdentifier): Replaced assert with ASSERT.
1979 (_NPN_GetStringIdentifiers): ditto
1980 (_NPN_ReleaseVariantValue): ditto
1981 (_NPN_CreateObject): ditto
1982 (_NPN_RetainObject): ditto
1983 (_NPN_ReleaseObject): ditto
1984 (_NPN_DeallocateObject): ditto
1986 2006-12-20 Anders Carlsson <acarlsson@apple.com>
1988 * kjs/string_object.cpp:
1990 Another speculative Win32 fix.
1992 2006-12-20 Anders Carlsson <acarlsson@apple.com>
1994 * kjs/string_object.cpp:
1996 Speculative Win32 fix.
1998 2006-12-20 Anders Carlsson <acarlsson@apple.com>
2002 <rdar://problem/4235733>
2003 <http://bugs.webkit.org/?show_bug.cgi?id=10193>
2004 support String.localeCompare.
2006 Implement localeCompare.
2008 * JavaScriptCore.xcodeproj/project.pbxproj:
2009 * kjs/string_object.cpp:
2011 (StringProtoFunc::callAsFunction):
2012 * kjs/string_object.h:
2013 (KJS::StringProtoFunc::):
2015 2006-12-20 Timothy Hatcher <timothy@apple.com>
2017 Reviewed by Mark Rowe.
2019 * JavaScriptCore.xcodeproj/project.pbxproj: use GCC 4.0 for all the other test targets
2021 2006-12-20 Timothy Hatcher <timothy@apple.com>
2023 Reviewed by Mark Rowe.
2025 <rdar://problem/4871613> JavaScriptCore-421.31's dftables target needs to override default compiler and use gcc-4.0
2027 * JavaScriptCore.xcodeproj/project.pbxproj:
2029 2006-12-20 Lars Knoll <lars@trolltech.com>
2031 Reviewed by David Hyatt
2033 Added support to bind QObject's to
2036 * JavaScriptCore.pro:
2037 * bindings/qt/qt_class.cpp: Added.
2038 (KJS::Bindings::QtClass::QtClass):
2039 (KJS::Bindings::QtClass::~QtClass):
2040 (KJS::Bindings::QtClass::classForObject):
2041 (KJS::Bindings::QtClass::name):
2042 (KJS::Bindings::QtClass::methodsNamed):
2043 (KJS::Bindings::QtClass::fieldNamed):
2044 * bindings/qt/qt_class.h: Added.
2045 (KJS::Bindings::QtClass::constructorAt):
2046 (KJS::Bindings::QtClass::numConstructors):
2047 * bindings/qt/qt_instance.cpp: Added.
2048 (KJS::Bindings::QtInstance::QtInstance):
2049 (KJS::Bindings::QtInstance::~QtInstance):
2050 (KJS::Bindings::QtInstance::operator=):
2051 (KJS::Bindings::QtInstance::getClass):
2052 (KJS::Bindings::QtInstance::begin):
2053 (KJS::Bindings::QtInstance::end):
2054 (KJS::Bindings::QtInstance::implementsCall):
2055 (KJS::Bindings::QtInstance::invokeMethod):
2056 (KJS::Bindings::QtInstance::invokeDefaultMethod):
2057 (KJS::Bindings::QtInstance::defaultValue):
2058 (KJS::Bindings::QtInstance::stringValue):
2059 (KJS::Bindings::QtInstance::numberValue):
2060 (KJS::Bindings::QtInstance::booleanValue):
2061 (KJS::Bindings::QtInstance::valueOf):
2062 * bindings/qt/qt_instance.h: Added.
2063 (KJS::Bindings::QtInstance::getObject):
2064 * bindings/qt/qt_runtime.cpp: Added.
2065 (KJS::Bindings::convertValueToQVariant):
2066 (KJS::Bindings::convertQVariantToValue):
2067 (KJS::Bindings::QtField::name):
2068 (KJS::Bindings::QtField::valueFromInstance):
2069 (KJS::Bindings::QtField::setValueToInstance):
2070 * bindings/qt/qt_runtime.h: Added.
2071 (KJS::Bindings::QtField::QtField):
2072 (KJS::Bindings::QtField::type):
2073 (KJS::Bindings::QtMethod::QtMethod):
2074 (KJS::Bindings::QtMethod::name):
2075 (KJS::Bindings::QtMethod::numParameters):
2076 * bindings/runtime.cpp:
2077 (KJS::Bindings::Instance::createBindingForLanguageInstance):
2078 * bindings/runtime.h:
2079 (KJS::Bindings::Instance::):
2080 * bindings/testbindings.pro: Added.
2081 * bindings/testqtbindings.cpp: Added.
2082 (MyObject::MyObject):
2083 (MyObject::setTestString):
2084 (MyObject::setTestInt):
2085 (MyObject::testString):
2086 (MyObject::testInt):
2088 (Global::className):
2091 2006-12-19 Anders Carlsson <acarlsson@apple.com>
2095 Add -p option to testkjs which pretty prints the files instead of executing them.
2097 * JavaScriptCore.exp:
2098 * JavaScriptCore.xcodeproj/project.pbxproj:
2100 (KJS::Parser::prettyPrint):
2105 2006-12-19 Brady Eidson <beidson@apple.com>
2107 Rubberstamped by Lou
2109 Removed unneccessary "else"
2111 * wtf/Assertions.cpp:
2113 2006-12-19 Timothy Hatcher <timothy@apple.com>
2117 <rdar://problem/4891774> Local WebCore/WebBrowser builds fail in 9A328 due to warning about ObjC-2.0 language features
2119 * JavaScriptCore.xcodeproj/project.pbxproj:
2121 2006-12-17 Simon Hausmann <hausmann@kde.org>
2125 * kjs/testkjs.pro: Oops, make it also build on machines other than
2128 2006-12-17 Simon Hausmann <hausmann@kde.org>
2130 Reviewed by Rob Buis.
2132 * kjs/testkjs.pro: Added .pro file to build testkjs.
2134 2006-12-16 Alexey Proskuryakov <ap@webkit.org>
2138 A deleted object was accessed to prepare RegExp construction error messages.
2140 * kjs/regexp_object.cpp:
2141 (RegExpObjectImp::construct): Wrap the RegExp into an OwnPtr.
2143 2006-12-16 Mitz Pettel <mitz@webkit.org>
2147 - fix http://bugs.webkit.org/show_bug.cgi?id=11814
2148 REGRESSION(r18098): Find does not work with capital letters
2150 Test: editing/execCommand/findString-3.html
2152 * wtf/unicode/icu/UnicodeIcu.h:
2153 (WTF::Unicode::foldCase): Changed to not return an error if the result fits
2154 in the buffer without a null terminator.
2156 2006-12-13 Maciej Stachowiak <mjs@apple.com>
2160 - added equality and inequality operations for HashMap and Vector, useful for comparing more complex types
2169 2006-12-12 Alexey Proskuryakov <ap@webkit.org>
2171 Reviewed by Geoff. Based on a patch by Maks Orlovich.
2173 http://bugs.webkit.org/show_bug.cgi?id=6257
2174 Throw errors on invalid expressions (KJS merge)
2177 (KJS::RegExp::RegExp):
2178 (KJS::RegExp::~RegExp):
2179 (KJS::RegExp::match):
2181 (KJS::RegExp::flags):
2182 (KJS::RegExp::isValid):
2183 (KJS::RegExp::errorMessage):
2184 (KJS::RegExp::subPatterns):
2185 Remember and report RegExp construction failures. Renamed data members not to start with underscores.
2187 * kjs/regexp_object.cpp:
2188 (RegExpObjectImp::construct): Raise an exception if RegExp construction fails.
2189 (RegExpObjectImp::callAsFunction): Removed an obsolete comment.
2191 * tests/mozilla/ecma_3/RegExp/regress-119909.js: Reduced the number of nested parentheses to
2192 a value supported by PCRE.
2194 2006-12-11 Alexey Proskuryakov <ap@webkit.org>
2198 http://bugs.webkit.org/show_bug.cgi?id=9673
2199 Add support for window.atob() and window.btoa()
2201 * JavaScriptCore.exp: Export UString::is8Bit().
2202 * JavaScriptCore.xcodeproj/project.pbxproj: Added StringExtras.h as
2205 2006-12-11 Darin Adler <darin@apple.com>
2209 * JavaScriptCore.xcodeproj/project.pbxproj: Let Xcode update this
2210 (I think Hyatt is using an old Xcode).
2212 2006-12-11 David Hyatt <hyatt@apple.com>
2214 Fix the failing layout test. Just remove Unicode::isSpace and
2215 revert StringImpl to do the same thing it was doing before.
2219 * wtf/unicode/icu/UnicodeIcu.h:
2220 * wtf/unicode/qt4/UnicodeQt4.h:
2222 2006-12-09 George Staikos <staikos@kde.org>
2226 Fix bison again on qmake build.
2228 * JavaScriptCore.pro:
2230 2006-12-09 Lars Knoll <lars@trolltech.com>
2234 Make it possible to build WebKit with qmake.
2236 * JavaScriptCore.pro: Added.
2237 * kjs/kjs.pro: Removed.
2238 * pcre/pcre.pri: Added.
2240 2006-12-09 Zack Rusin <zack@kde.org>
2242 Fixing the compilation with platform kde after the icu changes.
2246 2006-12-09 Adam Roben <aroben@apple.com>
2250 Some updates in reaction to r18098.
2252 * wtf/unicode/icu/UnicodeIcu.h: Use !! to convert UBool to bool in all
2254 (WTF::Unicode::toLower):
2255 (WTF::Unicode::toUpper):
2256 (WTF::Unicode::isDigit):
2257 (WTF::Unicode::isSpace):
2258 (WTF::Unicode::isPunct):
2259 (WTF::Unicode::isLower):
2260 (WTF::Unicode::isUpper):
2261 * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
2262 * JavaScriptCore.vcproj/WTF/WTF.vcproj:
2264 2006-12-09 George Staikos <staikos@kde.org>
2266 Patch by Lars Knoll, comment out ICU dependency on Qt platform (unused code).
2270 * bindings/c/c_utility.cpp:
2271 (KJS::Bindings::convertUTF8ToUTF16):
2273 2006-12-08 David Hyatt <hyatt@apple.com>
2275 Land the new ICU abstraction layer. Patch by Lars.
2279 * JavaScriptCore.xcodeproj/project.pbxproj:
2281 * wtf/unicode/UnicodeCategory.h: Removed.
2282 * wtf/unicode/UnicodeDecomposition.h: Removed.
2283 * wtf/unicode/UnicodeDirection.h: Removed.
2284 * wtf/unicode/icu/UnicodeIcu.h:
2286 (WTF::Unicode::foldCase):
2287 (WTF::Unicode::toLower):
2288 (WTF::Unicode::toUpper):
2289 (WTF::Unicode::toTitleCase):
2290 (WTF::Unicode::isDigit):
2291 (WTF::Unicode::isSpace):
2292 (WTF::Unicode::isPunct):
2293 (WTF::Unicode::mirroredChar):
2294 (WTF::Unicode::category):
2295 (WTF::Unicode::direction):
2296 (WTF::Unicode::isLower):
2297 (WTF::Unicode::isUpper):
2298 (WTF::Unicode::digitValue):
2299 (WTF::Unicode::combiningClass):
2300 (WTF::Unicode::decompositionType):
2301 (WTF::Unicode::strcasecmp):
2302 (WTF::Unicode::memset):
2303 * wtf/unicode/qt4/UnicodeQt4.cpp: Removed.
2304 * wtf/unicode/qt4/UnicodeQt4.h:
2306 (WTF::Unicode::toLower):
2307 (WTF::Unicode::toUpper):
2308 (WTF::Unicode::toTitleCase):
2309 (WTF::Unicode::foldCase):
2310 (WTF::Unicode::isPrintableChar):
2311 (WTF::Unicode::isLower):
2312 (WTF::Unicode::isUpper):
2313 (WTF::Unicode::digitValue):
2314 (WTF::Unicode::combiningClass):
2315 (WTF::Unicode::decompositionType):
2316 (WTF::Unicode::strcasecmp):
2317 (WTF::Unicode::memset):
2318 (WTF::Unicode::direction):
2319 (WTF::Unicode::category):
2321 === Safari-521.32 ===
2323 2006-12-08 Adam Roben <aroben@apple.com>
2327 This is a mo' better fix for ensuring we don't use macro definitions
2333 2006-12-07 Kevin Fyure <digdog@macports.org>
2337 http://bugs.webkit.org/show_bug.cgi?id=11545
2338 Disable the testcases do not follow the ECMA-262v3 specification.
2340 * tests/mozilla/expected.html: Update Results.
2341 * tests/mozilla/js1_2/String/concat.js:
2342 4 tests disabled. The result of concat Array object is not followinig
2344 * tests/mozilla/js1_2/function/Number.js:
2345 1 test disabled. The result of Array object to Number object conversion
2346 is not following ECMA 9.3. And the test was duplicated in
2347 ecma/TypeConversion/9.3-1.js
2348 * tests/mozilla/js1_2/function/String.js:
2349 2 tests disabled. The result of Object/Array object to String object
2350 conversion is not following ECMA 15.5.1.1 and ECMA 9.8
2352 2006-11-30 Steve Falkenburg <sfalken@apple.com>
2356 Move WTF from JavaScriptCore project into a new WTF project.
2358 * JavaScriptCore.vcproj/JavaScriptCore.sln: Add WTF.vcproj to sln
2359 * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj: Remove WTF source files
2360 * JavaScriptCore.vcproj/WTF/WTF.vcproj: Added.
2361 * JavaScriptCore.vcproj/testkjs/testkjs.vcproj: Add dependency on WTF.lib
2363 2006-11-30 Geoffrey Garen <ggaren@apple.com>
2365 Reviewed by Beth Dakin.
2367 Fixed up garbage collection at window close time.
2369 * kjs/interpreter.cpp:
2370 (KJS::Interpreter::~Interpreter): Garbage collect here, since
2371 destroying the interpreter frees the global object and
2372 therefore creates a lot of garbage.
2374 2006-11-20 W. Andy Carrel <wac@google.com>
2378 http://bugs.webkit.org/show_bug.cgi?id=11501
2379 REGRESSION: \u no longer escapes metacharacters in RegExps
2380 http://bugs.webkit.org/show_bug.cgi?id=11502
2381 Serializing RegExps doesn't preserve Unicode escapes
2387 (Lexer::scanRegExp):
2388 Push \u parsing back down into the RegExp object rather than in the
2389 parser. This backs out r17354 in favor of a new fix that better
2390 matches the behavior of other browsers.
2394 (KJS::RegExp::RegExp):
2395 (KJS::sanitizePattern):
2398 (KJS::convertUnicode):
2400 Translate \u escaped unicode characters for the benefit of pcre.
2403 (KJS::UString::append):
2404 Fix failure to increment length on the first UChar appended to a
2405 UString that was copy-on-write.
2407 * tests/mozilla/ecma_2/RegExp/properties-001.js:
2408 Adjust tests back to the uniform standards.
2410 2006-11-20 Samuel Weinig <sam@webkit.org>
2414 Fix for http://bugs.webkit.org/show_bug.cgi?id=11647
2417 * kjs/config.h: define NOMINMAX instead of min/max
2419 * wtf/Vector.h: put back hack to ensure that min/max
2420 are not defined as macros.
2422 2006-11-19 Simon Hausmann <hausmann@kde.org>
2426 http://bugs.webkit.org/show_bug.cgi?id=11649
2427 Fix CMake Qt-only build without KDE CMake files
2430 * pcre/CMakeLists.txt:
2432 2006-11-17 Anders Carlsson <acarlsson@apple.com>
2436 Make sure that we always use std::min and std::max instead of macros.
2438 * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
2442 === Safari-521.31 ===
2444 2006-11-12 Geoffrey Garen <ggaren@apple.com>
2446 Reviewed by Beth Dakin.
2448 Added project-wide setting to disable Microsoft's made-up deprecation
2449 warnings related to std:: functions. (Doesn't have any affect yet,
2450 since we currently disable all deprecation warnings.)
2452 * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
2454 2006-11-12 Mark Rowe <bdash@webkit.org>
2458 Clean up of JavaScriptCore bakefiles.
2460 * JavaScriptCoreSources.bkl:
2463 2006-11-11 Alexey Proskuryakov <ap@webkit.org>
2467 http://bugs.webkit.org/show_bug.cgi?id=11508
2468 Undisable some warnings for JSImmediate.h
2470 Fix suggested by Don Gibson.
2472 * kjs/JSImmediate.h:
2473 Re-enable all MSVC warnings, move the remaining runtime checks
2476 2006-11-10 Zalan Bujtas <zalan.bujtas@nokia.com>
2480 Added s60/symbian platform defines.
2481 http://bugs.webkit.org/show_bug.cgi?id=11540
2485 === Safari-521.30 ===
2487 2006-11-08 Ada Chan <adachan@apple.com>
2491 Added a method to delete all the keys in a HashMap.
2494 (WTF::deleteAllPairFirsts):
2495 (WTF::deleteAllKeys):
2497 2006-11-07 Anders Carlsson <acarlsson@apple.com>
2501 * API/JSClassRef.cpp:
2502 (OpaqueJSClass::OpaqueJSClass):
2503 Initialize cachedPrototype to 0.
2505 2006-11-06 Krzysztof Kowalczyk <kkowalczyk@gmail.com>
2509 Remove warning about garbage after #else. #else clause applies for all
2510 non-mac platforms, not only win.
2512 * kjs/date_object.cpp:
2514 2006-11-06 Mark Rowe <bdash@webkit.org>
2516 Reviewed by the wonderful Mitz Pettel.
2518 http://bugs.webkit.org/show_bug.cgi?id=11524
2519 Bug 11524: REGRESSION(r9842): Array.prototype.join should use ToString operator rather than calling toString on each element
2521 * kjs/array_object.cpp:
2522 (ArrayProtoFunc::callAsFunction): Use ToString operator on each element rather than calling their toString method.
2524 2006-11-03 Steve Falkenburg <sfalken@apple.com>
2528 * kjs/JSImmediate.h:
2530 2006-11-03 Alexey Proskuryakov <ap@nypop.com>
2534 http://bugs.webkit.org/show_bug.cgi?id=11504
2535 Fix warnings on non 32 bit platforms
2537 * kjs/JSImmediate.h:
2538 (KJS::JSImmediate::NanAsBits):
2539 (KJS::JSImmediate::oneAsBits):
2540 Rewrite in a way that moves runtime checks to compile-time.
2543 (KJS::JSImmediate::fromDouble):
2544 (KJS::JSImmediate::toDouble):
2546 2006-11-02 George Staikos <staikos@kde.org>
2551 Remove a deprecated pthreads call.
2553 2006-11-02 Anders Carlsson <acarlsson@apple.com>
2555 Reviewed by Maciej, landed by Anders.
2558 Make KDE support optional.
2560 2006-11-01 Kevin McCullough <KMcCullough@apple.com>
2564 - 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.
2567 (KJS::equivalentYearForDST):
2568 (KJS::getDSTOffsetSimple):
2569 (KJS::getDSTOffset):
2571 2006-10-31 Geoffrey Garen <ggaren@apple.com>
2575 Fixed http://bugs.webkit.org/show_bug.cgi?id=11477
2576 REGRESSION: GMail crashes in KJS::FunctionImp::callerGetter
2579 (KJS::FunctionImp::argumentsGetter): Removed unnecessary braces.
2580 (KJS::FunctionImp::callerGetter): More logical NULL checking.
2582 2006-10-31 Oliver Hunt <oliver@apple.com>
2586 Adding definition for PLATFORM(CI)
2590 2006-10-31 Vladimir Olexa <vladimir.olexa@gmail.com>
2594 http://bugs.webkit.org/show_bug.cgi?id=4166
2595 Function object does not support caller property
2597 Test: fast/js/caller-property.html
2600 (KJS::FunctionImp::callerGetter): added
2601 (KJS::FunctionImp::getOwnPropertySlot): added if statement to handle callerGetter()
2602 * kjs/function.h: added callerGetter() declaration
2603 * kjs/identifier.h: added caller property macro
2604 * tests/mozilla/expected.html:
2606 2006-10-30 Kevin McCullough <KMcCullough@apple.com>
2610 - Fix some timezone issues and JavaScriptCore date tests. Addresses bugzilla 4930.
2613 (KJS::GregorianDateTime::GregorianDateTime): Here's the fix, to add parenthesis for order of precedence.
2614 * kjs/date_object.cpp:
2615 (KJS::DateProtoFunc::callAsFunction):
2616 (KJS::DateObjectImp::construct): memset not needed as GregorianDateTime initializes itself.
2618 2006-10-30 Darin Adler <darin@apple.com>
2620 Reviewed by John Sullivan.
2622 * kjs/SavedBuiltins.h: Added needed include.
2623 * wtf/OwnPtr.h: (WTF::OwnPtr::set): Fixed mistake in assertion.
2625 2006-10-28 Darin Adler <darin@apple.com>
2629 - renamed PassRefPtr::release to releaseRef to make it clearer that
2630 it's the counterpart of adoptRef, and to make it harder to confuse
2631 it with the safer-to-use RefPtr::release
2633 * kjs/identifier.cpp:
2634 (KJS::CStringTranslator::translate):
2635 (KJS::UCharBufferTranslator::translate):
2637 (KJS::UString::Rep::create):
2639 (WTF::PassRefPtr::PassRefPtr):
2640 (WTF::PassRefPtr::~PassRefPtr):
2641 (WTF::PassRefPtr::get):
2642 (WTF::PassRefPtr::releaseRef):
2643 (WTF::PassRefPtr::operator->):
2644 (WTF::PassRefPtr::operator=):
2646 (WTF::static_pointer_cast):
2647 (WTF::const_pointer_cast):
2649 (WTF::RefPtr::RefPtr):
2650 (WTF::RefPtr::operator=):
2652 2006-10-28 Darin Adler <darin@apple.com>
2656 * kjs/grammar.y: Add definitions of YYMALLOC and YYFREE to fix
2657 a warning some people see (not sure why others don't see it).
2659 * JavaScriptCore.vcproj/JavaScriptCore/grammarWrapper.cpp: Touch
2660 this file to force it to re-build grammar.cpp.
2662 2006-10-28 Darin Adler <darin@apple.com>
2666 - made changes so the code compiles with the highest warning level
2667 under MSVC (disabling some warnings, making some code fixes)
2669 * API/JSCallbackConstructor.cpp:
2670 (KJS::JSCallbackConstructor::construct):
2671 * API/JSCallbackFunction.cpp:
2672 (KJS::JSCallbackFunction::callAsFunction):
2673 * API/JSCallbackObject.cpp:
2674 (KJS::JSCallbackObject::init):
2675 (KJS::JSCallbackObject::construct):
2676 (KJS::JSCallbackObject::callAsFunction):
2677 * API/JSObjectRef.cpp:
2678 (JSPropertyNameArrayGetNameAtIndex):
2679 * API/JSStringRef.cpp:
2680 (JSStringCreateWithCharacters):
2681 * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
2682 * bindings/c/c_utility.cpp:
2683 (KJS::Bindings::convertUTF8ToUTF16):
2684 (KJS::Bindings::coerceValueToNPVariantStringType):
2685 (KJS::Bindings::convertValueToNPVariant):
2687 (KJS::GregorianDateTime::GregorianDateTime):
2689 (KJS::ExecState::hadException):
2690 * kjs/JSImmediate.h:
2691 (KJS::JSImmediate::fromDouble):
2692 (KJS::JSImmediate::toDouble):
2693 (KJS::JSImmediate::NanAsBits):
2694 (KJS::JSImmediate::oneAsBits):
2696 * kjs/PropertyNameArray.h:
2697 (KJS::PropertyNameArray::size):
2698 * kjs/array_object.cpp:
2699 (ArrayObjectImp::callAsFunction):
2700 * kjs/bool_object.cpp:
2701 (BooleanObjectImp::callAsFunction):
2702 * kjs/collector.cpp:
2703 (KJS::Collector::allocate):
2704 (KJS::Collector::markCurrentThreadConservatively):
2705 (KJS::Collector::collect):
2707 (KJS::Completion::isValueCompletion):
2708 * kjs/date_object.cpp:
2711 (Debugger::sourceParsed):
2712 (Debugger::sourceUnused):
2713 (Debugger::exception):
2714 (Debugger::atStatement):
2715 (Debugger::callEvent):
2716 (Debugger::returnEvent):
2718 * kjs/error_object.cpp:
2719 (ErrorObjectImp::callAsFunction):
2720 (NativeErrorImp::callAsFunction):
2722 (KJS::FunctionImp::processVarDecls):
2723 (KJS::GlobalFuncImp::callAsFunction):
2724 * kjs/function_object.cpp:
2725 (FunctionPrototype::callAsFunction):
2727 * kjs/identifier.cpp:
2728 (KJS::CStringTranslator::translate):
2729 (KJS::Identifier::add):
2733 (Lexer::isIdentStart):
2734 (Lexer::isIdentPart):
2736 (Lexer::isHexDigit):
2737 (Lexer::isOctalDigit):
2738 (Lexer::matchPunctuator):
2739 (Lexer::singleEscape):
2740 (Lexer::convertOctal):
2741 (Lexer::convertHex):
2742 (Lexer::convertUnicode):
2745 * kjs/math_object.cpp:
2746 (MathFuncImp::callAsFunction):
2747 * kjs/number_object.cpp:
2748 (integer_part_noexp):
2750 (NumberProtoFunc::callAsFunction):
2751 (NumberObjectImp::callAsFunction):
2753 (KJS::JSObject::deleteProperty):
2754 (KJS::JSObject::callAsFunction):
2755 (KJS::JSObject::toBoolean):
2756 (KJS::JSObject::toObject):
2758 (KJS::JSObject::getPropertySlot):
2759 * kjs/property_map.cpp:
2761 (KJS::PropertyMap::put):
2762 (KJS::PropertyMap::insert):
2763 (KJS::PropertyMap::containsGettersOrSetters):
2764 * kjs/property_map.h:
2765 (KJS::PropertyMap::hasGetterSetterProperties):
2766 * kjs/property_slot.h:
2767 * kjs/string_object.cpp:
2768 (StringInstance::getPropertyNames):
2769 (StringObjectImp::callAsFunction):
2770 (StringObjectFuncImp::callAsFunction):
2772 (KJS::UString::Rep::computeHash):
2773 (KJS::UString::UString):
2774 (KJS::UString::from):
2775 (KJS::UString::append):
2776 (KJS::UString::ascii):
2777 (KJS::UString::operator=):
2778 (KJS::UString::find):
2779 (KJS::UString::rfind):
2783 (KJS::UCharReference::low):
2784 (KJS::UCharReference::high):
2786 (KJS::JSValue::toUInt16):
2788 * pcre/pcre_compile.c:
2789 (get_othercase_range):
2792 * pcre/pcre_internal.h:
2793 * wtf/HashFunctions.h:
2795 (WTF::PtrHash::hash):
2800 * wtf/StringExtras.h:
2802 * wtf/unicode/icu/UnicodeIcu.h:
2803 (WTF::Unicode::isPrintableChar):
2805 2006-10-26 W. Andy Carrel <wac@google.com>
2809 - Fix http://bugs.webkit.org/show_bug.cgi?id=7445 /
2810 <rdar://problem/4614195> (and 7253 / <rdar://4694011>) by changing
2811 inline regexps so that they can have \u escaped Unicode sequences and
2812 still work properly.
2817 (Lexer::shift): Looking ahead one additional character for the benefit
2819 (Lexer::scanRegExp): Change code to support unicode escapes in inline
2821 * kjs/lexer.h: Extra lookahead added.
2823 === Safari-521.29 ===
2825 2006-10-26 Nikolas Zimmermann <zimmermann@kde.org>
2829 Fix build with older gcc 3.3.4.
2831 * kjs/DateMath.cpp: Remove inline prefix.
2832 (KJS::equivalentYearForDST):
2834 2006-10-26 Darin Adler <darin@apple.com>
2838 - fix iteration of properties of string objects (found because of a warning
2839 emitted by the MSVC compiler)
2841 * kjs/string_object.cpp: (StringInstance::getPropertyNames): Change code that
2842 wants to format a number as a string to use UString::from. Before it was using
2843 the UString constructor that makes a string from a character!
2846 * kjs/ustring.cpp: Remove the dangerous and not all that helpful UString(char)
2849 * kjs/grammar.y: Change code to not depend on the UString(char) constructor.
2850 This is potentially more efficient anyway because we could overload the + operator
2851 some day to handle char* directly instead of creating a UString.
2853 * kjs/nodes2string.cpp: (SourceStream::operator<<): Change code to not depend on
2854 the UString(char) constructor.
2856 2006-10-25 Kevin McCullough <KMcCullough@apple.com>
2858 Reviewed by Steve (rubber stamp).
2860 - Link against your local build of JavaScriptCore.lib first, this fixes some errors on release builds of testkjs.
2862 * JavaScriptCore.vcproj/testkjs/testkjs.vcproj:
2864 2006-10-25 Geoffrey Garen <ggaren@apple.com>
2868 Removed duplicate symbol declaration.
2870 * JavaScriptCore.xcodeproj/project.pbxproj:
2873 2006-10-24 Steve Falkenburg <sfalken@apple.com>
2877 * JavaScriptCore.vcproj/testkjs/testkjs.vcproj:
2879 2006-10-24 Kevin McCullough <KMcCullough@apple.com>
2883 - 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.
2885 * kjs/date_object.cpp:
2887 (KJS::formatLocaleDate):
2888 (KJS::DateProtoFunc::callAsFunction):
2890 2006-10-23 Kevin McCullough <KMcCullough@apple.com>
2896 * JavaScriptCore.xcodeproj/project.pbxproj:
2899 2006-10-23 Kevin McCullough <KMcCullough@apple.com>
2903 - Makes the toTM function an operator. Was going to piggy back on a patch but the patch needs more work.
2906 (KJS::equivalentYearForDST):
2908 (KJS::GregorianDateTime::operator tm):
2909 * kjs/date_object.cpp:
2911 (KJS::DateProtoFunc::callAsFunction):
2913 2006-10-23 Kevin McCullough <KMcCullough@apple.com>
2917 - 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).
2922 2006-10-21 Steve Falkenburg <sfalken@apple.com>
2926 Add minimal compatibility with MSVCRT leak checker
2930 2006-10-23 Kevin McCullough <KMcCullough@apple.com>
2934 - Sets the lowercase range correctly in the test and consolidates a variable to make the test more readable.
2936 * tests/mozilla/ecma/String/15.5.4.11-2.js:
2938 2006-10-21 Darin Adler <darin@apple.com>
2942 - http://bugs.webkit.org/show_bug.cgi?id=11377
2943 swap(Vector, Vector) should be O(1) instead of O(n)
2946 (WTF::VectorBuffer::swap): Added.
2947 (WTF::Vector::swap): Added.
2948 (WTF::swap): Added overload that takes two Vector objects.
2950 2006-10-21 Darin Adler <darin@apple.com>
2954 - http://bugs.webkit.org/show_bug.cgi?id=11376
2955 build scripts should invoke make with "-j" option for multiple processors
2957 * JavaScriptCore.xcodeproj/project.pbxproj: Pass -j `sysctl -n hw.ncpu` to make.
2959 2006-10-19 Kevin McCullough <KMcCullough@apple.com>
2963 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.
2964 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.
2966 * tests/mozilla/ecma/String/15.5.4.11-2.js:
2968 2006-10-18 Maciej Stachowiak <mjs@apple.com>
2972 - remove vestiges of KXMLCore name (former name of WTF).
2979 (operator delete[]):
2980 * wtf/FastMallocInternal.h:
2983 * wtf/HashCountedSet.h:
2984 * wtf/HashFunctions.h:
2991 * wtf/Noncopyable.h:
2992 * wtf/OwnArrayPtr.h:
2997 * wtf/StringExtras.h:
2999 * wtf/UnusedParam.h:
3001 * wtf/VectorTraits.h:
3003 2006-10-17 Steve Falkenburg <sfalken@apple.com>
3007 Adjust include paths
3009 * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
3011 2006-10-17 Kevin McCullough <KMcCullough@apple.com>
3015 Fixed a date issue where the UTC offset was not set in win.
3018 (KJS::getDSTOffsetSimple):
3019 (KJS::getDSTOffset):
3020 (KJS::msToGregorianDateTime):
3023 (KJS::GregorianDateTime::GregorianDateTime):
3025 2006-10-17 Kevin McCullough <KMcCullough@apple.com>
3029 Fixes a JavaScriptCore math issue on win.
3031 * kjs/math_object.cpp:
3032 (MathFuncImp::callAsFunction):
3036 2006-10-16 Kevin McCullough <kmccullough@apple.com>
3040 Removed unecessary global specifiers.
3042 * kjs/math_object.cpp:
3043 (MathFuncImp::callAsFunction):
3045 2006-10-16 Kevin McCullough <KMcCullough@apple.com>
3049 Fixes a compile order issue for testkjs on win.
3051 * JavaScriptCore.vcproj/testkjs/testkjs.vcproj:
3053 2006-10-15 Krzysztof Kowalczyk <kkowalczyk@gmail.com>
3057 Remove junk (as gcc calls it) after #else clause.
3059 * wtf/FastMalloc.cpp:
3062 2006-10-14 Krzysztof Kowalczyk <kkowalczyk@gmail.com>
3066 Define KXMLCORE_USE_CURL for platforms that wish to use CURL as
3067 networking, and set it for GDK build
3071 2006-10-13 Marvin Decker <marv.decker@gmail.com>
3073 Reviewed by Kevin McCullough.
3075 Fixes http://bugs.webkit.org/show_bug.cgi?id=11283
3076 Fixes Qt/Linux and Windows build
3080 * kjs/date_object.cpp:
3081 (KJS::DateProtoFunc::callAsFunction):
3083 2006-10-13 Kevin McCullough <KMcCullough@apple.com>
3085 Reviewed by Adam, Geoff, Darin.
3087 Fixed displaying the UTC offset and time zone string, as well as renamed the GregorianDateTime structure and clean up.
3091 (KJS::getUTCOffset):
3092 (KJS::getDSTOffsetSimple):
3093 (KJS::gregorianDateTimeToMS):
3094 (KJS::msToGregorianDateTime):
3096 (KJS::GregorianDateTime::GregorianDateTime):
3097 (KJS::GregorianDateTime::~GregorianDateTime):
3098 (KJS::GregorianDateTime::toTM):
3099 * kjs/date_object.cpp:
3102 (KJS::formatDateUTCVariant):
3104 (KJS::fillStructuresUsingTimeArgs):
3105 (KJS::fillStructuresUsingDateArgs):
3106 (KJS::DateInstance::getTime):
3107 (KJS::DateInstance::getUTCTime):
3108 (KJS::DateProtoFunc::callAsFunction):
3109 (KJS::DateObjectImp::construct):
3110 (KJS::DateObjectImp::callAsFunction):
3111 (KJS::DateObjectFuncImp::callAsFunction):
3113 * kjs/date_object.h:
3115 2006-10-13 Kevin McCullough <KMcCullough@apple.com>
3119 Gets JavaScripCore tests running on windows.
3121 * Scripts/run-javascriptcore-tests:
3122 * Scripts/webkitdirs.pm:
3124 2006-10-12 Geoffrey Garen <ggaren@apple.com>
3128 Removed JSObjectMakeWithPrototype, clarified some comments. We really
3129 don't want people to manage their own prototypes, so we don't want an
3130 extra function in the API devoted to just that. People can still manage
3131 their own prototypes if they really want by using JSObjectSetPrototype.
3133 * API/JSClassRef.cpp:
3134 (OpaqueJSClass::createNoAutomaticPrototype):
3135 (OpaqueJSClass::create):
3137 * API/JSObjectRef.cpp:
3140 * API/JSObjectRef.h:
3143 * JavaScriptCore.exp:
3145 2006-10-12 Kevin McCullough <KMcCullough@apple.com>
3153 * kjs/date_object.cpp:
3156 2006-10-11 Kevin McCullough <KMcCullough@apple.com>
3160 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.
3164 (KJS::getUTCOffset):
3165 (KJS::getDSTOffsetSimple):
3171 * kjs/date_object.cpp:
3174 (KJS::DateProtoFunc::callAsFunction):
3175 (KJS::DateObjectImp::construct):
3176 (KJS::DateObjectImp::callAsFunction):
3177 (KJS::DateObjectFuncImp::callAsFunction):
3179 * kjs/date_object.h:
3181 2006-10-09 Krzysztof Kowalczyk <kkowalczyk@gmail.com>
3185 Improve gdk build compiler flags (show warning, no rtti and exceptions).
3189 2006-10-06 Kevin McCullough <KMcCullough@apple.com>
3193 DST and TimeZones were wrong in some cases, specifically on some of the dates where DST changes.
3196 (KJS::equivalentYearForDST):
3197 (KJS::getUTCOffset):
3198 (KJS::getDSTOffsetSimple):
3199 (KJS::getDSTOffset):
3200 (KJS::dateToMseconds):
3203 * kjs/date_object.cpp:
3206 2006-10-05 Darin Adler <darin@apple.com>
3208 Reviewed by Kevin McCullough.
3210 * wtf/Assertions.cpp: Fix build when _DEBUG is not defined.
3212 2006-10-04 Kevin McCullough <KMcCullough@apple.com>
3216 - 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.
3219 (KJS::getUTCOffset):
3221 * kjs/date_object.cpp:
3225 2006-10-04 Geoffrey Garen <ggaren@apple.com>
3227 Patch by Darin and me, reviewed by Maciej.
3229 Fixed <rdar://problem/4518397> REGRESSION(?): Oft-seen but unrepro crash
3230 in JavaScript garbage collection (KJS::Collector::collect())
3231 <rdar://problem/4752492> Crash in KJS::collect
3233 The issue here was allocating one garbage-collected object in the midst
3234 of allocating a second garbage-collected object. In such a case, the
3235 zeroIfFree word lies.
3237 * kjs/collector.cpp:
3238 (KJS::Collector::allocate):
3239 (KJS::Collector::collect):
3241 2006-10-04 Kevin McCullough <KMcCullough@apple.com>
3248 (KJS::dateToDayInYear): accept and correctly handle negative months
3250 2006-10-05 Kevin McCullough <KMcCullough@apple.com>
3255 (KJS::dateToDayInYear):
3257 2006-10-05 Mark Rowe <bdash@webkit.org>
3259 Reviewed by maculloch.
3263 * JavaScriptCoreSources.bkl: Add DateMath.cpp to file list.
3265 2006-10-05 Kevin McCullough <KMcCullough@apple.com>
3271 * JavaScriptCore.xcodeproj/project.pbxproj:
3273 2006-10-04 Nikolas Zimmermann <zimmermann@kde.org>
3277 Fix Qt/Linux build by adding DateMath.cpp to compilation.
3279 * CMakeLists.txt: Also replace tabs with spaces.
3281 2006-10-04 Kevin McCullough <KMcCullough@apple.com>
3283 Reviewed by DethBakin.
3285 - 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.
3290 (KJS::dateToDayInYear):
3292 2006-10-05 Darin Adler <darin@apple.com>
3296 * wtf/Assertions.cpp: Changed assertion formatting to omit the "======"
3297 lines so you can see more assertions in less space. Also improved format
3298 of file/line information so it works with more development environments.
3300 2006-10-04 Kevin McCullough <KMcCullough@apple.com>
3304 - The build machine is more sensitive about automatic conversions. These fixes exp
3305 licitly cast or change the input and return types of functions to avoid conversions.
3307 * JavaScriptCore.xcodeproj/project.pbxproj:
3313 (KJS::monthToDayInYear):
3314 (KJS::dateToDayInYear):
3315 (KJS::getDSTOffsetSimple):
3316 (KJS::getDSTOffset):
3317 (KJS::dateToMseconds):
3320 2006-10-04 Kevin McCullough <KMcCullough@apple.com>
3324 - 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.
3326 * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
3327 * JavaScriptCore.xcodeproj/project.pbxproj:
3328 * kjs/DateMath.cpp: Added.
3331 (KJS::daysFrom1970ToYear):
3332 (KJS::msFrom1970ToYear):
3336 (KJS::isInLeapYear):
3338 (KJS::msToMilliseconds):
3344 (KJS::msToDayInMonth):
3345 (KJS::monthToDayInYear):
3346 (KJS::timeToMseconds):
3347 (KJS::dateToDayInYear):
3348 (KJS::equivalentYearForDST):
3349 (KJS::getUTCOffset):
3350 (KJS::getDSTOffsetSimple):
3351 (KJS::getDSTOffset):
3352 (KJS::localTimeToUTC):
3353 (KJS::UTCToLocalTime):
3354 (KJS::dateToMseconds):
3357 * kjs/DateMath.h: Added.
3359 * kjs/date_object.cpp:
3362 (KJS::DateInstance::getTime):
3363 (KJS::DateInstance::getUTCTime):
3364 (KJS::DateProtoFunc::callAsFunction):
3365 (KJS::DateObjectImp::construct):
3366 (KJS::DateObjectFuncImp::callAsFunction):
3369 * os-win32/stdint.h:
3371 2006-10-02 Nikolas Zimmermann <zimmermann@kde.org>
3373 Reviewed/landed by Adam.
3375 Build testkjs on Qt/Linux.
3379 2006-10-02 Nikolas Zimmermann <zimmermann@kde.org>
3381 Reviewed by eseidel. Landed by eseidel.
3383 Fix win32 build, which has no inttypes.h
3387 2006-10-02 Nikolas Zimmermann <zimmermann@kde.org>
3389 Reviewed by eseidel & mjs. Landed by eseidel.
3391 Fix Qt/Linux build with older gcc 3.3.4.
3392 http://bugs.webkit.org/show_bug.cgi?id=11116
3394 * kjs/lookup.h: Move cacheGlobalObject into KJS namespace.
3395 (KJS::cacheGlobalObject): Also remove GCC_ROOT_NS_HACK.
3396 * wtf/Assertions.h: Include inttypes.h for uintptr_t.
3398 2006-09-28 Steve Falkenburg <sfalken@apple.com>
3402 Use $(ConfigSuffix) set via vsprops files to add _debug
3403 to end of debug filenames.
3405 * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
3406 * JavaScriptCore.vcproj/debug.vsprops: Added.
3407 * JavaScriptCore.vcproj/dftables/dftables.vcproj:
3408 * JavaScriptCore.vcproj/release.vsprops: Added.
3409 * JavaScriptCore.vcproj/testkjs/testkjs.vcproj:
3411 2006-09-28 Darin Adler <darin@apple.com>
3415 - support for change that should fix <rdar://problem/4733044>
3416 REGRESSION: XML iBench shows 10% perf. regression (copying
3417 strings while decoding)
3419 * wtf/Vector.h: Changed VectorBuffer so that the general case
3420 contains an instance of the 0 case, since deriving from it
3421 was violating the Liskov Substitution Principle.
3422 (WTF::VectorBuffer::releaseBuffer): Added. Releases the buffer so it can
3423 be adopted by another data structure that uses the FastMalloc.h allocator.
3424 Returns 0 if the internal buffer was being used.
3425 (WTF::Vector::releaseBuffer): Added. Releases the buffer as above or creates
3426 a new one in the case where the internal buffer was being used.
3428 2006-09-28 Maciej Stachowiak <mjs@apple.com>
3432 - change garbage collection to happen at increments proportional to number of live objects, not always
3433 every 1000 allocations
3435 * kjs/collector.cpp:
3436 (KJS::Collector::allocate):
3438 2006-09-28 Maciej Stachowiak <mjs@apple.com>
3442 - fixed REGRESSION (r16606): javascriptCore Crash on website load
3446 - fixed some possible off-by-one bugs
3447 - use indexing, not iterators, for Vectors
3448 - store Vector by pointer instead of by value to avoid blowing out FunctionImp size
3451 (KJS::FunctionImp::addParameter):
3452 (KJS::FunctionImp::parameterString):
3453 (KJS::FunctionImp::processParameters):
3454 (KJS::FunctionImp::lengthGetter):
3455 (KJS::FunctionImp::getParameterName):
3458 2006-09-27 Steve Falkenburg <sfalken@apple.com>
3464 * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
3465 * JavaScriptCore.vcproj/JavaScriptCore/dstroot-to-sdk.cmd: Removed.
3467 2006-09-27 John Sullivan <sullivan@apple.com>
3470 (KJS::FunctionImp::getParameterName):
3471 removed assertion that displeased gcc 4.0.1 (build 5420):
3472 ASSERT(static_cast<size_t>(index) == index);
3474 2006-09-27 Kevin McCullough <KMcCullough@apple.com>
3478 Cleanup of previous fix which was to address Radar: 4752492
3481 (KJS::FunctionImp::addParameter):
3482 (KJS::FunctionImp::parameterString):
3483 (KJS::FunctionImp::processParameters):
3484 (KJS::FunctionImp::lengthGetter):
3485 (KJS::FunctionImp::getParameterName):
3488 2006-09-27 Kevin McCullough <KMcCullough@apple.com>
3492 Fixes a GC stack overflow crash.
3493 The change is to move from a linked list implementation of Parameters to a Vector.
3494 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.
3497 (KJS::Parameter::Parameter):
3498 (KJS::FunctionImp::addParameter):
3499 (KJS::FunctionImp::parameterString):
3500 (KJS::FunctionImp::processParameters):
3501 (KJS::FunctionImp::lengthGetter):
3502 (KJS::FunctionImp::getParameterName):
3505 2006-09-27 Steve Falkenburg <sfalken@apple.com>
3509 * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
3511 2006-09-27 Steve Falkenburg <sfalken@apple.com>
3513 Set path before build.
3515 * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
3517 2006-09-27 Sean Gies <seangies@apple.com>
3519 Reviewed by Adam Roben.
3521 * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj: Debug config should link to debug runtime.
3522 * JavaScriptCore.vcproj/dftables/dftables.vcproj: Debug config should link to debug runtime.
3524 2006-09-27 Don Melton <gramps@apple.com>
3526 Reviewed by Adam Roben.
3528 Changed line ending from DOS to UNIX format so it doesn't die running
3531 * JavaScriptCore.vcproj/JavaScriptCore/build-generated-files.sh:
3533 2006-09-23 Alexey Proskuryakov <ap@nypop.com>
3537 http://bugs.webkit.org/show_bug.cgi?id=10183
3538 REGRESSION: obfuscated JS decoding breaks because of soft hyphen removal
3539 (Fanfiction.net author pages not listing stories)
3541 Rolled out the fix for bug 4139.
3546 * tests/mozilla/ecma/Array/15.4.5.1-1.js:
3547 * tests/mozilla/expected.html:
3549 2006-09-22 Steve Falkenburg <sfalken@apple.com>
3553 * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
3555 2006-09-22 Darin Adler <darin@apple.com>
3559 * wtf/Vector.h: Add an append that takes a pointer and length.
3560 Generalize the existing Vector append to work on vectors with