Fix major JavaScript memory leak. run-plt says cvs-base improved
[WebKit-https.git] / JavaScriptCore / ChangeLog
1 2002-08-14  Maciej Stachowiak  <mjs@apple.com>
2
3         Fix major JavaScript memory leak. run-plt says cvs-base improved
4         by 2% and cvs-js-performance improved by 7%. However, this was
5         within the possible noise level in each case.
6         
7         The fix was to store ValueImp *'s in the array instead of Value
8         objects, since the Value wrapper will keep a ref and make the
9         object immortal.
10
11         * kjs/array_object.cpp:
12         (ArrayInstanceImp::ArrayInstanceImp):
13         (ArrayInstanceImp::get):
14         (ArrayInstanceImp::put):
15         (ArrayInstanceImp::hasProperty):
16         (ArrayInstanceImp::deleteProperty):
17         (ArrayInstanceImp::setLength):
18         (ArrayInstanceImp::mark):
19         * kjs/array_object.h:
20
21 2002-08-13  Maciej Stachowiak  <mjs@apple.com>
22
23         Add the ability to determine the classes of live JavaScript
24         objects, to help with leak fixing.
25
26         * kjs/collector.h, kjs/collector.cpp:
27         (Collector::liveObjectClasses):
28
29 2002-08-13  Maciej Stachowiak  <mjs@apple.com>
30
31         Small speed improvement. 3% faster on cvs-js-performance, no
32         measurable change on cvs-static-urls.
33         
34         * kjs/collector.cpp:
35         (Collector::collect): Combine 3 loops over all objects into one,
36         to reduce flat time and improve locality of reference.
37
38 2002-08-12  Darin Adler  <darin@apple.com>
39
40         Speed improvements. 19% faster on cvs-js-performance, 1% on cvs-static-urls.
41
42         Use global string objects for length and other common property names rather
43         than constantly making and destroying them. Use integer versions of get() and
44         other related calls rather than always making a string.
45
46         Also get rid of many unneeded constructors, destructors, copy constructors, and
47         assignment operators. And make some functions non-virtual.
48
49         * kjs/internal.h:
50         * kjs/internal.cpp:
51         (NumberImp::toUInt32): Implement.
52         (ReferenceImp::ReferenceImp): Special case for numeric property names.
53         (ReferenceImp::getPropertyName): Moved guts here from ValueImp. Handle numeric case.
54         (ReferenceImp::getValue): Moved guts here from ValueImp. Handle numeric case.
55         (ReferenceImp::putValue): Moved guts here from ValueImp. Handle numeric case.
56         (ReferenceImp::deleteValue): Added. Handle numeric case.
57
58         * kjs/array_object.h:
59         * kjs/array_object.cpp: All-new array implementation that stores the elements
60         in a C++ array rather than in a property map.
61         (ArrayInstanceImp::ArrayInstanceImp): Allocate the C++ array.
62         (ArrayInstanceImp::~ArrayInstanceImp): Delete the C++ array.
63         (ArrayInstanceImp::get): Implement both the old version and the new overload that
64         takes an unsigned index for speed.
65         (ArrayInstanceImp::put): Implement both the old version and the new overload that
66         takes an unsigned index for speed.
67         (ArrayInstanceImp::hasProperty): Implement both the old version and the new overload that
68         takes an unsigned index for speed.
69         (ArrayInstanceImp::deleteProperty): Implement both the old version and the new overload that
70         takes an unsigned index for speed.
71         (ArrayInstanceImp::setLength): Added. Used by the above to resize the array.
72         (ArrayInstanceImp::mark): Mark the elements of the array too.
73         (ArrayPrototypeImp::ArrayPrototypeImp): Pass the length to the array instance constructor.
74
75         * kjs/bool_object.cpp:
76         * kjs/date_object.cpp:
77         * kjs/error_object.cpp:
78         * kjs/function.cpp:
79         * kjs/function_object.cpp:
80         * kjs/math_object.cpp:
81         * kjs/nodes.cpp:
82         * kjs/nodes.h:
83         * kjs/number_object.cpp:
84         * kjs/object_object.cpp:
85         * kjs/regexp_object.cpp:
86         * kjs/string_object.cpp:
87
88         * kjs/nodes2string.cpp: (SourceStream::operator<<): Add a special case for char now that
89         you can't create a UString from a char implicitly.
90
91         * kjs/object.h:
92         * kjs/object.cpp:
93         (ObjectImp::get): Call through to the string version if the numeric version is not implemented.
94         (ObjectImp::put): Call through to the string version if the numeric version is not implemented.
95         (ObjectImp::hasProperty): Call through to the string version if the numeric version is not implemented.
96         (ObjectImp::deleteProperty): Call through to the string version if the numeric version is not implemented.
97
98         * kjs/types.h:
99         * kjs/types.cpp:
100         (Reference::Reference): Added constructors for the numeric property name case.
101
102         * kjs/ustring.h: Made the constructor that turns a character into a string be explicit so we
103         don't get numbers that turn themselves into strings.
104         * kjs/ustring.cpp:
105         (UString::UString): Detect the empty string case, and use a shared empty string.
106         (UString::find): Add an overload for single character finds.
107         (UString::rfind): Add an overload for single character finds.
108         (KJS::operator==): Fix bug where it would call strlen(0) if the first string was not null.
109         Also handle non-ASCII characters consistently with the rest of the code by casting to unsigned char
110         just in case.
111
112         * kjs/value.h: Make ValueImp and all subclasses non-copyable and non-assignable.
113         * kjs/value.cpp:
114         (ValueImp::toUInt32): New interface, mainly useful so we can detect array indices and not turn
115         them into strings and back.
116         (ValueImp::toInteger): Use the new toUInt32. Probably can use more improvement.
117         (ValueImp::toInt32): Use the new toUInt32. Probably can use more improvement.
118         (ValueImp::toUInt16): Use the new toUInt32. Probably can use more improvement.
119         (ValueImp::getBase): Remove handling of the Reference case. That's in ReferenceImp now.
120         (ValueImp::getPropertyName): Remove handling of the Reference case. That's in ReferenceImp now.
121         (ValueImp::getValue): Remove handling of the Reference case. That's in ReferenceImp now.
122         (ValueImp::putValue): Remove handling of the Reference case. That's in ReferenceImp now.
123         (ValueImp::deleteValue): Added. Used so we can do delete the same way we do put.
124
125 === Alexander-17 ===
126
127 2002-08-09  Darin Adler  <darin@apple.com>
128
129         Some string speedups. Makes sony.com cached 11% faster on Development, but
130         the improvement for Deployment should be greater.
131
132         * kjs/ustring.h: Made it possible for UChar objects to be uninitialized, which
133         gives a speed boost. Inlined CString's +=, UString's destructor, +=, and +.
134         * kjs/ustring.cpp:
135         (UString::UString): Optimize const char * version, which showed up
136         heavily in performance analysis. Added new two-UString version, which
137         makes the + operator fast. 
138         (UString::ascii): Remove thread safety changes. Change static buffer to remember
139         its size, and to always be at least 4096 bytes long; that way we never have to
140         reallocate unless it's for a long string. Also make code to extract the characters
141         significantly faster by getting rid of two pointer dereferences per character.
142         (UString::is8Bit): Avoid one pointer dereference per character.
143         (UString::toDouble): Use ascii() instead of cstring() to avoid copying the string.
144
145         * kjs/collector.cpp: Remove unneeded APPLE_CHANGES.
146         * kjs/regexp.cpp: Remove ifdefs around some APPLE_CHANGES that we
147         want to keep, because they just fix warnings.
148         * kjs/value.h: Remove obsolete APPLE_CHANGES comment.
149
150         * JavaScriptCore.pbproj/project.pbxproj: Project Builder decided
151         to move a line around in the file.
152
153 2002-08-09  Maciej Stachowiak  <mjs@apple.com>
154
155         Fix my last change to actually call the versions of the lock functions
156         that are recursive and initialize as needed.
157         
158         * kjs/internal.cpp:
159         (InterpreterImp::InterpreterImp):
160         (InterpreterImp::clear):
161         (InterpreterImp::evaluate):
162
163 2002-08-09  Maciej Stachowiak  <mjs@apple.com>
164
165         - fixed 2948835 - JavaScriptCore locking is too fine grained, makes it too slow
166
167         * kjs/collector.cpp:
168         (Collector::allocate):
169         (Collector::collect):
170         (Collector::finalCheck):
171         (Collector::numInterpreters):
172         (Collector::numGCNotAllowedObjects):
173         (Collector::numReferencedObjects):
174         * kjs/collector.h:
175         * kjs/internal.cpp:
176         (initializeInterpreterLock):
177         (lockInterpreter):
178         (unlockInterpreter):
179         (Parser::parse):
180         (InterpreterImp::InterpreterImp):
181         (InterpreterImp::clear):
182         (InterpreterImp::evaluate):
183         * kjs/value.cpp:
184         (ValueImp::ValueImp):
185         (ValueImp::setGcAllowed):
186
187 === milestone 0.5 ===
188
189 === Alexander-16 ===
190
191 2002-08-05  Maciej Stachowiak  <mjs@apple.com>
192
193         - fixed 3007072 - need to be able to build fat
194         
195         * JavaScriptCore.pbproj/project.pbxproj: Fixed DeploymentFat build.
196
197 === Alexander-15 ===
198
199 2002-07-25  Darin Adler  <darin@apple.com>
200
201         * JavaScriptCore.pbproj/project.pbxproj: Add DeploymentFat build style.
202
203 === Alexander-14 ===
204
205 2002-07-21  Darin Adler  <darin@apple.com>
206
207         * kjs/*: Roll KDE 3.0.2 changes in. Also switch to not using APPLE_CHANGES
208         for some of the changes that we definitely want to contribute upstream.
209
210 2002-07-21  Maciej Stachowiak  <mjs@apple.com>
211
212         * Makefile.am: Remove products from symroots on `make clean'.
213
214 === Alexander-13 ===
215
216 2002-07-13  Darin Adler  <darin@apple.com>
217
218         * Makefile.am: Don't use embed.am any more.
219         * JavaScriptCore.pbproj/project.pbxproj: Use embed-into-alex instead
220         of make embed.
221
222 2002-07-12  Darin Adler  <darin@apple.com>
223
224         * kjs/ustring.h: Since <sys/types.h> includes ushort and uint now, had
225         to change the includes here to be compatible with that.
226
227 2002-07-11  Darin Adler  <darin@apple.com>
228
229         * JavaScriptCore.pbproj/project.pbxproj: To make the build of
230         WebCore work without using -I to peek at JavaScriptCore sources,
231         made all the Public sources Private so they are all in one directory.
232         Also, made lookup.h be Private.
233
234 === Alexander-11 ===
235
236 === Alexander-10 ===
237
238 2002-06-25  Darin Adler  <darin@apple.com>
239
240         * JavaScriptCore.pbproj/project.pbxproj: Re-add -Wmissing-format-attribute.
241
242 === Alexander-9 ===
243
244 2002-06-19  Kenneth Kocienda  <kocienda@apple.com>
245
246         I just played alchemical voodoo games with the linker to 
247         make all our frameworks and Alexander prebound.
248
249         * JavaScriptCore.pbproj/project.pbxproj
250
251 2002-06-15  Darin Adler  <darin@apple.com>
252
253         * JavaScriptCore.pbproj/project.pbxproj: Removed explicit PFE_FILE_C_DIALECTS now that
254         Project Builder handles this automatically. Removed explicit USE_GCC3 since that's implicit
255         now. Also, since this project is all C++, only use WARNING_CFLAGS with flags that are appropriate
256         for C++; don't bother breaking out C vs. C++.
257
258         * kjs/collector.cpp: Now that the system warning is fixed, use PTHREAD_MUTEX_INITIALIZER and
259         PTHREAD_COND_INITIALIZER.
260         * kjs/internal.cpp: Use PTHREAD_MUTEX_INITIALIZER.
261         * kjs/ustring.cpp: Use PTHREAD_ONCE_INIT.
262
263 2002-06-15  Maciej Stachowiak  <mjs@apple.com>
264
265         Made Development build mode mean what Unoptimized used to mean. Removed Unoptimized build mode. 
266         Added a Mixed build mode which does what Deployment used to. All this to fix:
267         
268         Radar 2955367 - Change default build style to "Unoptimized"
269         
270         * JavaScriptCore.pbproj/project.pbxproj:
271
272 2002-06-12  Darin Adler  <darin@apple.com>
273
274         * kjs/nodes.cpp: (Node::finalCheck): A bit of APPLE_CHANGES so we
275         can compile with KJS_DEBUG_MEM defined if we want to.
276
277 2002-06-10  Darin Adler  <darin@apple.com>
278
279         Merged in changes from KDE 3.0.1.
280
281         * kjs/collector.cpp:
282         * kjs/date_object.cpp:
283         * kjs/function.cpp:
284         * kjs/internal.cpp:
285         * kjs/lookup.h:
286         * kjs/object.cpp:
287         * kjs/operations.cpp:
288         * kjs/regexp.cpp:
289         * kjs/regexp_object.cpp:
290         * kjs/regexp_object.h:
291         * kjs/string_object.cpp:
292         * kjs/testkjs.cpp:
293         * kjs/ustring.cpp:
294         * kjs/value.cpp:
295         * kjs/value.h:
296         Do the merge, and add APPLE_CHANGES as needed to make things compile.
297
298         * kjs/date_object.lut.h: Re-generated.
299
300 2002-06-07  Darin Adler  <darin@apple.com>
301
302         * Makefile.am: Use new shared "embed.am" file so we don't need four copies of
303         the embedding rules for WebFoundation, JavaScriptCore, WebCore, and WebKit.
304
305 2002-06-07  Darin Adler  <darin@apple.com>
306
307         * JavaScriptCore.pbproj/project.pbxproj: Don't use any warning flags for C that won't work
308         for C++, because PFE uses the C warning flags on a C++ compile.
309
310 === Alexander-8 ===
311
312 2002-06-06  Darin Adler  <darin@apple.com>
313
314         * JavaScriptCore.pbproj/project.pbxproj: Update warning flags for compatibility
315         with new C++.
316
317 2002-06-05  Darin Adler  <darin@apple.com>
318
319         Fix problem seen as build failure on Jersey.
320
321         * Makefile.am: JavaScriptCore-stamp needs to be a dependency, not a
322         source file, because it doesn't have a corresponding object file.
323         Making it a dependency causes things to compile in the right order.
324
325 2002-06-04  Darin Adler  <darin@apple.com>
326
327         Improve the speed of the JavaScript string append operation by growing
328         the capacity so we don't need to reallocate the string every time.
329
330         Also fix script execution so it doesn't use recursion to advance from
331         one statement to the next, using iteration instead.
332
333         * Makefile.am: Stop using BUILT_SOURCES to build JavaScriptCore-stamp,
334         because this causes the Project Builder project to build *before* the
335         subdir. Intead, use an all-am rule in a way more similar to all our
336         other directories.
337
338         * kjs/grammar.y: Link the SourceElementsNode in the opposite direction,
339         so we can walk the list and execute each element instead of using
340         recursion to reverse the list.
341         * kjs/grammar.cpp: Check in new generated file.
342
343         * kjs/nodes.cpp:
344         (SourceElementsNode::execute):
345         (SourceElementsNode::processFuncDecl):
346         (SourceElementsNode::processVarDecls):
347         Use loops instead of recursion.
348
349         * kjs/ustring.h: Don't initialize all UChar objects to 0. This was
350         wasting a *huge* amount of time.
351         * kjs/ustring.cpp:
352         (UString::Rep::create): Add a "capacity" along with the length.
353         (UString::append): Include 50% extra capacity when appending.
354         (UString::operator=): Reuse the buffer if possible rather than
355         always creating a new one.
356
357 2002-06-02  Darin Adler  <darin@apple.com>
358
359         * COPYING.LIB: Fix line endings. It was using CRs.
360
361 2002-05-31  Darin Adler  <darin@apple.com>
362
363         * Makefile.am:
364         * kjs/Makefile.am:
365         Slight improvements to rules that touch stamp files.
366
367 2002-05-28  Maciej Stachowiak  <mjs@apple.com>
368
369         * THANKS: Demangled.
370
371 === Alexander-7 ===
372
373 2002-05-24  Maciej Stachowiak  <mjs@apple.com>
374
375         Added license and acknowledgements.
376
377         * AUTHORS: Added.
378         * COPYING.LIB: Added.
379         * THANKS: Added.
380
381 === 0.3 ===
382
383 === Alexander-6 ===
384
385 === Alexander-5 ===
386
387 === Alexander-4 ===
388
389 === JavaScriptCore-5 ===
390
391 2002-05-21  Maciej Stachowiak  <mjs@apple.com>
392
393         Reviewed by: Richard Williamson
394
395         Fixed Radar 2928775 - Sherlock crashes sitting in stocks channel
396
397         * kjs/internal.cpp:
398         (InterpreterImp::InterpreterImp): Set the interp pointer earlier,
399         in case garbage collection takes place while creating the global
400         values.
401
402 2002-05-15  Darin Adler  <darin@apple.com>
403
404         Reviewed by: Maciej Stachowiak
405         
406         * Makefile.am:
407         Use all-am and clean-am instead of all and clean because it's better and
408         to make "make check" at the top level work right.
409
410 2002-05-13  Darin Adler  <darin@apple.com>
411
412         Reviewed by: Maciej Stachowiak
413
414         * kjs/value.h: Fix comment typos.
415
416 === JavaScriptCore-4 ===
417
418 2002-05-10  Maciej Stachowiak  <mjs@apple.com>
419
420         Reviewed by: Ken Kocienda and Darin Adler
421
422         Fixed the following bug:
423
424         Radar 2890573 - JavaScriptCore needs to be thread-safe
425
426         Actually this is only a weak form of thread-safety - you can safely
427         use different interpreters from different threads at the same
428         time. If you try to use a single interpreter object from multiple
429         threads, you need to provide your own locking.
430
431         * kjs/collector.h, kjs/collector.cpp:
432         (Collector::lock, Collector::unlock): Trivial implementation of a
433         recursive mutex.
434         (Collector::allocate): Lock around the body of this function.
435         (Collector::collect): Likewise.
436         (Collector::finalCheck): Likewise.
437         (Collector::numInterpreters): Likewise.
438         (Collector::numGCNotAllowedObjects): Likewise.
439         (Collector::numReferencedObjects): Likewise.
440         * kjs/internal.cpp:
441         (Parser::parse): use a mutex to lock around the whole parse, since
442         it uses a bunch of global state.
443         (InterpreterImp::InterpreterImp): Grab the Collector lock here,
444         both the mutually exclude calls to the body of this function, and
445         to protect the s_hook static member which the collector pokes at.
446         (InterpreterImp::clear): Likewise.
447         * kjs/ustring.cpp:
448         (statBufferKeyCleanup, statBufferKeyInit, UString::ascii): Convert
449         use of static variable
450         * kjs/value.cpp:
451         (ValueImp::ValueImp, ValueImp::mark, ValueImp::marked,
452         ValueImp::setGcAllowed): Grab the GC lock around any flag changes.
453
454 === Alexander-3 ===
455
456 2002-05-08  Darin Adler  <darin@apple.com>
457
458         * kjs/collector.h:
459         * kjs/collector.cpp:
460         (Collector::numInterpreters):
461         (Collector::numGCNotAllowedObjects):
462         (Collector::numReferencedObjects):
463         Add three new functions so we can see a bit more about leaking JavaScriptCore.
464
465 2002-05-06  Darin Adler  <darin@apple.com>
466
467         * JavaScriptCorePrefix.h: Added.
468         * JavaScriptCore.pbproj/project.pbxproj: Use PFE precompiling.
469         Also switch from xNDEBUG to NDEBUG.
470
471 === Alexander 0.3c2 (v1) ===
472
473 2002-04-18  Darin Adler  <darin@apple.com>
474
475         * JavaScriptCore.pbproj/project.pbxproj: Oops. Take out -Wstrict-prototypes, put back
476         -Wmissing-prototypes.
477
478 2002-04-18  Darin Adler  <darin@apple.com>
479
480         * JavaScriptCore.pbproj/project.pbxproj: Take out -Wmissing-prototypes
481         because system headers are triggering it when we don't have
482         precompiled headers on.
483
484 2002-04-18  Darin Adler  <darin@apple.com>
485
486         Reviewed by Maciej
487
488         * JavaScriptCore.pbproj/project.pbxproj: Turn on gcc3 and the same set of warnings
489         as in the rest of Labyrinth (see top level ChangeLog for details).
490
491 2002-04-17  Maciej Stachowiak  <mjs@apple.com>
492
493         Reviewed by: Darin Adler  <darin@apple.com>
494
495         * kjs/testkjs.cpp: Don't include <iostream.h> to avoid gcc3
496         warning.
497
498 2002-04-15  Darin Adler  <darin@apple.com>
499
500         Reviwed by: Maciej Stachowiak  <mjs@apple.com>
501
502         * kjs/internal.cpp:
503         * kjs/property_map.cpp:
504         * kjs/ustring.h:
505         Removed some unneeded <config.h> includes so we are more similar
506         to the real KDE sources.
507
508 2002-04-15  Darin Adler  <darin@apple.com>
509
510         Reviwed by: Maciej Stachowiak  <mjs@apple.com>
511
512         Merged changes from KDE 3.0 final and did some build fixes.
513
514         * JavaScriptCore.pbproj/project.pbxproj: Added nodes2string.cpp.
515
516         * kjs/grammar.*: Regenerated.
517         * kjs/*.lut.h: Regenerated.
518
519 2002-04-08  Darin Adler  <darin@apple.com>
520
521         Reviwed by: Maciej Stachowiak  <mjs@apple.com>
522
523         * JavaScriptCore.pbproj/project.pbxproj: Re-added -Wno-format-y2k.
524
525 2002-04-04  Darin Adler  <darin@apple.com>
526
527         * JavaScriptCore.pbproj/project.pbxproj: Add an Unoptimized build
528         style: exactly like Development except without the -O.
529
530 2002-04-03  Darin Adler  <darin@apple.com>
531
532         * kjs/Makefile.am: Gratuitous cleanup.
533
534 2002-04-02  Darin Adler  <darin@apple.com>
535
536         * JavaScriptCore.pbproj/project.pbxproj: Update flags as I did for
537         WebFoundation.
538
539 2002-04-02  Maciej Stachowiak  <mjs@apple.com>
540
541         * JavaScriptCore.pbproj/project.pbxproj: Pass -Wno-format-y2k so
542         the project builds with gcc3.
543         
544         * kjs/nodes.cpp: Avoid including an obsolete header to avoid
545         warning with gcc3.
546
547 2002-04-02  Darin Adler  <darin@apple.com>
548
549         * kjs/property_map.cpp: (PropertyMap::~PropertyMap): Deallocate the
550         map by calling clear so we don't leak the entire map.
551
552 2002-04-02  Darin Adler  <darin@apple.com>
553
554         * kjs/internal.cpp: (InterpreterImp::globalClear): Add code to
555         deallocate and null out emptyList, because once the last interpreter
556         is destroyed there's nothing to keep it from being garbage collected.
557
558 2002-04-01  Darin Adler  <darin@apple.com>
559
560         Got rid of KWQDef.h because it's dangerous to have two files with
561         the same name and different contents.
562
563         * JavaScriptCore.pbproj/project.pbxproj:
564         * kjs/KWQDef.h: Removed.
565         * kjs/ustring.h: Defines unsigned int types inline now.
566
567 2002-03-30  Maciej Stachowiak  <mjs@apple.com>
568
569         Fixed Radar 2891272 (JavaScript crashes loading quicktime.com and
570         apple.com)
571
572         * kjs/object.cpp: (ObjectImp::~ObjectImp): Don't call setGCAlloc
573         on object internals pointed to, because they may have already been
574         collected by the time this object is collected, and in that case
575         we would corrupt the malloc arena.
576
577         * Makefile.am: Make the stamp file depend on all the sources and
578         headers so the framework gets rebuilt properly.
579
580         * JavaScriptCore.pbproj/project.pbxproj: Some random numbers moved
581         around. No idea what I really changed.
582
583 2002-03-30  Darin Adler  <darin@apple.com>
584
585         * kjs/grammar.y: Took out Id tag so we won't constantly need to
586         update grammar.cpp.
587         * kjs/grammar.cpp: Regenerated without Id tag.
588
589         * .cvsignore: Ignore some additional autogenerated files.
590         * kjs/.cvsignore: Ignore some additional autogenerated files.
591
592 2002-03-30  Maciej Stachowiak  <mjs@apple.com>
593
594         * JavaScriptCore.pbproj/project.pbxproj: Install some of the
595         headers.
596
597 2002-03-30  Maciej Stachowiak  <mjs@apple.com>
598
599         Converted JavaScriptCore to build with Project Builder, in
600         preparation for B&I submission.
601
602         * English.lproj/InfoPlist.strings: Added.
603         * JavaScriptCore.pbproj/.cvsignore: Added.
604         * JavaScriptCore.pbproj/project.pbxproj: Added.
605         
606         * .cvsignore: Update the set of ignored things.
607
608         * Makefile.am: Hand off to PB for the main build, but still handle
609         the generated files and the test program.
610
611         * kjs/Makefile.am: Don't build anything except the generated
612         source files.
613
614         * kjs/KWQDef.h, kjs/config.h: Added minimal versions of these
615         files to get kjs to build.
616
617         Check in all the genrated files, since Project Builder isn't up to
618         the task of handling built sources:
619         
620         * kjs/array_object.lut.h: Added.
621         * kjs/date_object.lut.h: Added.
622         * kjs/grammar.cpp: Added.
623         * kjs/grammar.cpp.h: Added.
624         * kjs/grammar.h: Added.
625         * kjs/lexer.lut.h: Added.
626         * kjs/math_object.lut.h: Added.
627         * kjs/number_object.lut.h: Added.
628         * kjs/string_object.lut.h: Added.
629
630         * kjs/.cvsignore: Update set of ignored things.
631
632 2002-03-28  Maciej Stachowiak  <mjs@apple.com>
633
634         * kjs/kjs-test.chk: Update output for new test results.
635
636 2002-03-26  Maciej Stachowiak  <mjs@apple.com>
637
638         Set up kjs to build by itself into libJavaScriptCore.dylib.
639         
640         * .cvsignore: Added.
641         * Makefile.am: Added.
642         * dummy.cpp: Added.
643         * kjs/.cvsignore: Added.