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