JavaScriptCore:
[WebKit-https.git] / JavaScriptGlue / ChangeLog
1 2007-03-17  Timothy Hatcher  <timothy@apple.com>
2
3         Reviewed by Mark Rowe.
4
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.
9
10         * Configurations/JavaScriptGlue.xcconfig:
11         * Configurations/Version.xcconfig:
12
13 2007-03-15  Timothy Hatcher  <timothy@apple.com>
14
15         Reviewed by John.
16
17         * Factored out most of our common build settings into .xcconfig files. Anything that was common in
18           each build configuration was factored out into the shared .xcconfig file.
19         * Adds a Version.xcconfig file to define the current framework version, to be used in other places.
20         * Use the new $(BUNDLE_VERSION) (defined in Version.xcconfig) in the preprocessed Info.plist.
21         * Use the versions defined in Version.xcconfig to set $(DYLIB_CURRENT_VERSION).
22
23         * Configurations/Base.xcconfig: Added.
24         * Configurations/DebugRelease.xcconfig: Added.
25         * Configurations/JavaScriptGlue.xcconfig: Added.
26         * Configurations/Version.xcconfig: Added.
27         * Info.plist:
28         * JavaScriptGlue.xcodeproj/project.pbxproj:
29
30 === Safari-5522.4 ===
31
32 2007-03-12  Geoffrey Garen  <ggaren@apple.com>
33
34         Reviewed by Oliver Hunt.
35         
36         Updated in light of fix for <rdar://problem/4681051> Installer crashes 
37         in KJS::Collector::markOtherThreadConservatively(KJS::Collector::Thread*) 
38         trying to install iLife 06 using Rosetta on an Intel Machine
39         
40         * JavaScriptGlue.cpp:
41         (JSLockInterpreter): Ensure backwards compatibility by calling 
42         registerThread() when explicitly taking the JSLock. (This doesn't happen 
43         automatically anymore.) I doubt this actally matters, but in JavaScriptGlue
44         territory, that kind of thinking will get you killed.
45
46 2007-03-06  Geoffrey Garen  <ggaren@apple.com>
47
48         Reviewed by Maciej Stachowiak.
49
50         Fixed all known crashers exposed by run-webkit-tests --threaded while using
51         a PAC file (for maximum carnage). See JavaScriptCore ChangeLog for 
52         more details.
53
54         * JSBase.cpp:
55         (JSBase::Release): Lock when deleting, because we may be deleting an object
56         (like a JSRun) that holds thread-unsafe data.
57
58         * JSUtils.cpp:
59         (CFStringToUString): Don't lock, because our caller locks. Also, locking
60         inside a function that returns thread-unsafe data by copy will only mask
61         threading problems.
62
63         * JavaScriptGlue.cpp:
64         (JSRunEvaluate): Added missing JSLock.
65         (JSRunCheckSyntax): Converted to JSLock.
66         * JavaScriptGlue.xcodeproj/project.pbxproj:
67
68 2007-02-22  Geoffrey Garen  <ggaren@apple.com>
69
70         Reviewed by Darin Adler.
71         
72         Fixed <rdar://problem/4942528> Installer.app Stuck "Examining additional 
73         volumes..."
74         
75         The problem was that JavaScriptGlue held a JSObject in a static pointer
76         without protecting it from garbage collection. 
77         
78             sUserObjectPrototypeImp  = new UserObjectPrototypeImp();
79             static ProtectedPtr<UserObjectPrototypeImp> protectPrototype; // valiant, brave, but useless
80
81         Through an interesting comedy of errors, this object would be collected 
82         and then assigned as the prototype of another object allocated at the 
83         same address, thus becoming its own prototype. (See http://www.ziplo.com/grandpa.htm
84         for further explanation of this phenomenon.) Hence the infinte loop in 
85         property lookup.
86         
87         The solution is equally humorous: all of this code was completely useless --
88         it only served to create an empty object in the prototype chain -- so
89         I just removed it.
90
91         * UserObjectImp.cpp:
92         (UserObjectImp::UserObjectImp):
93         * UserObjectImp.h:
94
95 2007-02-19  Timothy Hatcher  <timothy@apple.com>
96
97         Reviewed by Geoff.
98
99         <rdar://problem/4636301> Deprecate JavaScriptGlue
100
101         * JavaScriptGlue.h: adds DEPRECATED_IN_MAC_OS_X_VERSION_10_5_AND_LATER to everything
102         * JavaScriptGlue.xcodeproj/project.pbxproj: use -Wno-deprecated-declarations to keep the project building
103         * config.h: define DEPRECATED_IN_MAC_OS_X_VERSION_10_5_AND_LATER as empty on other systems
104
105 2007-02-16  Darin Adler  <darin@apple.com>
106
107         Reviewed by Anders.
108
109         - fix <rdar://problem/5000216> JavaScriptGlue framework started turning all CFNumbers
110           into signed 32bit values
111
112         Circumstantial evidence seems to indicate that JavaScriptGlue was depending on a bug
113         in CFNumber where CFNumberIsFloatType was returning true for 64-bit integer values.
114
115         * JSUtils.cpp: (JSObjectKJSValue): Removed the call to CFNumberIsFloatType in the
116         conversion of numeric values, and always use kCFNumberDoubleType, since double is
117         the internal format of numbers in JavaScriptCore. There's no value to having a
118         separate code path for integers. There's also no reason to check the return value
119         from CFNumberGetValue -- if it returns false it still does the best it can to convert
120         to a double, which is what we want.
121
122         * UserObjectImp.cpp: (UserObjectImp::toString): Removed a similar code path that
123         tried to handle integers separate from double. Instead, always use a double. For
124         compatibility, use a format without a decimal point when CFNumberIsFloatType returns
125         false. Also removed a bogus cast to float; the "%f" format string takes a double,
126         not a float, so all the cast did was cut down on precision.
127
128 2007-01-25  Mark Rowe  <mrowe@apple.com>
129
130         Reviewed by Maciej.
131
132         * Info.plist: Update copyright string.
133
134 2006-12-19  Timothy Hatcher  <timothy@apple.com>
135
136         Reviewed by Darin.
137
138         <rdar://problem/4891774> Local WebCore/WebBrowser builds fail in 9A328 due to warning about ObjC-2.0 language features
139
140         * JavaScriptGlue.xcodeproj/project.pbxproj:
141
142 === Safari-521.26 ===
143
144 2006-08-15  Mark Rowe  <opendarwin.org@bdash.net.nz>
145
146         Reviewed by Tim H.
147
148         Build fix:  DWARF and -gfull are incompatible with symbol separation.
149
150         * JavaScriptGlue.xcodeproj/project.pbxproj:
151
152 2006-08-15  Mark Rowe  <opendarwin.org@bdash.net.nz>
153
154         Reviewed by Tim H.
155
156         http://bugs.webkit.org/show_bug.cgi?id=10394
157         Bug 10394: WebKit Release and Production configurations should enable dead code stripping
158
159         * JavaScriptGlue.xcodeproj/project.pbxproj:
160
161 2006-08-15  Mark Rowe  <opendarwin.org@bdash.net.nz>
162
163         Reviewed by Tim H.
164
165         http://bugs.webkit.org/show_bug.cgi?id=10384
166         Bug 10384: Switch to DWARF for Release configuration
167
168         * JavaScriptGlue.xcodeproj/project.pbxproj:
169
170 2006-08-04  Sam Weinig  <sam.weinig@gmail.com>
171
172         Reviewed by Darin.
173
174         - patch for http://bugs.webkit.org/show_bug.cgi?id=10192
175           Make WebCore (and friends) compile with -Wshorten-64-to-32
176
177           * Adds -Wshorten-64-to-32 flag to Xcode project.
178
179         * JavaScriptGlue.xcodeproj/project.pbxproj:
180
181 2006-08-03  Sam Weinig  <sam.weinig@gmail.com>
182
183         Reviewed by Darin.
184
185         - patch for http://bugs.webkit.org/show_bug.cgi?id=10176
186           Make WebCore compile with -Wundef
187
188           * Adds -Wundef flag to Xcode project
189
190         * JavaScriptGlue.xcodeproj/project.pbxproj:
191
192 2006-07-29  Sam Weinig  <sam.weinig@gmail.com>
193
194         Reviewed by Darin.
195
196         - patch for http://bugs.webkit.org/show_bug.cgi?id=10080
197           Adopt pedantic changes from the Unity project to improve 
198           cross-compiler compatibility
199
200           Changes include:
201           * Turning on gcc warning for missing newline at the end of a source file
202             (GCC_WARN_ABOUT_MISSING_NEWLINE in Xcode, -Wnewline in gcc).
203
204         * JavaScriptGlue.xcodeproj/project.pbxproj:
205
206 === Safari-521.19 ===
207
208 2006-07-19  Geoffrey Garen  <ggaren@apple.com>
209
210         Fixed by Darin & Maciej, reviewed by me.
211         
212         - Fixed <rdar://problem/4638934> Leopard 9A227: Installer crashes right 
213         after LCA and while preparing Installation
214
215         Compile release/production with NDEBUG set, to ensure binary compatibility
216         between JavaScriptGlue and JavaScriptCore. In debug builds, JavaScriptCore 
217         includes an extra debug data member in HashSet.
218         
219         * JavaScriptGlue.xcodeproj/project.pbxproj:
220
221 === Safari-521.18 ===
222
223 2006-07-15  Maciej Stachowiak  <mjs@apple.com>
224
225         Reviewed by Darin.
226
227         - switch property lists to be vector+set of Identifiers instead of list of References
228         
229         * JSUtils.cpp:
230         (KJSValueToCFTypeInternal): updated for JSC SPI changes
231         * JSValueWrapper.cpp:
232         (JSValueWrapper::JSObjectCopyPropertyNames): ditto
233         * UserObjectImp.cpp:
234         (UserObjectImp::getPropertyNames): ditto
235         * UserObjectImp.h:
236
237 === Safari-521.17 ===
238
239 2006-07-14  Geoffrey Garen  <ggaren@apple.com>
240
241         Reviewed by Maciej.
242         
243         - Updated JSInterpreter to work with Interpreter ref-counting in JavaScriptCore.
244
245         (JSInterpreter::JSInterpreter::~JSInterpreter): Now protected to catch
246         manual delete.
247
248 2006-07-12  Anders Carlsson  <acarlsson@apple.com>
249
250         Build fix
251         
252         * JSUtils.cpp:
253         (KJSValueToCFTypeInternal):
254         * JSValueWrapper.cpp:
255         (JSValueWrapper::JSObjectCopyPropertyNames):
256         * UserObjectImp.cpp:
257         (UserObjectImp::getPropertyList):
258         
259 === Safari-521.15 ===
260
261 2006-07-07  Geoffrey Garen  <ggaren@apple.com>
262
263         - build fix
264
265         * JSUtils.cpp:
266         (KJSValueToCFTypeInternal):
267         * JSValueWrapper.cpp:
268         (JSValueWrapper::JSObjectCopyPropertyNames):
269
270 2006-07-03  Geoffrey Garen  <ggaren@apple.com>
271
272         Reviewed by Maciej.
273         
274         * JSRun.cpp:
275         (JSRun::CheckSyntax): Updated to use new checkSyntax syntax in JSC.
276         * JavaScriptGlue.xcodeproj/project.pbxproj:
277
278 === Safari-521.14 ===
279
280 2006-06-28  Timothy Hatcher  <timothy@apple.com>
281
282         Prefer the Stabs debugging symbols format until DWARF bugs are fixed.
283
284         * JavaScriptGlue.xcodeproj/project.pbxproj:
285
286 2006-06-24  David Kilzer  <ddkilzer@kilzer.net>
287
288         Reviewed by Timothy.
289
290         * Info.plist: Fixed copyright to include 2003-2006.
291
292 === JavaScriptGlue-521.13 ===
293         
294 2006-06-20  Geoffrey Garen  <ggaren@apple.com>
295
296         Reviewed by Anders.
297         
298         - Required for JS API: Rename propList to getPropertyList and have it
299         take its target property list by reference so that subclasses can
300         add properties to the list before calling through to their superclasses.
301
302         * JSUtils.cpp:
303         (KJSValueToCFTypeInternal):
304         * JSValueWrapper.cpp:
305         (JSValueWrapper::JSObjectCopyPropertyNames):
306         * UserObjectImp.cpp:
307         (UserObjectImp::getPropertyList):
308         * UserObjectImp.h:
309
310 2006-06-15  Timothy Hatcher  <timothy@apple.com>
311
312         Reviewed by Geoff and Darin.
313         
314         Prefer the DWARF debugging symbols format for use in Xcode 2.3.
315
316         * JavaScriptGlue.xcodeproj/project.pbxproj:
317
318 2006-06-12  Geoffrey Garen  <ggaren@apple.com>
319
320         Reviewed by TimO, Maciej.
321         
322         - JSGlue part of merging InterpreterImp into Interpreter.
323         
324         Since there's now a kjs forwarding header, I moved all forwarding
325         headers into a "ForwardingHeaders" directory, like in WebCore.
326
327         * ForwardingHeaders: Added.
328         * ForwardingHeaders/kjs: Added.
329         * ForwardingHeaders/kjs/ExecState.h: Added.
330         * ForwardingHeaders/wtf: Added.
331         * JavaScriptGlue.xcodeproj/project.pbxproj:
332         * config.h:
333         * wtf: Removed.
334         * wtf/AlwaysInline.h: Removed.
335         * wtf/Assertions.h: Removed.
336         * wtf/FastMalloc.h: Removed.
337         * wtf/Forward.h: Removed.
338         * wtf/HashCountedSet.h: Removed.
339         * wtf/HashSet.h: Removed.
340         * wtf/Noncopyable.h: Removed.
341         * wtf/OwnArrayPtr.h: Removed.
342         * wtf/OwnPtr.h: Removed.
343         * wtf/PassRefPtr.h: Removed.
344         * wtf/Platform.h: Removed.
345         * wtf/RefPtr.h: Removed.
346         * wtf/Vector.h: Removed.
347
348 === JavaScriptGlue-521.10 ===
349
350 2006-05-09  Maciej Stachowiak  <mjs@apple.com>
351
352         Rubber stamped by Anders.
353         
354         - renamed kxmlcore to wtf
355         
356         kxmlcore --> wtf
357         KXMLCore --> WTF
358         KXC --> WTF
359
360         * config.h:
361         * kxmlcore: Removed.
362         * kxmlcore/AlwaysInline.h: Removed.
363         * kxmlcore/Assertions.h: Removed.
364         * kxmlcore/FastMalloc.h: Removed.
365         * kxmlcore/Forward.h: Removed.
366         * kxmlcore/HashCountedSet.h: Removed.
367         * kxmlcore/HashSet.h: Removed.
368         * kxmlcore/Noncopyable.h: Removed.
369         * kxmlcore/OwnArrayPtr.h: Removed.
370         * kxmlcore/OwnPtr.h: Removed.
371         * kxmlcore/PassRefPtr.h: Removed.
372         * kxmlcore/Platform.h: Removed.
373         * kxmlcore/RefPtr.h: Removed.
374         * kxmlcore/Vector.h: Removed.
375         * wtf: Added.
376
377 2006-04-11  Darin Adler  <darin@apple.com>
378
379         - try to fix Windows build
380
381         * kxmlcore/HashForward.h: Removed.
382
383 2006-04-10  Darin Adler  <darin@apple.com>
384
385         Rubber-stamped by John Sullivan.
386
387         - added forwarding headers for the new Forward.h and HashForward.h files
388
389         * kxmlcore/Forward.h: Added.
390         * kxmlcore/HashForward.h: Added.
391
392 2006-04-04  Timothy Hatcher  <timothy@apple.com>
393
394         Reviewed by Darin.
395
396         The Debug and Release frameworks are now built with install paths relative to the build products directory.
397         This removes the need for other projects to build with -framework WebCore and -framework JavaScriptCore. 
398
399         * JavaScriptGlue.xcodeproj/project.pbxproj:
400
401 2006-04-02  Eric Seidel  <eseidel@apple.com>
402
403         Reviewed by andersca.
404
405         Add missing forwarding header.
406
407         * kxmlcore/Vector.h: Added.
408
409 2006-03-31  Geoffrey Garen  <ggaren@apple.com>
410
411         Reviewed by Darin.
412
413         - Fixed <rdar://problem/4430836> JavaScript patch crashing Quartz
414         Composer
415
416         JSValueWrappers used to hold on to the ExecState that pertained at
417         the time of their creation. Since ExecStates are transient, that
418         design was totally bogus, and it would crash once the ExecState had
419         been deallocated.
420
421         Unfortunately, there's no clean solution to this problem, since
422         the JSGlue API has no notion of state. The solution here is to use
423         a shared, global ExecState for the purpose of JSGlue calls. Given
424         the pre-existing limitations in the JSGlue API, this design
425         shouldn't actually introduce any new limitations (see comments in
426         JSValueWrapper.cpp).
427
428         I tested with Quartz Composer and PAC files, neither of which are
429         layout-testable.
430         
431         * JSUtils.cpp:
432         (KJSValueToJSObject):
433         * JSValueWrapper.cpp:
434         (JSValueWrapper::JSValueWrapper):
435         (JSValueWrapper::GetValue):
436         (getProcessGlobalExecState):
437         (JSValueWrapper::JSObjectCopyPropertyNames):
438         (JSValueWrapper::JSObjectCopyProperty):
439         (JSValueWrapper::JSObjectSetProperty):
440         (JSValueWrapper::JSObjectCallFunction):
441         (JSValueWrapper::JSObjectCopyCFValue):
442         * JSValueWrapper.h:
443
444         Also added a test harness file. It was helpful while I was testing,
445         and may come in handy in the future:
446         
447         * JavaScriptGlue.xcodeproj/project.pbxproj:
448         testjsglue.cpp: Added.
449
450 2006-03-28  Darin Adler  <darin@apple.com>
451
452         Reviewed by Geoff.
453
454         - added a build step that checks for init routines
455
456         * JavaScriptGlue.xcodeproj/project.pbxproj: Added a custom build phase that invokes the
457         check-for-global-initializers script.
458
459 2006-03-02  Maciej Stachowiak  <mjs@apple.com>
460
461         Not reviewed, but I noticed these trivial extra changes were needed to avoid
462         breaking the build with my reviewed patch for:
463         
464         http://bugs.webkit.org/show_bug.cgi?id=7387
465         
466         Add config.h, includes of it, and Platform.h forwarding header.
467
468         * JSBase.cpp:
469         * JSObject.cpp:
470         * JSRun.cpp:
471         * JSUtils.cpp:
472         * JSValueWrapper.cpp:
473         * JavaScriptGlue.cpp:
474         * UserObjectImp.cpp:
475         * config.h: Added.
476         * kxmlcore/Platform.h: Added.
477
478 === JavaScriptGlue-521.7 ===
479
480 2006-02-10  Geoffrey Garen  <ggaren@apple.com>
481
482         Reviewed by eric.
483
484         - Fixed build.
485
486         * UserObjectImp.cpp:
487         (UserObjectImp::toPrimitive):
488         * UserObjectImp.h:
489
490 2006-02-03  Timothy Hatcher  <timothy@apple.com>
491
492         Reviewed by Justin.
493
494         Renamed configuration names to Debug, Release and Production.
495
496         * JavaScriptGlue.xcodeproj/project.pbxproj:
497
498 2006-02-01  Darin Adler  <darin@apple.com>
499
500         - added some forwarding headers to make new JavaScriptCore changes work
501
502         * kxmlcore/Assertions.h: Added.
503         * kxmlcore/Noncopyable.h: Added.
504         * kxmlcore/OwnPtr.h: Added.
505         * kxmlcore/OwnArrayPtr.h: Added.
506
507 2006-01-16  Timothy Hatcher  <timothy@apple.com>
508
509         Adding the license header to all files so we can
510         move JavaScriptGlue into the open source repository.
511
512         * LICENSE: Added.
513         * JSBase.cpp: license header added.
514         * JSBase.h: ditto.
515         * JSObject.cpp: ditto.
516         * JSObject.h: ditto.
517         * JSRun.cpp: ditto.
518         * JSRun.h: ditto.
519         * JSUtils.cpp: ditto.
520         * JSUtils.h: ditto.
521         * JSValueWrapper.cpp: ditto.
522         * JSValueWrapper.h: ditto.
523         * JavaScriptGlue.cpp: ditto.
524         * JavaScriptGlue.h: ditto.
525         * UserObjectImp.cpp: ditto.
526         * UserObjectImp.h: ditto.
527
528 2005-12-21  Timothy Hatcher  <timothy@apple.com>
529
530         * JavaScriptGlue.xcodeproj/project.pbxproj:
531           Set tab width to 8, indent width to 4 and uses tabs to false per file.
532
533 2005-12-19  Darin Adler  <darin@apple.com>
534
535         Reviewed by Geoff Garen and Eric Seidel.
536
537         - fix http://bugs.webkit.org/show_bug.cgi?id=4923
538           stop using <ostream> in WebCore, eliminating the <cmath> troubles it causes
539
540         * kxmlcore/AlwaysInline.h: Added.
541
542 2005-12-15  Darin Adler  <darin@apple.com>
543
544         Reviewed by Maciej.
545
546         * JSRun.cpp: (JSRun::Evaluate): Updated for change to Interpreter::evaluate.
547
548 2005-12-15  Darin Adler  <darin@apple.com>
549
550         Reviewed by Tim Hatcher.
551
552         * JavaScriptGlue.xcodeproj/project.pbxproj: Removed some redundant build
553         settings, turned off prebinding explicitly for our Development and
554         Deployment builds, remove .exp file from sources. All "clean-up".
555
556 === Safari-521~5 ===
557
558 2005-12-13  Geoffrey Garen  <ggaren@apple.com>
559
560     - Fixed build after Anders's last checkin to JavaScriptCore.
561     
562         Reviewed by darin.
563
564         * UserObjectImp.cpp:
565         (UserObjectImp::userObjectGetter): Updated to reflect new argument that 
566     getters take (unused here).
567         * UserObjectImp.h:
568
569 2005-12-13  Maciej Stachowiak  <mjs@apple.com>
570
571         Reviewed by Eric.
572
573     - added forwarding header for HashCountedSet
574
575         * kxmlcore/HashCountedSet.h: Added.
576
577 2005-12-10  Darin Adler  <darin@apple.com>
578
579         Rubber stamped by Maciej.
580
581         - updated for KJS class renaming
582
583         * many files and functions
584
585 2005-12-10  Darin Adler  <darin@apple.com>
586
587         Reviewed by Maciej.
588
589         - eliminated the old Undefined(), Null(), Boolean(), Number(), and String()
590
591         Code now uses jsUndefined(), jsNull(), jsBoolean(), jsNumber(), and jsString().
592
593         * JSUtils.cpp:
594         (JSObjectKJSValue):
595         * UserObjectImp.cpp:
596         (UserObjectImp::callAsFunction):
597         (UserObjectImp::toPrimitive):
598
599 2005-12-05  Maciej Stachowiak  <mjs@apple.com>
600
601         - added new forwarding headers
602
603         * kxmlcore/PassRefPtr.h: Added.
604         * kxmlcore/RefPtr.h: Added.
605
606 2005-12-05  Maciej Stachowiak  <mjs@apple.com>
607
608         * kxmlcore/PassRefPtr.h: Added.
609
610 2005-11-26  Maciej Stachowiak  <mjs@apple.com>
611
612         Rubber stamped by Eric.
613
614     - renamed InterpreterLock to JSLock
615
616         * JSUtils.cpp:
617         (CFStringToUString):
618         (JSObjectKJSValue):
619         (KJSValueToCFTypeInternal):
620         * JSValueWrapper.cpp:
621         (JSValueWrapper::JSObjectCopyPropertyNames):
622         (JSValueWrapper::JSObjectCopyProperty):
623         (JSValueWrapper::JSObjectSetProperty):
624         (JSValueWrapper::JSObjectCallFunction):
625         (JSValueWrapper::JSObjectCopyCFValue):
626         * JavaScriptGlue.cpp:
627         (JSRunCreate):
628         (JSCollect):
629         (JSLockInterpreter):
630         (JSUnlockInterpreter):
631         * UserObjectImp.cpp:
632         (UserObjectImp::callAsFunction):
633
634 2005-11-16  Maciej Stachowiak  <mjs@apple.com>
635
636         Reviewed by Geoff.
637
638     Updated to use new API to drop all locks.
639
640         * JavaScriptGlue.cpp:
641         (JSLockInterpreter):
642         (JSUnlockInterpreter):
643         * UserObjectImp.cpp:
644         (UserObjectImp::callAsFunction):
645
646 2005-11-14  Geoffrey Garen  <ggaren@apple.com>
647
648         Reviewed by mjs.
649
650         - Part of the fix for <rdar://problem/4342216> Installer crash in 
651           KJS::ValueImp::marked() when garbage collector runs inside call to 
652           ConstantValues::init()
653           
654         Added locking in JSRunCreate, since JSRun::JSRun constructs an object.
655         
656         * JavaScriptGlue.cpp:
657         (JSRunCreate):
658
659 2005-11-10  Geoffrey Garen  <ggaren@apple.com>
660
661         Reviewed by Maciej.
662
663         - Fixed <rdar://problem/4334445> installer crashed on my 
664           dual g4 450Mhz after clicking language
665
666         - Reversed backwards NULL check.
667         - Inserted guards against NULL fJSUserObject data member.
668         - Cleaned up some style.
669
670         * JSUtils.cpp:
671         (KJSValueToCFTypeInternal):
672         * UserObjectImp.cpp:
673         (UserObjectImp::~UserObjectImp):
674         (UserObjectImp::callAsFunction):
675         (UserObjectImp::userObjectGetter):
676         (UserObjectImp::getOwnPropertySlot):
677         (UserObjectImp::put):
678         (UserObjectImp::mark):
679
680 2005-11-04  Timothy Hatcher  <timothy@apple.com>
681
682         Reviewed by Darin.
683
684         * JavaScriptGlue.xcodeproj/project.pbxproj:
685           Fixed the FRAMEWORK_SEARCH_PATHS to look in the WebKit
686           Frameworks for the Default config.
687
688 2005-11-03  Timothy Hatcher  <timothy@apple.com>
689
690         Reviewed by Darin and Vicki.
691
692         * JavaScriptGlue.xcodeproj/project.pbxproj:
693           Change to use $(SYSTEM_LIBRARY_DIR) consistently and place
694           $(NEXT_ROOT) in a few spots to make build-root work.
695
696 2005-11-01  Maciej Stachowiak  <mjs@apple.com>
697
698     Reviewed by: Eric.
699     
700         <rdar://problem/4324107> get JavaScriptGlue working with TOT JavaScriptCore again
701
702     - reverted all this stuff to use ReferenceList instead of IdentifierSequencedSet
703
704         * JSUtils.cpp:
705         (KJSValueToCFTypeInternal):
706         * JSValueWrapper.cpp:
707         (JSValueWrapper::JSObjectCopyPropertyNames):
708         * UserObjectImp.cpp:
709         (UserObjectImp::propList):
710         * UserObjectImp.h:
711
712 2005-10-11  Timothy Hatcher  <timothy@apple.com>
713
714         Setup the proper Framework search path for the Default config.
715         Prepping for a TOT submission and build by B&I.
716
717         * JavaScriptGlue.xcodeproj/project.pbxproj:
718
719 2005-10-10  Darin Adler  <darin@apple.com>
720
721         Reviewed by Eric.
722
723         - converted tabs to spaces, NULL to 0, added some (void), got rid of __ prefixes
724           in headers (reserved for compiler/library)
725
726         * Info.plist:
727         * JSBase.cpp:
728         * JSBase.h:
729         * JSObject.cpp:
730         * JSObject.h:
731         * JSRun.cpp:
732         * JSRun.h:
733         * JSUtils.cpp:
734         * JSUtils.h:
735         * JSValueWrapper.cpp:
736         * JSValueWrapper.h:
737         * JavaScriptGlue.cpp:
738         * JavaScriptGlue.h:
739         * UserObjectImp.cpp:
740         * UserObjectImp.h:
741
742 2005-10-10  Darin Adler  <darin@apple.com>
743
744         * .cvsignore: Added. Ignore Makefile.in and Makefile.
745
746 2005-10-07  Timothy Hatcher  <timothy@apple.com>
747
748         Reviewed by Maciej.
749         
750         Build fix, needed to disable RTTI. Upgraded to a native target.
751
752         * JavaScriptGlue.xcodeproj/project.pbxproj:
753         * Info.plist
754
755 2005-10-05  Maciej Stachowiak  <mjs@apple.com>
756
757         Reviewed by Eric and Darin.
758
759     <rdar://problem/4260506> Port JavaScriptGlue to TOT JavaScriptCore
760
761         * JSRun.cpp:
762         (JSRun::JSRun):
763         (JSRun::GlobalObject):
764         * JSRun.h:
765         (JSInterpreter::JSInterpreter):
766         * JSUtils.cpp:
767         (KJSValueToJSObject):
768         (JSObjectKJSValue):
769         (KJSValueToCFTypeInternal):
770         (KJSValueToCFType):
771         * JSUtils.h:
772         * JSValueWrapper.cpp:
773         (JSValueWrapper::JSValueWrapper):
774         (JSValueWrapper::GetValue):
775         (JSValueWrapper::JSObjectCopyPropertyNames):
776         (JSValueWrapper::JSObjectCopyProperty):
777         (JSValueWrapper::JSObjectSetProperty):
778         (JSValueWrapper::JSObjectCallFunction):
779         (JSValueWrapper::JSObjectMark):
780         * JSValueWrapper.h:
781         * JavaScriptGlue.cpp:
782         (JSRunCopyGlobalObject):
783         * JavaScriptGlue.xcodeproj/project.pbxproj:
784         * Makefile.am: Added.
785         * UserObjectImp.cpp:
786         (UserObjectPrototypeImp::GlobalUserObjectPrototypeImp):
787         (UserObjectImp::UserObjectImp):
788         (UserObjectImp::callAsFunction):
789         (UserObjectImp::getPropertyNames):
790         (UserObjectImp::userObjectGetter):
791         (UserObjectImp::getOwnPropertySlot):
792         (UserObjectImp::put):
793         (UserObjectImp::toPrimitive):
794         (UserObjectImp::mark):
795         * UserObjectImp.h:
796         * kxmlcore/FastMalloc.h: Added.
797         * kxmlcore/HashSet.h: Added.
798
799 2005-09-14  Maciej Stachowiak  <mjs@apple.com>
800
801         Reviewed by Geoff.
802
803     - fixed <rdar://problem/4214783> REGRESSION: kjs_fast_malloc crash due to lack of locking on multiple threads (seen selecting volumes in the installer)
804
805     Make sure to lock using the InterpreterLock class in all places that need it
806     (including anything that uses the collector, the parser, the protect count hash table,
807     and anything that allocates via fast_malloc).
808
809         * JSUtils.cpp:
810         (CFStringToUString):
811         (JSObjectKJSValue):
812         (KJSValueToCFTypeInternal):
813         * JSUtils.h:
814         * JSValueWrapper.cpp:
815         (JSValueWrapper::JSObjectCopyPropertyNames):
816         (JSValueWrapper::JSObjectCopyProperty):
817         (JSValueWrapper::JSObjectSetProperty):
818         (JSValueWrapper::JSObjectCallFunction):
819         (JSValueWrapper::JSObjectCopyCFValue):
820         * JavaScriptGlue.cpp:
821         (JSCollect):
822
823 2005-09-27  Adele Peterson  <adele@apple.com>
824
825         Reviewed by Maciej.
826
827         <rdar://problem/4223297> JavaScriptGlue: Submit 64-bit compatible versions of your API and SPIs by September 15
828
829         * JavaScriptGlue.h: Changed UInt32 to CFTypeID for JSTypeID
830
831 2005-09-06  Geoffrey Garen  <ggaren@apple.com>
832
833         -upgraded project files to XCode 2.1
834
835         * JavaScriptGlue.pbproj/project.pbxproj: Removed.
836         * JavaScriptGlue.xcodeproj/.cvsignore: Added.
837         * JavaScriptGlue.xcodeproj/project.pbxproj: Added.
838
839 2005-09-01  Maciej Stachowiak  <mjs@apple.com>
840
841         Rubber stamped by hyatt.
842
843     - initial import of JavaScriptGlue into our repository
844
845         * English.lproj/InfoPlist.strings: Added.
846         * JSBase.cpp: Added.
847         (JSBase::JSBase):
848         (JSBase::~JSBase):
849         (JSBase::Retain):
850         (JSBase::Release):
851         (JSBase::RetainCount):
852         (JSBase::GetTypeID):
853         (JSBase::CopyDescription):
854         (JSBase::Equal):
855         * JSBase.h: Added.
856         * JSObject.cpp: Added.
857         (JSUserObject::JSUserObject):
858         (JSUserObject::~JSUserObject):
859         (JSUserObject::CopyPropertyNames):
860         (JSUserObject::CopyProperty):
861         (JSUserObject::SetProperty):
862         (JSUserObject::ImplementsCall):
863         (JSUserObject::CallFunction):
864         (JSUserObject::CopyCFValue):
865         (JSUserObject::Equal):
866         (JSUserObject::Mark):
867         (JSUserObject::GetData):
868         * JSObject.h: Added.
869         (JSUserObject::DataType):
870         * JSRun.cpp: Added.
871         (JSRun::JSRun):
872         (JSRun::~JSRun):
873         (JSRun::Flags):
874         (JSRun::GetSource):
875         (JSRun::GlobalObject):
876         (JSRun::GetInterpreter):
877         (JSRun::Evaluate):
878         (JSRun::CheckSyntax):
879         * JSRun.h: Added.
880         (JSInterpreter::JSInterpreter):
881         (JSInterpreter::JSInterpreter::~JSInterpreter):
882         (JSInterpreter::Flags):
883         * JSUtils.cpp: Added.
884         (CFStringToUString):
885         (UStringToCFString):
886         (CFStringToIdentifier):
887         (IdentifierToCFString):
888         (KJSValueToJSObject):
889         (JSObjectKJSValue):
890         (KJSValueToCFTypeInternal):
891         (KJSValueToCFType):
892         (GetCFNull):
893         * JSUtils.h: Added.
894         (RetainCFType):
895         (ReleaseCFType):
896         * JSValueWrapper.cpp: Added.
897         (JSValueWrapper::JSValueWrapper):
898         (JSValueWrapper::~JSValueWrapper):
899         (JSValueWrapper::GetValue):
900         (JSValueWrapper::GetExecState):
901         (JSValueWrapper::GetJSObectCallBacks):
902         (JSValueWrapper::JSObjectDispose):
903         (JSValueWrapper::JSObjectCopyPropertyNames):
904         (JSValueWrapper::JSObjectCopyProperty):
905         (JSValueWrapper::JSObjectSetProperty):
906         (JSValueWrapper::JSObjectCallFunction):
907         (JSValueWrapper::JSObjectCopyCFValue):
908         (JSValueWrapper::JSObjectMark):
909         * JSValueWrapper.h: Added.
910         * JavaScriptGlue.cpp: Added.
911         (JSSetCFNull):
912         (JSGetCFNull):
913         (JSRetain):
914         (JSRelease):
915         (JSCopyDescription):
916         (JSEqual):
917         (JSGetTypeID):
918         (JSGetRetainCount):
919         (JSObjectCreate):
920         (JSObjectCreateInternal):
921         (JSObjectCopyCFValue):
922         (JSObjectGetData):
923         (JSObjectCopyProperty):
924         (JSObjectSetProperty):
925         (JSObjectCallFunction):
926         (JSRunCreate):
927         (JSRunCopySource):
928         (JSRunCopyGlobalObject):
929         (JSRunEvaluate):
930         (JSRunCheckSyntax):
931         (JSCollect):
932         (JSTypeGetCFArrayCallBacks):
933         (JSCFRetain):
934         (JSCFRelease):
935         (JSObjectCreateWithCFType):
936         (CFJSObjectDispose):
937         (JSObjectCopyPropertyNames):
938         (CFJSObjectCopyProperty):
939         (CFJSObjectSetProperty):
940         (CFJSObjectCopyCFValue):
941         (CFJSObjectEqual):
942         (CFJSObjectCopyPropertyNames):
943         (JSCreateCFArrayFromJSArray):
944         (JSCreateJSArrayFromCFArray):
945         (JSLockInterpreter):
946         (JSUnlockInterpreter):
947         * JavaScriptGlue.exp: Added.
948         * JavaScriptGlue.h: Added.
949         * JavaScriptGlue.pbproj/project.pbxproj: Added.
950         * UserObjectImp.cpp: Added.
951         (UserObjectPrototypeImp::UserObjectPrototypeImp):
952         (UserObjectPrototypeImp::GlobalUserObjectPrototypeImp):
953         (UserObjectImp::UserObjectImp):
954         (UserObjectImp::~UserObjectImp):
955         (UserObjectImp::classInfo):
956         (UserObjectImp::implementsCall):
957         (UserObjectImp::call):
958         (UserObjectImp::propList):
959         (UserObjectImp::hasProperty):
960         (UserObjectImp::get):
961         (UserObjectImp::put):
962         (UserObjectImp::GetJSUserObject):
963         (UserObjectImp::toPrimitive):
964         (UserObjectImp::toBoolean):
965         (UserObjectImp::toNumber):
966         (UserObjectImp::toString):
967         (UserObjectImp::mark):
968         * UserObjectImp.h: Added.
969