ChangeLog   [plain text]


2009-07-08  Darin Adler  <darin@apple.com>

        Reviewed by Dan Bernstein

        - fix <rdar://problem/6971484> REGRESSION (r30534): "Scrolling Credits"
          effect does not scroll on iMovie 7.1.4 on Tiger

        In <http://trac.webkit.org/changeset/30534>, the prototype of
        JSObject::put() which UserObjectImp had been overriding changed, but
        UserObjectImp wasn't updated, so its override was no longer getting
        called after that.

        * UserObjectImp.cpp:
        (UserObjectImp::put): Match the current prototype of JSObject::put().
        The PutPropertySlot argument is unused.
        * UserObjectImp.h: Ditto.

2009-06-19  Zoltan Horvath  <hzoltan@inf.u-szeged.hu>

        Reviewed by Darin Adler.

        Add FastAllocBase.h to JavaScriptGlue's ForwardingHeaders/wtf, because it's needed by HashCountedSet.h on MAC.

        * ForwardingHeaders/wtf/FastAllocBase.h: Added.

2009-06-02  Mark Rowe  <mrowe@apple.com>

        Reviewed by Anders Carlsson.

        Remove workaround that was added to address <rdar://problem/5488678> as it no longer affects our Tiger builds.

        * Configurations/Base.xcconfig:

2009-05-25  David Levin  <levin@chromium.org>

        Reviewed by Maciej Stachowiak and Oliver Hunt.

        https://bugs.webkit.org/show_bug.cgi?id=25126

        Added forwarding headers.

        * ForwardingHeaders/wtf/CrossThreadRefCounted.h: Added.
        * ForwardingHeaders/wtf/OwnFastMallocPtr.h: Added.

2009-05-23  David Kilzer  <ddkilzer@apple.com>

        Part 1 of 2: Bug 25495: Implement PassOwnPtr and replace uses of std::auto_ptr

        <https://bugs.webkit.org/show_bug.cgi?id=25495>

        Reviewed by Oliver Hunt.

        * ForwardingHeaders/wtf/OwnPtrCommon.h: Added.
        * ForwardingHeaders/wtf/PassOwnPtr.h: Added.

2009-05-14  Mark Rowe  <mrowe@apple.com>

        Rubber-stamped by Darin Adler.

        <rdar://problem/6681868> When building with Xcode 3.1.3 should be using gcc 4.2

        The meaning of XCODE_VERSION_ACTUAL is more sensible in newer versions of Xcode.
        Update our logic to select the compiler version to use the more appropriate XCODE_VERSION_MINOR
        if the version of Xcode supports it, and fall back to XCODE_VERSION_ACTUAL if not.

        * Configurations/Base.xcconfig:

2009-05-07  Oliver Hunt  <oliver@apple.com>

        Reviewed by Gavin Barraclough.

        Add calling convention annotation

        * JSObject.cpp:

2009-05-01  Geoffrey Garen  <ggaren@apple.com>

        Rubber Stamped by Sam Weinig.
        
        Renamed JSValuePtr => JSValue.

        * JSObject.cpp:
        (nativeCallFunction):
        * JSUtils.cpp:
        (KJSValueToJSObject):
        (JSObjectKJSValue):
        (KJSValueToCFTypeInternal):
        (KJSValueToCFType):
        * JSUtils.h:
        * JSValueWrapper.cpp:
        (JSValueWrapper::JSValueWrapper):
        (JSValueWrapper::GetValue):
        (JSValueWrapper::JSObjectCopyProperty):
        (JSValueWrapper::JSObjectSetProperty):
        (JSValueWrapper::JSObjectCallFunction):
        * JSValueWrapper.h:
        * UserObjectImp.cpp:
        (UserObjectImp::callAsFunction):
        (UserObjectImp::userObjectGetter):
        (UserObjectImp::getOwnPropertySlot):
        (UserObjectImp::put):
        (UserObjectImp::toPrimitive):
        * UserObjectImp.h:
        (UserObjectImp::createStructure):

2009-04-29  Oliver Hunt  <oliver@apple.com>

        Reviewed by Gavin Barraclough.

        Clean up ArgList to be a trivial type

        Start using MarkedArgumentBuffer to create argument lists for function calls

        * JSValueWrapper.cpp:
        (JSValueWrapper::JSObjectCallFunction):

2009-04-28  Geoffrey Garen  <ggaren@apple.com>

        Rubber stamped by Beth Dakin.
        
        Missed one.

        * UserObjectImp.cpp:
        (UserObjectImp::callAsFunction):

2009-04-21  Geoffrey Garen  <ggaren@apple.com>

        Reviewed by Mark Rowe.

        Tiger crash fix: Put VM tags in their own header file, and fixed up the
        #ifdefs so they're not used on Tiger.

        * ForwardingHeaders/wtf/VMTags.h: Copied from JavaScriptGlue/ForwardingHeaders/wtf/HashTraits.h.

2009-04-20  Sam Weinig  <sam@webkit.org>

        Rubber-stamped by Tim Hatcher.

        Add licenses for xcconfig files.

        * Configurations/Base.xcconfig:
        * Configurations/DebugRelease.xcconfig:
        * Configurations/JavaScriptGlue.xcconfig:
        * Configurations/Version.xcconfig:

2009-03-13  Mark Rowe  <mrowe@apple.com>

        Rubber-stamped by Dan Bernstein.

        Take advantage of the ability of recent versions of Xcode to easily switch the active
        architecture.

        * Configurations/DebugRelease.xcconfig:

2009-02-24  Mark Rowe  <mrowe@apple.com>

        Rubber-stamped by Dan Bernstein.

        <rdar://problem/6407844> JavaScriptGlue should use -Os rather than -O2

        * Configurations/Base.xcconfig:

2009-01-28  Sam Weinig  <sam@webkit.org>

        Reviewed by Gavin Barraclough.

        Fix for <rdar://problem/6525537>
        Hang occurs when closing Installer window (iTunes, Aperture)

        * JSUtils.cpp:
        (getThreadGlobalObject): Use the shared JSGlobalData instance.

2009-01-22  Mark Rowe  <mrowe@apple.com>

        Rubber-stamped by Anders Carlsson.

        Disable GCC_WARN_ABOUT_MISSING_PROTOTYPES temporarily.

        Current versions of Xcode only respect it for C and Objective-C files,
        and our code doesn't currently compile if it is applied to C++ and
        Objective-C++ files.

        * Configurations/Base.xcconfig:

2009-01-19  Sam Weinig  <sam@webkit.org>

        Rubber-stamped by Gavin Barraclough.

        Remove temporary operator-> from JSValuePtr.

        * JSUtils.cpp:
        (KJSValueToJSObject):
        (KJSValueToCFTypeInternal):
        * JSValueWrapper.cpp:
        (JSValueWrapper::JSObjectCopyPropertyNames):
        (JSValueWrapper::JSObjectCopyProperty):
        (JSValueWrapper::JSObjectSetProperty):
        (JSValueWrapper::JSObjectCallFunction):
        (JSValueWrapper::JSObjectMark):
        * UserObjectImp.cpp:
        (UserObjectImp::getOwnPropertySlot):

2009-01-14  Dan Bernstein  <mitz@apple.com>

        Reviewed by John Sullivan.

        - update copyright

        * Info.plist:

2009-01-09  David Levin  <levin@chromium.org>

        Reviewed by Oliver Hunt.

        https://bugs.webkit.org/show_bug.cgi?id=23175

        Added forwarding header.

        * ForwardingHeaders/wtf/PtrAndFlags.h: Added.

2009-01-05  Gavin Barraclough  <baraclough@apple.com>

        Rubber Stamped by Oliver Hunt.

        Replace all uses of JSValue* with new wrapper class, JSValuePtr.
        See JavaScriptCore/ChangeLog for more detailed description.

        * JSObject.cpp:
        (nativeCallFunction):
        * JSUtils.cpp:
        (KJSValueToJSObject):
        (JSObjectKJSValue):
        (KJSValueToCFTypeInternal):
        (KJSValueToCFType):
        * JSUtils.h:
        * JSValueWrapper.cpp:
        (JSValueWrapper::JSValueWrapper):
        (JSValueWrapper::GetValue):
        (JSValueWrapper::JSObjectCopyProperty):
        (JSValueWrapper::JSObjectSetProperty):
        (JSValueWrapper::JSObjectCallFunction):
        * JSValueWrapper.h:
        * UserObjectImp.cpp:
        (UserObjectImp::callAsFunction):
        (UserObjectImp::userObjectGetter):
        (UserObjectImp::getOwnPropertySlot):
        (UserObjectImp::put):
        (UserObjectImp::toPrimitive):
        * UserObjectImp.h:
        (UserObjectImp::createStructure):

2008-12-15  Mark Rowe  <mrowe@apple.com>

        Rubber-stamped by Cameron Zwarich.

        <rdar://problem/6289933> Change WebKit-related projects to build with GCC 4.2 on Leopard.

        * Configurations/Base.xcconfig:
        * Configurations/DebugRelease.xcconfig:

2008-12-08  David Kilzer  <ddkilzer@apple.com>

        Bug 22555: Sort "children" sections in Xcode project files

        <https://bugs.webkit.org/show_bug.cgi?id=22555>

        Reviewed by Eric Seidel.

        * JavaScriptGlue.xcodeproj/project.pbxproj: Sorted.

2008-11-17  Geoffrey Garen  <ggaren@apple.com>

        Reviewed by Sam Weinig.
        
        Updated for JavaScriptCore rename.

        * ForwardingHeaders/runtime/CallFrame.h: Copied from JavaScriptGlue/ForwardingHeaders/runtime/ExecState.h.
        * ForwardingHeaders/runtime/ExecState.h: Removed.
        * config.h:

2008-11-17  Geoffrey Garen  <ggaren@apple.com>

        Reviewed by Sam Weinig.
        
        Updated for JavaScriptCore rename.

        * ForwardingHeaders/interpreter: Added.
        * ForwardingHeaders/interpreter/CallFrame.h: Copied from ForwardingHeaders/runtime/ExecState.h.
        * ForwardingHeaders/runtime/ExecState.h: Removed.

2008-11-15  Darin Adler  <darin@apple.com>

        Rubber stamped by Geoff Garen.

        - do the long-planned StructureID -> Structure rename

        * JSRun.cpp:
        (JSGlueGlobalObject::JSGlueGlobalObject):
        (JSRun::JSRun):
        * JSRun.h:
        (JSGlueGlobalObject::userObjectStructure):
        * JSUtils.cpp:
        (getThreadGlobalObject):
        * UserObjectImp.cpp:
        (UserObjectImp::UserObjectImp):
        * UserObjectImp.h:
        (UserObjectImp::createStructure):

2008-11-15  Geoffrey Garen  <ggaren@apple.com>

        Reviewed by Sam Weinig.
        
        Updated for JavaScriptCore renames.

        * JSRun.cpp:
        (JSRun::Evaluate):
        (JSRun::CheckSyntax):

2008-11-05  Cameron Zwarich  <zwarich@apple.com>

        Not reviewed.

        Fix the JavaScriptGlue build. This wouldn't show up unless one was
        doing a clean build, because changes in JavaScriptCore don't cause
        anything in JavaScriptGlue to get rebuilt.

        * JSRun.cpp:
        * JSUtils.h:
        * JavaScriptGlue.cpp:

2008-11-04  Cameron Zwarich  <zwarich@apple.com>

        Reviewed by Mark Rowe.

        Remove JavaScriptGlue forwarding headers that are no longer necessary,
        and correct the path of the ExecState.h forwarding header.

        * ForwardingHeaders/kjs: Removed.
        * ForwardingHeaders/kjs/CTI.h: Removed.
        * ForwardingHeaders/kjs/ExecState.h: Removed.
        * ForwardingHeaders/kjs/JSValue.h: Removed.
        * ForwardingHeaders/kjs/PutPropertySlot.h: Removed.
        * ForwardingHeaders/kjs/ustring.h: Removed.
        * ForwardingHeaders/runtime: Added.
        * ForwardingHeaders/runtime/ExecState.h: Copied from ForwardingHeaders/kjs/ExecState.h.
        * config.h:

2008-10-31  Stephanie Lewis  <slewis@apple.com>

        Fix build by including right files.

        * JSRun.cpp:

2008-10-30  Mark Rowe  <mrowe@apple.com>

        Reviewed by Jon Homeycutt.

        Explicitly default to building for only the native architecture in debug and release builds.

        * Configurations/DebugRelease.xcconfig:

2008-10-24  Darin Adler  <darin@apple.com>

        - finish rolling out https://bugs.webkit.org/show_bug.cgi?id=21732

        * JSObject.cpp:
        (nativeCallFunction):
        * JSUtils.cpp:
        (KJSValueToJSObject):
        (JSObjectKJSValue):
        (KJSValueToCFTypeInternal):
        (KJSValueToCFType):
        * JSUtils.h:
        * JSValueWrapper.cpp:
        (JSValueWrapper::JSValueWrapper):
        (JSValueWrapper::GetValue):
        (JSValueWrapper::JSObjectCopyProperty):
        (JSValueWrapper::JSObjectSetProperty):
        (JSValueWrapper::JSObjectCallFunction):
        * JSValueWrapper.h:
        * UserObjectImp.cpp:
        (UserObjectImp::callAsFunction):
        (UserObjectImp::userObjectGetter):
        (UserObjectImp::getOwnPropertySlot):
        (UserObjectImp::put):
        (UserObjectImp::toPrimitive):
        * UserObjectImp.h:
        (UserObjectImp::createStructureID):
        Use JSValue* instead of JSValuePtr.

2008-10-23  Darin Adler  <darin@apple.com>

        - roll out https://bugs.webkit.org/show_bug.cgi?id=21732

        * JSValueWrapper.cpp:
        (JSValueWrapper::GetValue): Added missing call to .get().
        * JSValueWrapper.h: ProtectedPtr<JSValue> instead of ProtectedPtr<JSValuePtr>.

2008-10-22  Darin Adler  <darin@apple.com>

        Reviewed by Sam Weinig.

        - fix https://bugs.webkit.org/show_bug.cgi?id=21294
          Bug 21294: Devirtualize getOwnPropertySlot()

        * JSRun.cpp:
        (JSGlueGlobalObject::JSGlueGlobalObject): Moved constructor here.
        Set up flags in its new location in global object data, and set up
        a structure for UserObjectImp too.
        (JSRun::JSRun): Added code to give the JSGlueGlobalObject its own unique
        structure, rather than using the default one from JSGlobalObject.

        * JSRun.h: Made JSGlueGlobalObject take a structure ID. Also moved
        the data into a separate data object. And added userObjectStructure,
        a Structure to be used by UserObjectImp.

        * JSUtils.cpp: Removed unused sharedGlobalData global.
        (JSObjectKJSValue): Pass Structure in when creating UserObjectImp.
        (unprotectGlobalObject): Use JSGlueGLobalObject type specifically.
        (initializeGlobalObjectKey): Removed code to set up unused sharedGlobalData.
        (getThreadGlobalObject): Added. Shared by JSObjectKJSValue and
        getThreadGlobalExecState. Also now passes in a structure ID when creating
        the global object.
        (getThreadGlobalExecState): Changed to call getThreadGlobalObject.

        * UserObjectImp.cpp:
        (UserObjectImp::UserObjectImp): Changed to take a structure.
        * UserObjectImp.h:
        (UserObjectImp::createStructureID): Added. Returns a structure without
        HasStandardGetOwnPropertySlot since this class overrides getOwnPropertySlot.

2008-10-20  Sam Weinig  <sam@webkit.org>

        Reviewed by Cameron Zwarich.

        Fix for https://bugs.webkit.org/show_bug.cgi?id=21766
        REGRESSION: 12 JSC tests fail

        The JSGlobalObject constructor no longer takes a JSGlobalData
        as an argument.

        * JSRun.cpp:
        (JSRun::JSRun):
        * JSRun.h:
        (JSGlueGlobalObject::JSGlueGlobalObject):
        * JSUtils.cpp:
        (getThreadGlobalExecState):

2008-10-19  Darin Adler  <darin@apple.com>

        Reviewed by Oliver Hunt.

        - next step of https://bugs.webkit.org/show_bug.cgi?id=21732
          improve performance by eliminating JSValue as a base class for JSCell

        Remove most uses of JSValue, which will be removed in a future patch.

        * JSValueWrapper.h: Use JSValuePtr instead of JSValue*.

2008-10-18  Darin Adler  <darin@apple.com>

        Reviewed by Oliver Hunt.

        - next step of https://bugs.webkit.org/show_bug.cgi?id=21732
          improve performance by eliminating JSValue as a base class for JSCell

        Tweak a little more to get closer to where we can make JSValuePtr a class.

        * JSObject.cpp:
        (nativeCallFunction): Call asObject.

        * JSUtils.cpp:
        (KJSValueToJSObject): Use JSValuePtr and asObject.
        (JSObjectKJSValue): Ditto.
        (KJSValueToCFTypeInternal): Ditto.
        (KJSValueToCFType): Ditto.
        * JSUtils.h: Ditto.

        * UserObjectImp.cpp:
        (UserObjectImp::callAsFunction): Use JSValuePtr and asObject.
        (UserObjectImp::userObjectGetter): Ditto.
        (UserObjectImp::getOwnPropertySlot): Ditto.
        (UserObjectImp::put): Ditto.
        (UserObjectImp::toPrimitive): Ditto.
        * UserObjectImp.h: Ditto.

2008-10-18  Darin Adler  <darin@apple.com>

        Reviewed by Cameron Zwarich.

        - next step on https://bugs.webkit.org/show_bug.cgi?id=21732
          improve performance by eliminating JSValue as a base class for JSCell

        Use JSValuePtr everywhere instead of JSValue*. In the future, we'll be
        changing JSValuePtr to be a class, and then eventually renaming it
        to JSValue once that's done.

        * JSObject.cpp:
        * JSValueWrapper.cpp:
        * UserObjectImp.cpp:
        * UserObjectImp.h:
        Replace JSValue* with JSValuePtr.

2008-10-13  Maciej Stachowiak  <mjs@apple.com>

        Rubber stamped by Mark Rowe.
        
        - use gcc 4.2 when building with Xcode 3.1 or newer on Leopard, even though this is not the default

        * Configurations/DebugRelease.xcconfig:

2008-10-06  Maciej Stachowiak  <mjs@apple.com>

        Not reviewed. Build fix.

        - revert toBoolean changes (r37333 and r37335); need to make WebCore work with these

        * JSUtils.cpp:
        (KJSValueToCFTypeInternal):

2008-10-06  Maciej Stachowiak  <mjs@apple.com>

        Not reviewed.
        
        - fix build; toBoolean no longer takes an ExecState

        * JSUtils.cpp:
        (KJSValueToCFTypeInternal):

2008-10-04  Mark Rowe  <mrowe@apple.com>

        Reviewed by Tim Hatcher.

        Add a 'Check For Weak VTables' build phase to catch weak vtables as early as possible.

        * JavaScriptGlue.xcodeproj/project.pbxproj:

2008-10-01  Geoffrey Garen  <ggaren@apple.com>

        Reviewed by Darin Adler and Cameron Zwarich.

        * JSRun.cpp:
        (JSRun::Evaluate):
        (JSRun::CheckSyntax): Provide a SourceCode to the Interpreter, since
        other APIs are no longer supported.

2008-09-29  Geoffrey Garen  <ggaren@apple.com>

        Not reviewed.
        
        Forwarding headers to fix the build.

        * ForwardingHeaders/kjs/CTI.h: Copied from ForwardingHeaders/kjs/ExecState.h.
        * ForwardingHeaders/kjs/ustring.h: Copied from ForwardingHeaders/kjs/ExecState.h.
        * ForwardingHeaders/masm: Added.
        * ForwardingHeaders/masm/X86Assembler.h: Added.
        * ForwardingHeaders/profiler: Added.
        * ForwardingHeaders/profiler/Profiler.h: Added.

2008-09-08  Sam Weinig  <sam@webkit.org>

        Reviewed by Maciej Stachowiak and Oliver Hunt.

        Add forwarding headers.

        * ForwardingHeaders/wtf/HashFunctions.h: Added.
        * ForwardingHeaders/wtf/HashTraits.h: Added.

2008-09-02  Geoffrey Garen  <ggaren@apple.com>

        Reviewed by Sam Weinig.
        
        Implemented the rest of Darin's review comments for the 09-01 inline
        caching patch.
        
        * ForwardingHeaders/kjs/PutPropertySlot.h: Added.

2008-09-01  Geoffrey Garen  <ggaren@apple.com>

        Reviewed by Darin Adler.

        First cut at inline caching for access to vanilla JavaScript properties.
        
        Updated for JavaScriptCore changes. Mostly mechanical addition of StructureIDs
        to JavaScriptGlue classes, and PutPropertySlot& arguments to put functions.

2008-08-22  Anders Carlsson  <andersca@apple.com>

        Fix build for real this time.
        
        * UserObjectImp.h:

2008-08-22  Anders Carlsson  <andersca@apple.com>

        Fix build.
        
        * UserObjectImp.cpp:
        (UserObjectImp::toPrimitive):
        * UserObjectImp.h:

2008-08-19  Alexey Proskuryakov  <ap@webkit.org>

        Reviewed by Geoff Garen.

        Bring back shared JSGlobalData and implicit locking, because too many clients rely on it.

        * JSBase.cpp:
        (JSBase::Release):
        * JSUtils.cpp:
        (JSObjectKJSValue):
        (KJSValueToCFTypeInternal):
        (unprotectGlobalObject):
        * JSUtils.h:
        * JSValueWrapper.cpp:
        (JSValueWrapper::JSObjectCopyPropertyNames):
        (JSValueWrapper::JSObjectCopyProperty):
        (JSValueWrapper::JSObjectSetProperty):
        (JSValueWrapper::JSObjectCallFunction):
        (JSValueWrapper::JSObjectCopyCFValue):
        * JavaScriptGlue.cpp:
        (JSRunCreate):
        (JSRunEvaluate):
        (JSRunCheckSyntax):
        (JSCollect):
        (JSLockInterpreter):
        (JSUnlockInterpreter):
        * UserObjectImp.cpp:
        (UserObjectImp::callAsFunction):

2008-08-12  Darin Adler  <darin@apple.com>

        Reviewed by Geoff.

        - eliminate JSValue::type()

        * JSUtils.cpp:
        (KJSValueToCFTypeInternal): Replaced uses of JSValue::type() with
        JSValue::is functions.
        * UserObjectImp.cpp:
        (UserObjectImp::getOwnPropertySlot): Ditto.
        (UserObjectImp::toPrimitive): Take PreferredPrimitiveType argument
        instead of JSType argument.
        * UserObjectImp.h: Ditto.

2008-08-17  Geoffrey Garen  <ggaren@apple.com>

        Reviewed by Cameron Zwarich.
        
        Updated project files to XCode 3.1.

        * JavaScriptGlue.xcodeproj/project.pbxproj:

2008-08-15  Mark Rowe  <mrowe@apple.com>

        Rubber-stamped by Geoff Garen.

        <rdar://problem/6139914> Please include a _debug version of JavaScriptCore framework

        * Configurations/Base.xcconfig: Factor out the debug-only settings so that they can shared
        between the Debug configuration and debug Production variant.
        * JavaScriptGlue.xcodeproj/project.pbxproj: Enable the debug variant.

2008-07-31  Alexey Proskuryakov  <ap@webkit.org>

        Rubber-stamped by Maciej.

        Eliminate JSLock (it was already disabled, removing the stub implementaion and all
        call sites now).

        * JSBase.cpp:
        (JSBase::Release):
        * JSUtils.cpp:
        (JSObjectKJSValue):
        (KJSValueToCFTypeInternal):
        (unprotectGlobalObject):
        * JSUtils.h:
        * JSValueWrapper.cpp:
        (JSValueWrapper::JSObjectCopyPropertyNames):
        (JSValueWrapper::JSObjectCopyProperty):
        (JSValueWrapper::JSObjectSetProperty):
        (JSValueWrapper::JSObjectCallFunction):
        (JSValueWrapper::JSObjectCopyCFValue):
        * JavaScriptGlue.cpp:
        (JSRunCreate):
        (JSRunEvaluate):
        (JSRunCheckSyntax):
        (JSCollect):
        (JSLockInterpreter):
        (JSUnlockInterpreter):
        * UserObjectImp.cpp:
        (UserObjectImp::callAsFunction):

2008-07-29  Alexey Proskuryakov  <ap@webkit.org>

        Reviewed by Geoff Garen.

        Implement JSContextGroup APIs to make concurrent execution possible for
        JavaScriptCore clients.

        * JSRun.cpp:
        (JSRun::JSRun):
        * JSUtils.cpp:
        (getThreadGlobalExecState):
        Changed JavaScriptGlue to use a JSGlobalData of its own, now that there is no shared
        instance.

2008-07-23  Alexey Proskuryakov  <ap@webkit.org>

        Reviewed by Geoff Garen.

        Make JSClassRef work with any context, not just the first one it was used in.

        * ForwardingHeaders/wtf/HashMap.h: Added.

2008-07-22  Geoffrey Garen  <ggaren@apple.com>

        Reviewed by Oliver Hunt and Sam Weinig.

        Next step toward putting doubles in registers: Prepare the Register class
        and its clients for registers that don't contain JSValue*s.
        
2008-07-21  Mark Rowe  <mrowe@apple.com>

        Reviewed by Sam Weinig.

        <rdar://problem/6091287> Revamp the handling of CFBundleShortVersionString to be fixed at the major component of the version number.

        * Configurations/Version.xcconfig:
        * Info.plist:

2008-07-18  Geoffrey Garen  <ggaren@apple.com>

        Reviewed by Cameron Zwarich.
        
        Three renames:
        
        "CallTypeNative" => "CallTypeHost"
        "code" => "byteCode"
        "generatedCode" => "generatedByteCode"

        * ChangeLog:
        * JSObject.cpp:
        (JSUserObject::getCallData):

2008-07-14  Alexey Proskuryakov  <ap@webkit.org>

        Reviewed by Geoff Garen.

        Eliminate per-thread JavaScript global data instance support and make arbitrary
        global data/global object combinations possible.

        * ForwardingHeaders/wtf/ThreadSpecific.h: Added.
        * JSRun.cpp:
        (JSRun::JSRun):
        * JSUtils.cpp:
        (getThreadGlobalExecState):
        Adapt to the new way of asking for shared JSGlobalData.

2008-07-10  Mark Rowe  <mrowe@apple.com>

        Reviewed by Sam Weinig.

        Define WEBKIT_VERSION_MIN_REQUIRED=WEBKIT_VERSION_LATEST when building WebKit to ensure that no symbols end up with the weak_import attribute.

        * Configurations/JavaScriptGlue.xcconfig:

2008-07-09  Mark Rowe  <mrowe@apple.com>

        Reviewed by Geoff Garen.

        Don't warn about deprecated functions in production builds.

        * Configurations/Base.xcconfig:
        * Configurations/DebugRelease.xcconfig:

2008-07-08  Alexey Proskuryakov  <ap@webkit.org>

        Reviewed by Darin Adler.

        <rdar://problem/6058368> REGRESSION: Crash occurs in KJS::Machine after launching
        Apple Installer

        The problem was that JSUserObject::getCallData() was setting call type to native, but
        left callData.native.function uninitialized.

        * JSObject.cpp:
        (JSUserObject::getCallData): Initialize callData.native.function.
        (nativeCallFunction): Call UserObjectImp::callAsFunction().

2008-07-04  Sam Weinig  <sam@webkit.org>

        Rubber-stamped by Dan Bernstein.

        * JSObject.h: Rename the header guard as it now conflicts with the
        JSObject in JavaScriptCore.

2008-07-01  Alexey Proskuryakov  <ap@webkit.org>

        Reviewed by Darin Adler.

        Disable JSLock for per-thread contexts.

        * ForwardingHeaders/wtf/Locker.h: Added.
        * ForwardingHeaders/wtf/Threading.h: Added.
        * JSBase.cpp:
        (JSBase::Release):
        * JSUtils.cpp:
        (JSObjectKJSValue):
        (KJSValueToCFTypeInternal):
        (unprotectGlobalObject):
        * JSUtils.h:
        * JSValueWrapper.cpp:
        (JSValueWrapper::JSObjectCopyPropertyNames):
        (JSValueWrapper::JSObjectCopyProperty):
        (JSValueWrapper::JSObjectSetProperty):
        (JSValueWrapper::JSObjectCallFunction):
        (JSValueWrapper::JSObjectCopyCFValue):
        * JavaScriptGlue.cpp:
        (JSRunCreate):
        (JSRunEvaluate):
        (JSRunCheckSyntax):
        (JSCollect):
        (JSLockInterpreter):
        (JSUnlockInterpreter):
        * UserObjectImp.cpp:
        (UserObjectImp::callAsFunction):
        Pass a parameter (always true) to JSLock and JSLock::DropAllLocks to indicate that JSG
        clients always need implicit mutex protection.
        Added includes that are now needed.

2008-06-26  Darin Adler  <darin@apple.com>

        Reviewed by Geoff.

        * JSUtils.cpp: Added include of <JavaScriptCore/JSString.h> since jsString
        will soon be changed to return a JSString*.
        * UserObjectImp.cpp: Ditto.

2008-06-23  Darin Adler  <darin@apple.com>

        Reviewed by Geoff.

        * JSValueWrapper.cpp:
        (JSValueWrapper::JSObjectCallFunction): Updated to use getCallData and call instead
        of the old callAsFunction.

2008-06-17  Alexey Proskuryakov  <ap@webkit.org>

        Reviewed by Darin Adler.

        Prepare JavaScript heap for being per-thread.

        * JSRun.cpp: (JSRun::JSRun): Create JSGlueGlobalObject in a shared JS heap.

        * JSUtils.h: Made getThreadGlobalExecState available throughout JSGlue.

        * JSUtils.cpp:
        (JSObjectKJSValue): Pass an ExecState where now required.
        (unprotectGlobalObject):
        (initializeGlobalObjectKey):
        (getThreadGlobalExecState):
        Moved these functions from JSValueWrapper.cpp, as the global exec state is now needed
        elsewhere. I'm not quite sure how this relates to the global object from JSRun, but
        since the new uses are all for Heap access, there doesn't seem to be any behavior change.

        * JavaScriptGlue.cpp:
        (JSLockInterpreter): Don't call registerThread explicitly, as JSLock will do that.

        * UserObjectImp.cpp: (UserObjectImp::toPrimitive): Pass ExecState* where now required.

2008-06-17  Mark Rowe  <mrowe@apple.com>

        Reviewed by Darin Adler.

        <rdar://problem/5775802> JavaScriptGlue should not force use of GCC 4.0.

        * JavaScriptGlue.xcodeproj/project.pbxproj:

2008-06-16  Maciej Stachowiak  <mjs@apple.com>

        Reviewed by Alexey.

        - removed nearly unused types.h and LocalStorageEntry.h headers

        * JSUtils.h:

2008-06-16  Alexey Proskuryakov  <ap@webkit.org>

        Reviewed by Geoff Garen.

        Make Identifier construction use an explicitly passed IdentifierTable.

        * JSUtils.cpp:
        (CFStringToIdentifier):
        (KJSValueToCFTypeInternal):
        * JSUtils.h:
        * JSValueWrapper.cpp:
        (JSValueWrapper::JSObjectCopyPropertyNames):
        (JSValueWrapper::JSObjectCopyProperty):
        (JSValueWrapper::JSObjectSetProperty):
        * UserObjectImp.cpp:
        (UserObjectImp::getPropertyNames):
        Pass ExecState or JSGlobalData everywhere.

2008-06-15  Darin Adler  <darin@apple.com>

        - rename KJS::List to KJS::ArgList

        * JSValueWrapper.cpp:
        (JSValueWrapper::JSObjectCallFunction):
        * UserObjectImp.cpp:
        (UserObjectImp::callAsFunction):
        * UserObjectImp.h:

2008-06-15  Darin Adler  <darin@apple.com>

        - new names for a few key JavaScriptCore files

        * ForwardingHeaders/kjs/JSValue.h: Copied from JavaScriptGlue/ForwardingHeaders/kjs/value.h.
        * ForwardingHeaders/kjs/value.h: Removed.
        * JSUtils.h:

2008-06-03  Darin Adler  <darin@apple.com>

        - update for JavaScriptCore changes for https://bugs.webkit.org/show_bug.cgi?id=19269
          speed up SunSpider by eliminating the toObject call for most get/put/delete

        * UserObjectImp.cpp:
        (UserObjectImp::userObjectGetter): Removed originalObject argument.
        * UserObjectImp.h: Ditto.

2008-06-02  Geoffrey Garen  <ggaren@apple.com>

        Reviewed by Alexey Proskuryakov.

        Removed JSObject::call, since it just called JSObject::callAsFunction.

        SunSpider reports no change.

2008-05-28  Geoffrey Garen  <ggaren@apple.com>

        Reviewed by Oliver Hunt.
        
        Fixed total destruction in Software Update.app.
        
        Updated JavaScriptGlue to honor squirrelfish's new getCallData mechanism for
        indicating that an object can be called as a function.

2008-05-10  Maciej Stachowiak  <mjs@apple.com>

        Reviewed by Oliver.

        - JavaScriptGlue part of fix for: "SQUIRRELFISH: function toString broken after calling"
        https://bugs.webkit.org/show_bug.cgi?id=18869
        
        * JSRun.cpp:
        (JSRun::Evaluate): Use UString version of eveluate() instead of
        the now departed UChar*/length variant; use of the lower-level
        version was gratuitous in any case.
        (JSRun::CheckSyntax): Ditto for checkSyntax().

2008-04-30  Geoffrey Garen  <ggaren@apple.com>

        Build fix: supply missing parameter that used to be implicit.

        * JSRun.cpp:
        (JSRun::Evaluate):

2008-03-30  Geoffrey Garen  <ggaren@apple.com>

        Reviewed by Oliver Hunt.
        
        Build fix.

        * ForwardingHeaders/wtf/UnusedParam.h: Copied from ForwardingHeaders/wtf/OwnPtr.h.

2008-05-12  Alexey Proskuryakov  <ap@webkit.org>

        Roll out recent  threading changes (r32807, r32810, r32819, r32822) to simplify
        SquirrelFish merging.

        * JSUtils.cpp:
        (JSObjectKJSValue):
        * JSUtils.h:
        * JSValueWrapper.cpp:
        (unprotectGlobalObject):
        (initializeGlobalObjectKey):
        (getThreadGlobalExecState):
        * JavaScriptGlue.cpp:
        (JSCollect):
        (JSLockInterpreter):
        * UserObjectImp.cpp:
        (UserObjectImp::toPrimitive):

2008-05-02  Alexey Proskuryakov  <ap@webkit.org>

        Reviewed by Darin Adler.

        Make JavaScriptGlue and JavaScriptCore API functions implicitly call initializeThreading
        for the sake of non-WebKit clients.

        * JavaScriptGlue.cpp:
        (JSRunCreate):
        (JSCollect):
        (JSCreateJSArrayFromCFArray):
        (JSLockInterpreter):
        These are all possible JavaScriptGlue entry points.

2008-05-02  Alexey Proskuryakov  <ap@webkit.org>

        Reviewed by Geoffrey Garen.

        https://bugs.webkit.org/show_bug.cgi?id=18826
        Make JavaScript heap per-thread

        * JSValueWrapper.cpp:
        * JSUtils.h:
        Moved getThreadGlobalExecState() to JSUtils and made it extern, as ExecState is now needed
        for all JS allocations.

        * JSUtils.cpp:
        (JSObjectKJSValue): Pass ExecState to functions that now need it.
        (unprotectGlobalObject): Moved from JSValueWrapper.cpp.
        (initializeGlobalObjectKey): Ditto.
        (getThreadGlobalExecState): Ditto.

        * UserObjectImp.cpp: (UserObjectImp::toPrimitive): Pass ExecState to jsString and jsNumber.

        * JavaScriptGlue.cpp:
        (JSCollect): Use current thread's heap.
        (JSLockInterpreter): Removed JSLock::registerThread(), because a JS heap doesn't need to
        know about other threads.

2008-04-25  Alexey Proskuryakov  <ap@webkit.org>

        Reviewed by Darin Adler.

        Fix run-webkit-tests --threading
        and provisionally fix <https://bugs.webkit.org/show_bug.cgi?id=18661>
        Proxy server issue in Sunday's Nightly

        * UserObjectImp.cpp: Adjusted for the new member added to ClassInfo.

2008-04-25  Mark Rowe  <mrowe@apple.com>

        Reviewed by Adele Peterson.

        <rdar://problem/5891264> Don't install the JavaScriptGlue headers

        * JavaScriptGlue.xcodeproj/project.pbxproj:

2008-04-25  Mark Rowe  <mrowe@apple.com>

        Rubber-stamped by Sam Weinig.

        Add some content to an empty ICU header file to prevent verification errors.

        * icu/unicode/utf_old.h:

2008-04-02  Mark Rowe  <mrowe@apple.com>

        Reviewed by Oliver Hunt.

        Ensure that debug symbols are generated for x86_64 and ppc64 builds.

        * Configurations/Base.xcconfig:

2008-03-20  Maciej Stachowiak  <mjs@apple.com>

        - fix build

        * ForwardingHeaders/wtf/ListRefPtr.h: Added.

2008-03-01  Mark Rowe  <mrowe@apple.com>

        Reviewed by Tim Hatcher.

        Update Xcode configuration to support building debug and release from the mysterious future.

        * Configurations/Base.xcconfig:
        * Configurations/DebugRelease.xcconfig:

2008-02-29  Geoffrey Garen  <ggaren@apple.com>

        Reviewed by David Harrison.
        
        Fixed <rdar://problem/5765063> TOT REGRESSION: Software Update crash in
        KJS::Collector::collect() (missing JSLock)

        * JSValueWrapper.cpp:
        (unprotectGlobalObject): Added missing JSLock.

2008-02-05  Mark Rowe  <mrowe@apple.com>

        Reviewed by Oliver Hunt.

        Update versioning to support the mysterious future.

        * Configurations/Version.xcconfig: Add SYSTEM_VERSION_PREFIX_1060.

2008-01-28  Eric Seidel  <eric@webkit.org>

        Reviewed by darin.
        
        Add icu headers to JSG in preparation for depending on ::UChar.

        * Configurations/Base.xcconfig:
        * ForwardingHeaders/wtf/unicode: Added.
        * ForwardingHeaders/wtf/unicode/Unicode.h: Added.
        * ForwardingHeaders/wtf/unicode/icu: Added.
        * ForwardingHeaders/wtf/unicode/icu/UnicodeIcu.h: Added.
        * icu: Copied from ../JavaScriptCore/icu.

2007-12-19  Geoffrey Garen  <ggaren@apple.com>

        Build fix.

        * ForwardingHeaders/wtf/VectorTraits.h: Added.

2007-12-10  Timothy Hatcher  <timothy@apple.com>

        Reviewed by Mark Rowe.

        <rdar://problem/5639463> Bundle versions on Tiger should be 4523.x not 523.x

        * Configurations/Version.xcconfig: Some Tiger versions of Xcode don't set MAC_OS_X_VERSION_MAJOR,
          so assume Tiger and use a 4 for the SYSTEM_VERSION_PREFIX.

2007-12-04  Geoffrey Garen  <ggaren@apple.com>

        Reviewed by Darin Adler.

        Third step in refactoring JSGlobalObject: Moved data members and data
        member access from Interpreter to JSGlobalObject. Replaced JSInterpreter
        subclass with JSGlobalObject subclass.
        
        * JSRun.cpp:
        (JSRun::JSRun):
        (JSRun::Evaluate):
        (JSRun::CheckSyntax):
        * JSRun.h:
        (JSGlueGlobalObject::JSGlueGlobalObject):
        * JSUtils.cpp:
        (KJSValueToCFTypeInternal):
        * JSValueWrapper.cpp:
        (getThreadGlobalExecState):

2007-12-02  Geoffrey Garen  <ggaren@apple.com>

        Reviewed by Eric Seidel.

        Updated to match the JavaScriptCore change to move virtual methods from
        Interpreter to JSGlobalObject.
        
        * JSRun.cpp:
        * JSRun.h:
        * JSValueWrapper.cpp:
        (getThreadGlobalExecState):
        * JavaScriptGlue.cpp:
        (JSRunCopyGlobalObject):
        (JSRunEvaluate):

2007-11-30  Geoffrey Garen  <ggaren@apple.com>

        Reviewed by Beth Dakin.
        
        Modified to follow new JSGlobalObject/Interpreter ownership rules 
        in JavaScriptCore.

        * JSRun.cpp:
        (JSRun::JSRun):
        (JSRun::GetInterpreter):
        (JSRun::Evaluate):
        (JSRun::CheckSyntax):
        * JSRun.h:
        * JSValueWrapper.cpp:
        (unprotectGlobalObject):
        (initializeGlobalObjectKey):
        (getThreadGlobalExecState):

2007-11-29  Mark Rowe  <mrowe@apple.com>

        Reviewed by Maciej.

        Fix REGRESSION(r27885): Installer hits assertion failure in JavaScriptGlue.

        * JSValueWrapper.cpp:
        (getThreadGlobalExecState): Set the global object on the Interpreter before using it.

2007-11-27  Anders Carlsson  <andersca@apple.com>
        
        Build fix.
        
        * JSUtils.cpp:
        (KJSValueToCFTypeInternal):
        * JSValueWrapper.cpp:
        (JSValueWrapper::JSObjectCopyPropertyNames):

2007-11-21  Mark Rowe  <mrowe@apple.com>

        Reviewed by Eric.

        Fix JavaScriptGlue to build without warnings using GCC 4.2.

        * Configurations/Base.xcconfig:
        * JSRun.h:

2007-11-17  Mark Rowe  <mrowe@apple.com>

        Reviewed by Darin Adler.

        Fix: <rdar://problem/5607032> REGRESSION: testapi exits with assertion failure in debug build
             <rdar://problem/5440659> JSGlobalContextCreate throws away globalObjectClass's prototype
             http://bugs.webkit.org/show_bug.cgi?id=16033

        Update for changes in Interpreter method signatures.

        * JSRun.h:

2007-11-13  Geoffrey Garen  <ggaren@apple.com>

        Reviewed by Anders Carlsson.

        Renamed Shared to RefCounted.

        * ForwardingHeaders/wtf/RefCounted.h: Copied from JavaScriptGlue/ForwardingHeaders/wtf/Shared.h.
        * ForwardingHeaders/wtf/Shared.h: Removed.

2007-11-13  Geoffrey Garen  <ggaren@apple.com>

        Reviewed by Sam Weinig.

        Moved Shared.h into wtf so it could be used in more places.

        * ForwardingHeaders/wtf/Shared.h: Added.

2007-11-08  Mark Rowe  <mrowe@apple.com>

        Build fix.

        * ForwardingHeaders/wtf/MathExtras.h: Copied from WebCore/ForwardingHeaders/wtf/MathExtras.h.

2007-11-05  Geoffrey Garen  <ggaren@apple.com>

        Build fix.

        * ForwardingHeaders/kjs/value.h: Added.

2007-11-03  Sam Weinig  <sam@webkit.org>

        Build-fix.

        * UserObjectImp.cpp:

2007-11-03  David D. Kilzer  <ddkilzer@webkit.org>

        Sort files(...); sections of Xcode project files.

        Rubber-stamped by Darin Adler.

        * JavaScriptGlue.xcodeproj/project.pbxproj:

2007-10-25  Eric Seidel  <eric@webkit.org>

        Reviewed by Geoff.
        
        Make JSG build again after JSGlobalObject change.

        * JSRun.cpp:
        (JSRun::JSRun):
        (JSRun::GlobalObject):
        * JSRun.h:
        (JSInterpreter::JSInterpreter):
        * JSUtils.h:

2007-10-11  Mark Rowe  <mrowe@apple.com>

        Reviewed by Tim Hatcher.

        Fix for <rdar://problem/5488678>.  Disable debugging symbols in production builds for 10.4
        PowerPC to prevent a huge STABS section from being generated.

        * Configurations/Base.xcconfig:

2007-10-04  Mark Rowe  <mrowe@apple.com>

        Reviewed by Oliver.

        Switch to default level of debugging symbols to resolve <rdar://problem/5488678>.
        The "full" level appears to offer no observable benefits even though the documentation
        suggests it be used for dead code stripping.  This should also decrease link times.

        * Configurations/Base.xcconfig:

2007-09-03  Mark Rowe  <mrowe@apple.com>

        Reviewed by Tim Hatcher.

        <rdar://problem/5452164> Production build with in symbols directory has no debug info

        Enable debug symbol generation on all build configurations.  Production builds are stripped
        of symbols by Xcode during deployment post-processing.

        * Configurations/Base.xcconfig:
        * JavaScriptGlue.xcodeproj/project.pbxproj:

2007-08-09  Mark Rowe  <mrowe@apple.com>

        Reviewed by Antti.

        <rdar://problem/5400709> Versioning in debug and release builds should include minor and tiny version before +

        * Configurations/Version.xcconfig:
        * JavaScriptGlue.xcodeproj/project.pbxproj: Add a shell script phase to make to dependency between
        Version.xcconfig and Info.plist explicit to Xcode.

2007-07-16  Sam Weinig  <sam@webkit.org>

        Reviewed by Oliver.

        Turn off -Wshorten-64-to-32 warning for 64-bit builds.

        * Configurations/Base.xcconfig:

2007-04-27  Mark Rowe  <mrowe@apple.com>

        Reviewed by Oliver.

        * JavaScriptGlue.xcodeproj/project.pbxproj: Improve dependencies in Xcode project
        by marking JavaScriptGlue as a dependency of testjsglue.

2007-03-24  Mark Rowe  <mrowe@apple.com>

        Reviewed by Dave Hyatt.

        * JavaScriptGlue.xcodeproj/project.pbxproj: Use GCC 4.0 for testjsglue.

2007-03-24  Mark Rowe  <mrowe@apple.com>

        Rubber-stamped by Darin Adler.

        * Configurations/JavaScriptGlue.xcconfig: Remove unnecessary INFOPLIST_PREPROCESS.

2007-03-19  Andrew Wellington  <proton@wiretapped.net>

        Reviewed by Maciej.

        Really set Xcode editor to use 4 space indentation (http://webkit.org/coding/coding-style.html)

        * JavaScriptGlue.xcodeproj/project.pbxproj:

2007-03-18  Andrew Wellington  <proton@wiretapped.net>

        Reviewed by Mark Rowe
        
        Set Xcode editor to use 4 space indentation (http://webkit.org/coding/coding-style.html)

        * JavaScriptGlue.xcodeproj/project.pbxproj:

2007-03-17  Timothy Hatcher  <timothy@apple.com>

        Reviewed by Mark Rowe.

        Made Version.xcconfig smarter when building for different configurations.
        Now uses the 522+ OpenSource version for Debug and Release, while using the    
        full 522.4 version for Production builds. The system prefix is also computed
        based on the current system, so 4522.4 on Tiger and 5522.4 on Leopard.

        * Configurations/JavaScriptGlue.xcconfig:
        * Configurations/Version.xcconfig:

2007-03-15  Timothy Hatcher  <timothy@apple.com>

        Reviewed by John.

        * Factored out most of our common build settings into .xcconfig files. Anything that was common in
          each build configuration was factored out into the shared .xcconfig file.
        * Adds a Version.xcconfig file to define the current framework version, to be used in other places.
        * Use the new $(BUNDLE_VERSION) (defined in Version.xcconfig) in the preprocessed Info.plist.
        * Use the versions defined in Version.xcconfig to set $(DYLIB_CURRENT_VERSION).

        * Configurations/Base.xcconfig: Added.
        * Configurations/DebugRelease.xcconfig: Added.
        * Configurations/JavaScriptGlue.xcconfig: Added.
        * Configurations/Version.xcconfig: Added.
        * Info.plist:
        * JavaScriptGlue.xcodeproj/project.pbxproj:

=== Safari-5522.4 ===

2007-03-12  Geoffrey Garen  <ggaren@apple.com>

        Reviewed by Oliver Hunt.
        
        Updated in light of fix for <rdar://problem/4681051> Installer crashes 
        in KJS::Collector::markOtherThreadConservatively(KJS::Collector::Thread*) 
        trying to install iLife 06 using Rosetta on an Intel Machine
        
        * JavaScriptGlue.cpp:
        (JSLockInterpreter): Ensure backwards compatibility by calling 
        registerThread() when explicitly taking the JSLock. (This doesn't happen 
        automatically anymore.) I doubt this actally matters, but in JavaScriptGlue
        territory, that kind of thinking will get you killed.

2007-03-06  Geoffrey Garen  <ggaren@apple.com>

        Reviewed by Maciej Stachowiak.

        Fixed all known crashers exposed by run-webkit-tests --threaded while using
        a PAC file (for maximum carnage). See JavaScriptCore ChangeLog for 
        more details.

        * JSBase.cpp:
        (JSBase::Release): Lock when deleting, because we may be deleting an object
        (like a JSRun) that holds thread-unsafe data.

        * JSUtils.cpp:
        (CFStringToUString): Don't lock, because our caller locks. Also, locking
        inside a function that returns thread-unsafe data by copy will only mask
        threading problems.

        * JavaScriptGlue.cpp:
        (JSRunEvaluate): Added missing JSLock.
        (JSRunCheckSyntax): Converted to JSLock.
        * JavaScriptGlue.xcodeproj/project.pbxproj:

2007-02-22  Geoffrey Garen  <ggaren@apple.com>

        Reviewed by Darin Adler.
        
        Fixed <rdar://problem/4942528> Installer.app Stuck "Examining additional 
        volumes..."
        
        The problem was that JavaScriptGlue held a JSObject in a static pointer
        without protecting it from garbage collection. 
        
            sUserObjectPrototypeImp  = new UserObjectPrototypeImp();
            static ProtectedPtr<UserObjectPrototypeImp> protectPrototype; // valiant, brave, but useless

        Through an interesting comedy of errors, this object would be collected 
        and then assigned as the prototype of another object allocated at the 
        same address, thus becoming its own prototype. (See http://www.ziplo.com/grandpa.htm
        for further explanation of this phenomenon.) Hence the infinte loop in 
        property lookup.
        
        The solution is equally humorous: all of this code was completely useless --
        it only served to create an empty object in the prototype chain -- so
        I just removed it.

        * UserObjectImp.cpp:
        (UserObjectImp::UserObjectImp):
        * UserObjectImp.h:

2007-02-19  Timothy Hatcher  <timothy@apple.com>

        Reviewed by Geoff.

        <rdar://problem/4636301> Deprecate JavaScriptGlue

        * JavaScriptGlue.h: adds DEPRECATED_IN_MAC_OS_X_VERSION_10_5_AND_LATER to everything
        * JavaScriptGlue.xcodeproj/project.pbxproj: use -Wno-deprecated-declarations to keep the project building
        * config.h: define DEPRECATED_IN_MAC_OS_X_VERSION_10_5_AND_LATER as empty on other systems

2007-02-16  Darin Adler  <darin@apple.com>

        Reviewed by Anders.

        - fix <rdar://problem/5000216> JavaScriptGlue framework started turning all CFNumbers
          into signed 32bit values

        Circumstantial evidence seems to indicate that JavaScriptGlue was depending on a bug
        in CFNumber where CFNumberIsFloatType was returning true for 64-bit integer values.

        * JSUtils.cpp: (JSObjectKJSValue): Removed the call to CFNumberIsFloatType in the
        conversion of numeric values, and always use kCFNumberDoubleType, since double is
        the internal format of numbers in JavaScriptCore. There's no value to having a
        separate code path for integers. There's also no reason to check the return value
        from CFNumberGetValue -- if it returns false it still does the best it can to convert
        to a double, which is what we want.

        * UserObjectImp.cpp: (UserObjectImp::toString): Removed a similar code path that
        tried to handle integers separate from double. Instead, always use a double. For
        compatibility, use a format without a decimal point when CFNumberIsFloatType returns
        false. Also removed a bogus cast to float; the "%f" format string takes a double,
        not a float, so all the cast did was cut down on precision.

2007-01-25  Mark Rowe  <mrowe@apple.com>

        Reviewed by Maciej.

        * Info.plist: Update copyright string.

2006-12-19  Timothy Hatcher  <timothy@apple.com>

        Reviewed by Darin Adler.

        <rdar://problem/4891774> Local WebCore/WebBrowser builds fail in 9A328 due to warning about ObjC-2.0 language features

        * JavaScriptGlue.xcodeproj/project.pbxproj:

=== Safari-521.26 ===

2006-08-15  Mark Rowe  <opendarwin.org@bdash.net.nz>

        Reviewed by Tim H.

        Build fix:  DWARF and -gfull are incompatible with symbol separation.

        * JavaScriptGlue.xcodeproj/project.pbxproj:

2006-08-15  Mark Rowe  <opendarwin.org@bdash.net.nz>

        Reviewed by Tim H.

        http://bugs.webkit.org/show_bug.cgi?id=10394
        Bug 10394: WebKit Release and Production configurations should enable dead code stripping

        * JavaScriptGlue.xcodeproj/project.pbxproj:

2006-08-15  Mark Rowe  <opendarwin.org@bdash.net.nz>

        Reviewed by Tim H.

        http://bugs.webkit.org/show_bug.cgi?id=10384
        Bug 10384: Switch to DWARF for Release configuration

        * JavaScriptGlue.xcodeproj/project.pbxproj:

2006-08-04  Sam Weinig  <sam.weinig@gmail.com>

        Reviewed by Darin Adler.

        - patch for http://bugs.webkit.org/show_bug.cgi?id=10192
          Make WebCore (and friends) compile with -Wshorten-64-to-32

          * Adds -Wshorten-64-to-32 flag to Xcode project.

        * JavaScriptGlue.xcodeproj/project.pbxproj:

2006-08-03  Sam Weinig  <sam.weinig@gmail.com>

        Reviewed by Darin Adler.

        - patch for http://bugs.webkit.org/show_bug.cgi?id=10176
          Make WebCore compile with -Wundef

          * Adds -Wundef flag to Xcode project

        * JavaScriptGlue.xcodeproj/project.pbxproj:

2006-07-29  Sam Weinig  <sam.weinig@gmail.com>

        Reviewed by Darin Adler.

        - patch for http://bugs.webkit.org/show_bug.cgi?id=10080
          Adopt pedantic changes from the Unity project to improve 
          cross-compiler compatibility

          Changes include:
          * Turning on gcc warning for missing newline at the end of a source file
            (GCC_WARN_ABOUT_MISSING_NEWLINE in Xcode, -Wnewline in gcc).

        * JavaScriptGlue.xcodeproj/project.pbxproj:

=== Safari-521.19 ===

2006-07-19  Geoffrey Garen  <ggaren@apple.com>

        Fixed by Darin & Maciej, reviewed by me.
        
        - Fixed <rdar://problem/4638934> Leopard 9A227: Installer crashes right 
        after LCA and while preparing Installation

        Compile release/production with NDEBUG set, to ensure binary compatibility
        between JavaScriptGlue and JavaScriptCore. In debug builds, JavaScriptCore 
        includes an extra debug data member in HashSet.
        
        * JavaScriptGlue.xcodeproj/project.pbxproj:

=== Safari-521.18 ===

2006-07-15  Maciej Stachowiak  <mjs@apple.com>

        Reviewed by Darin Adler.

        - switch property lists to be vector+set of Identifiers instead of list of References
        
        * JSUtils.cpp:
        (KJSValueToCFTypeInternal): updated for JSC SPI changes
        * JSValueWrapper.cpp:
        (JSValueWrapper::JSObjectCopyPropertyNames): ditto
        * UserObjectImp.cpp:
        (UserObjectImp::getPropertyNames): ditto
        * UserObjectImp.h:

=== Safari-521.17 ===

2006-07-14  Geoffrey Garen  <ggaren@apple.com>

        Reviewed by Maciej.
        
        - Updated JSInterpreter to work with Interpreter ref-counting in JavaScriptCore.

        (JSInterpreter::JSInterpreter::~JSInterpreter): Now protected to catch
        manual delete.

2006-07-12  Anders Carlsson  <acarlsson@apple.com>

        Build fix
        
        * JSUtils.cpp:
        (KJSValueToCFTypeInternal):
        * JSValueWrapper.cpp:
        (JSValueWrapper::JSObjectCopyPropertyNames):
        * UserObjectImp.cpp:
        (UserObjectImp::getPropertyList):
        
=== Safari-521.15 ===

2006-07-07  Geoffrey Garen  <ggaren@apple.com>

        - build fix

        * JSUtils.cpp:
        (KJSValueToCFTypeInternal):
        * JSValueWrapper.cpp:
        (JSValueWrapper::JSObjectCopyPropertyNames):

2006-07-03  Geoffrey Garen  <ggaren@apple.com>

        Reviewed by Maciej.
        
        * JSRun.cpp:
        (JSRun::CheckSyntax): Updated to use new checkSyntax syntax in JSC.
        * JavaScriptGlue.xcodeproj/project.pbxproj:

=== Safari-521.14 ===

2006-06-28  Timothy Hatcher  <timothy@apple.com>

        Prefer the Stabs debugging symbols format until DWARF bugs are fixed.

        * JavaScriptGlue.xcodeproj/project.pbxproj:

2006-06-24  David Kilzer  <ddkilzer@kilzer.net>

        Reviewed by Timothy.

        * Info.plist: Fixed copyright to include 2003-2006.

=== JavaScriptGlue-521.13 ===
        
2006-06-20  Geoffrey Garen  <ggaren@apple.com>

        Reviewed by Anders.
        
        - Required for JS API: Rename propList to getPropertyList and have it
        take its target property list by reference so that subclasses can
        add properties to the list before calling through to their superclasses.

        * JSUtils.cpp:
        (KJSValueToCFTypeInternal):
        * JSValueWrapper.cpp:
        (JSValueWrapper::JSObjectCopyPropertyNames):
        * UserObjectImp.cpp:
        (UserObjectImp::getPropertyList):
        * UserObjectImp.h:

2006-06-15  Timothy Hatcher  <timothy@apple.com>

        Reviewed by Geoff and Darin.
        
        Prefer the DWARF debugging symbols format for use in Xcode 2.3.

        * JavaScriptGlue.xcodeproj/project.pbxproj:

2006-06-12  Geoffrey Garen  <ggaren@apple.com>

        Reviewed by TimO, Maciej.
        
        - JSGlue part of merging InterpreterImp into Interpreter.
        
        Since there's now a kjs forwarding header, I moved all forwarding
        headers into a "ForwardingHeaders" directory, like in WebCore.

        * ForwardingHeaders: Added.
        * ForwardingHeaders/kjs: Added.
        * ForwardingHeaders/kjs/ExecState.h: Added.
        * ForwardingHeaders/wtf: Added.
        * JavaScriptGlue.xcodeproj/project.pbxproj:
        * config.h:
        * wtf: Removed.
        * wtf/AlwaysInline.h: Removed.
        * wtf/Assertions.h: Removed.
        * wtf/FastMalloc.h: Removed.
        * wtf/Forward.h: Removed.
        * wtf/HashCountedSet.h: Removed.
        * wtf/HashSet.h: Removed.
        * wtf/Noncopyable.h: Removed.
        * wtf/OwnArrayPtr.h: Removed.
        * wtf/OwnPtr.h: Removed.
        * wtf/PassRefPtr.h: Removed.
        * wtf/Platform.h: Removed.
        * wtf/RefPtr.h: Removed.
        * wtf/Vector.h: Removed.

=== JavaScriptGlue-521.10 ===

2006-05-09  Maciej Stachowiak  <mjs@apple.com>

        Rubber stamped by Anders.
        
        - renamed kxmlcore to wtf
        
        kxmlcore --> wtf
        KXMLCore --> WTF
        KXC --> WTF

        * config.h:
        * kxmlcore: Removed.
        * kxmlcore/AlwaysInline.h: Removed.
        * kxmlcore/Assertions.h: Removed.
        * kxmlcore/FastMalloc.h: Removed.
        * kxmlcore/Forward.h: Removed.
        * kxmlcore/HashCountedSet.h: Removed.
        * kxmlcore/HashSet.h: Removed.
        * kxmlcore/Noncopyable.h: Removed.
        * kxmlcore/OwnArrayPtr.h: Removed.
        * kxmlcore/OwnPtr.h: Removed.
        * kxmlcore/PassRefPtr.h: Removed.
        * kxmlcore/Platform.h: Removed.
        * kxmlcore/RefPtr.h: Removed.
        * kxmlcore/Vector.h: Removed.
        * wtf: Added.

2006-04-11  Darin Adler  <darin@apple.com>

        - try to fix Windows build

        * kxmlcore/HashForward.h: Removed.

2006-04-10  Darin Adler  <darin@apple.com>

        Rubber-stamped by John Sullivan.

        - added forwarding headers for the new Forward.h and HashForward.h files

        * kxmlcore/Forward.h: Added.
        * kxmlcore/HashForward.h: Added.

2006-04-04  Timothy Hatcher  <timothy@apple.com>

        Reviewed by Darin Adler.

        The Debug and Release frameworks are now built with install paths relative to the build products directory.
        This removes the need for other projects to build with -framework WebCore and -framework JavaScriptCore. 

        * JavaScriptGlue.xcodeproj/project.pbxproj:

2006-04-02  Eric Seidel  <eseidel@apple.com>

        Reviewed by andersca.

        Add missing forwarding header.

        * kxmlcore/Vector.h: Added.

2006-03-31  Geoffrey Garen  <ggaren@apple.com>

        Reviewed by Darin Adler.

        - Fixed <rdar://problem/4430836> JavaScript patch crashing Quartz
        Composer

        JSValueWrappers used to hold on to the ExecState that pertained at
        the time of their creation. Since ExecStates are transient, that
        design was totally bogus, and it would crash once the ExecState had
        been deallocated.

        Unfortunately, there's no clean solution to this problem, since
        the JSGlue API has no notion of state. The solution here is to use
        a shared, global ExecState for the purpose of JSGlue calls. Given
        the pre-existing limitations in the JSGlue API, this design
        shouldn't actually introduce any new limitations (see comments in
        JSValueWrapper.cpp).

        I tested with Quartz Composer and PAC files, neither of which are
        layout-testable.
        
        * JSUtils.cpp:
        (KJSValueToJSObject):
        * JSValueWrapper.cpp:
        (JSValueWrapper::JSValueWrapper):
        (JSValueWrapper::GetValue):
        (getProcessGlobalExecState):
        (JSValueWrapper::JSObjectCopyPropertyNames):
        (JSValueWrapper::JSObjectCopyProperty):
        (JSValueWrapper::JSObjectSetProperty):
        (JSValueWrapper::JSObjectCallFunction):
        (JSValueWrapper::JSObjectCopyCFValue):
        * JSValueWrapper.h:

        Also added a test harness file. It was helpful while I was testing,
        and may come in handy in the future:
        
        * JavaScriptGlue.xcodeproj/project.pbxproj:
        testjsglue.cpp: Added.

2006-03-28  Darin Adler  <darin@apple.com>

        Reviewed by Geoff.

        - added a build step that checks for init routines

        * JavaScriptGlue.xcodeproj/project.pbxproj: Added a custom build phase that invokes the
        check-for-global-initializers script.

2006-03-02  Maciej Stachowiak  <mjs@apple.com>

        Not reviewed, but I noticed these trivial extra changes were needed to avoid
        breaking the build with my reviewed patch for:
        
        http://bugs.webkit.org/show_bug.cgi?id=7387
        
        Add config.h, includes of it, and Platform.h forwarding header.

        * JSBase.cpp:
        * JSObject.cpp:
        * JSRun.cpp:
        * JSUtils.cpp:
        * JSValueWrapper.cpp:
        * JavaScriptGlue.cpp:
        * UserObjectImp.cpp:
        * config.h: Added.
        * kxmlcore/Platform.h: Added.

=== JavaScriptGlue-521.7 ===

2006-02-10  Geoffrey Garen  <ggaren@apple.com>

        Reviewed by eric.

        - Fixed build.

        * UserObjectImp.cpp:
        (UserObjectImp::toPrimitive):
        * UserObjectImp.h:

2006-02-03  Timothy Hatcher  <timothy@apple.com>

        Reviewed by Justin.

        Renamed configuration names to Debug, Release and Production.

        * JavaScriptGlue.xcodeproj/project.pbxproj:

2006-02-01  Darin Adler  <darin@apple.com>

        - added some forwarding headers to make new JavaScriptCore changes work

        * kxmlcore/Assertions.h: Added.
        * kxmlcore/Noncopyable.h: Added.
        * kxmlcore/OwnPtr.h: Added.
        * kxmlcore/OwnArrayPtr.h: Added.

2006-01-16  Timothy Hatcher  <timothy@apple.com>

        Adding the license header to all files so we can
        move JavaScriptGlue into the open source repository.

        * LICENSE: Added.
        * JSBase.cpp: license header added.
        * JSBase.h: ditto.
        * JSObject.cpp: ditto.
        * JSObject.h: ditto.
        * JSRun.cpp: ditto.
        * JSRun.h: ditto.
        * JSUtils.cpp: ditto.
        * JSUtils.h: ditto.
        * JSValueWrapper.cpp: ditto.
        * JSValueWrapper.h: ditto.
        * JavaScriptGlue.cpp: ditto.
        * JavaScriptGlue.h: ditto.
        * UserObjectImp.cpp: ditto.
        * UserObjectImp.h: ditto.

2005-12-21  Timothy Hatcher  <timothy@apple.com>

        * JavaScriptGlue.xcodeproj/project.pbxproj:
          Set tab width to 8, indent width to 4 and uses tabs to false per file.

2005-12-19  Darin Adler  <darin@apple.com>

        Reviewed by Geoff Garen and Eric Seidel.

        - fix http://bugs.webkit.org/show_bug.cgi?id=4923
          stop using <ostream> in WebCore, eliminating the <cmath> troubles it causes

        * kxmlcore/AlwaysInline.h: Added.

2005-12-15  Darin Adler  <darin@apple.com>

        Reviewed by Maciej.

        * JSRun.cpp: (JSRun::Evaluate): Updated for change to Interpreter::evaluate.

2005-12-15  Darin Adler  <darin@apple.com>

        Reviewed by Tim Hatcher.

        * JavaScriptGlue.xcodeproj/project.pbxproj: Removed some redundant build
        settings, turned off prebinding explicitly for our Development and
        Deployment builds, remove .exp file from sources. All "clean-up".

=== Safari-521~5 ===

2005-12-13  Geoffrey Garen  <ggaren@apple.com>

    - Fixed build after Anders's last checkin to JavaScriptCore.
    
        Reviewed by darin.

        * UserObjectImp.cpp:
        (UserObjectImp::userObjectGetter): Updated to reflect new argument that 
    getters take (unused here).
        * UserObjectImp.h:

2005-12-13  Maciej Stachowiak  <mjs@apple.com>

        Reviewed by Eric.

    - added forwarding header for HashCountedSet

        * kxmlcore/HashCountedSet.h: Added.

2005-12-10  Darin Adler  <darin@apple.com>

        Rubber stamped by Maciej.

        - updated for KJS class renaming

        * many files and functions

2005-12-10  Darin Adler  <darin@apple.com>

        Reviewed by Maciej.

        - eliminated the old Undefined(), Null(), Boolean(), Number(), and String()

        Code now uses jsUndefined(), jsNull(), jsBoolean(), jsNumber(), and jsString().

        * JSUtils.cpp:
        (JSObjectKJSValue):
        * UserObjectImp.cpp:
        (UserObjectImp::callAsFunction):
        (UserObjectImp::toPrimitive):

2005-12-05  Maciej Stachowiak  <mjs@apple.com>

        - added new forwarding headers

        * kxmlcore/PassRefPtr.h: Added.
        * kxmlcore/RefPtr.h: Added.

2005-12-05  Maciej Stachowiak  <mjs@apple.com>

        * kxmlcore/PassRefPtr.h: Added.

2005-11-26  Maciej Stachowiak  <mjs@apple.com>

        Rubber stamped by Eric.

    - renamed InterpreterLock to JSLock

        * JSUtils.cpp:
        (CFStringToUString):
        (JSObjectKJSValue):
        (KJSValueToCFTypeInternal):
        * JSValueWrapper.cpp:
        (JSValueWrapper::JSObjectCopyPropertyNames):
        (JSValueWrapper::JSObjectCopyProperty):
        (JSValueWrapper::JSObjectSetProperty):
        (JSValueWrapper::JSObjectCallFunction):
        (JSValueWrapper::JSObjectCopyCFValue):
        * JavaScriptGlue.cpp:
        (JSRunCreate):
        (JSCollect):
        (JSLockInterpreter):
        (JSUnlockInterpreter):
        * UserObjectImp.cpp:
        (UserObjectImp::callAsFunction):

2005-11-16  Maciej Stachowiak  <mjs@apple.com>

        Reviewed by Geoff.

    Updated to use new API to drop all locks.

        * JavaScriptGlue.cpp:
        (JSLockInterpreter):
        (JSUnlockInterpreter):
        * UserObjectImp.cpp:
        (UserObjectImp::callAsFunction):

2005-11-14  Geoffrey Garen  <ggaren@apple.com>

        Reviewed by mjs.

        - Part of the fix for <rdar://problem/4342216> Installer crash in 
          KJS::ValueImp::marked() when garbage collector runs inside call to 
          ConstantValues::init()
          
        Added locking in JSRunCreate, since JSRun::JSRun constructs an object.
        
        * JavaScriptGlue.cpp:
        (JSRunCreate):

2005-11-10  Geoffrey Garen  <ggaren@apple.com>

        Reviewed by Maciej.

        - Fixed <rdar://problem/4334445> installer crashed on my 
          dual g4 450Mhz after clicking language

        - Reversed backwards NULL check.
        - Inserted guards against NULL fJSUserObject data member.
        - Cleaned up some style.

        * JSUtils.cpp:
        (KJSValueToCFTypeInternal):
        * UserObjectImp.cpp:
        (UserObjectImp::~UserObjectImp):
        (UserObjectImp::callAsFunction):
        (UserObjectImp::userObjectGetter):
        (UserObjectImp::getOwnPropertySlot):
        (UserObjectImp::put):
        (UserObjectImp::mark):

2005-11-04  Timothy Hatcher  <timothy@apple.com>

        Reviewed by Darin Adler.

        * JavaScriptGlue.xcodeproj/project.pbxproj:
          Fixed the FRAMEWORK_SEARCH_PATHS to look in the WebKit
          Frameworks for the Default config.

2005-11-03  Timothy Hatcher  <timothy@apple.com>

        Reviewed by Darin and Vicki.

        * JavaScriptGlue.xcodeproj/project.pbxproj:
          Change to use $(SYSTEM_LIBRARY_DIR) consistently and place
          $(NEXT_ROOT) in a few spots to make build-root work.

2005-11-01  Maciej Stachowiak  <mjs@apple.com>

    Reviewed by: Eric.
    
        <rdar://problem/4324107> get JavaScriptGlue working with TOT JavaScriptCore again

    - reverted all this stuff to use ReferenceList instead of IdentifierSequencedSet

        * JSUtils.cpp:
        (KJSValueToCFTypeInternal):
        * JSValueWrapper.cpp:
        (JSValueWrapper::JSObjectCopyPropertyNames):
        * UserObjectImp.cpp:
        (UserObjectImp::propList):
        * UserObjectImp.h:

2005-10-11  Timothy Hatcher  <timothy@apple.com>

        Setup the proper Framework search path for the Default config.
        Prepping for a TOT submission and build by B&I.

        * JavaScriptGlue.xcodeproj/project.pbxproj:

2005-10-10  Darin Adler  <darin@apple.com>

        Reviewed by Eric.

        - converted tabs to spaces, NULL to 0, added some (void), got rid of __ prefixes
          in headers (reserved for compiler/library)

        * Info.plist:
        * JSBase.cpp:
        * JSBase.h:
        * JSObject.cpp:
        * JSObject.h:
        * JSRun.cpp:
        * JSRun.h:
        * JSUtils.cpp:
        * JSUtils.h:
        * JSValueWrapper.cpp:
        * JSValueWrapper.h:
        * JavaScriptGlue.cpp:
        * JavaScriptGlue.h:
        * UserObjectImp.cpp:
        * UserObjectImp.h:

2005-10-10  Darin Adler  <darin@apple.com>

        * .cvsignore: Added. Ignore Makefile.in and Makefile.

2005-10-07  Timothy Hatcher  <timothy@apple.com>

        Reviewed by Maciej.
        
        Build fix, needed to disable RTTI. Upgraded to a native target.

        * JavaScriptGlue.xcodeproj/project.pbxproj:
        * Info.plist

2005-10-05  Maciej Stachowiak  <mjs@apple.com>

        Reviewed by Eric and Darin.

    <rdar://problem/4260506> Port JavaScriptGlue to TOT JavaScriptCore

        * JSRun.cpp:
        (JSRun::JSRun):
        (JSRun::GlobalObject):
        * JSRun.h:
        (JSInterpreter::JSInterpreter):
        * JSUtils.cpp:
        (KJSValueToJSObject):
        (JSObjectKJSValue):
        (KJSValueToCFTypeInternal):
        (KJSValueToCFType):
        * JSUtils.h:
        * JSValueWrapper.cpp:
        (JSValueWrapper::JSValueWrapper):
        (JSValueWrapper::GetValue):
        (JSValueWrapper::JSObjectCopyPropertyNames):
        (JSValueWrapper::JSObjectCopyProperty):
        (JSValueWrapper::JSObjectSetProperty):
        (JSValueWrapper::JSObjectCallFunction):
        (JSValueWrapper::JSObjectMark):
        * JSValueWrapper.h:
        * JavaScriptGlue.cpp:
        (JSRunCopyGlobalObject):
        * JavaScriptGlue.xcodeproj/project.pbxproj:
        * Makefile.am: Added.
        * UserObjectImp.cpp:
        (UserObjectPrototypeImp::GlobalUserObjectPrototypeImp):
        (UserObjectImp::UserObjectImp):
        (UserObjectImp::callAsFunction):
        (UserObjectImp::getPropertyNames):
        (UserObjectImp::userObjectGetter):
        (UserObjectImp::getOwnPropertySlot):
        (UserObjectImp::put):
        (UserObjectImp::toPrimitive):
        (UserObjectImp::mark):
        * UserObjectImp.h:
        * kxmlcore/FastMalloc.h: Added.
        * kxmlcore/HashSet.h: Added.

2005-09-14  Maciej Stachowiak  <mjs@apple.com>

        Reviewed by Geoff.

    - fixed <rdar://problem/4214783> REGRESSION: kjs_fast_malloc crash due to lack of locking on multiple threads (seen selecting volumes in the installer)

    Make sure to lock using the InterpreterLock class in all places that need it
    (including anything that uses the collector, the parser, the protect count hash table,
    and anything that allocates via fast_malloc).

        * JSUtils.cpp:
        (CFStringToUString):
        (JSObjectKJSValue):
        (KJSValueToCFTypeInternal):
        * JSUtils.h:
        * JSValueWrapper.cpp:
        (JSValueWrapper::JSObjectCopyPropertyNames):
        (JSValueWrapper::JSObjectCopyProperty):
        (JSValueWrapper::JSObjectSetProperty):
        (JSValueWrapper::JSObjectCallFunction):
        (JSValueWrapper::JSObjectCopyCFValue):
        * JavaScriptGlue.cpp:
        (JSCollect):

2005-09-27  Adele Peterson  <adele@apple.com>

        Reviewed by Maciej.

        <rdar://problem/4223297> JavaScriptGlue: Submit 64-bit compatible versions of your API and SPIs by September 15

        * JavaScriptGlue.h: Changed UInt32 to CFTypeID for JSTypeID

2005-09-06  Geoffrey Garen  <ggaren@apple.com>

        -upgraded project files to XCode 2.1

        * JavaScriptGlue.pbproj/project.pbxproj: Removed.
        * JavaScriptGlue.xcodeproj/.cvsignore: Added.
        * JavaScriptGlue.xcodeproj/project.pbxproj: Added.

2005-09-01  Maciej Stachowiak  <mjs@apple.com>

        Rubber stamped by hyatt.

    - initial import of JavaScriptGlue into our repository

        * English.lproj/InfoPlist.strings: Added.
        * JSBase.cpp: Added.
        (JSBase::JSBase):
        (JSBase::~JSBase):
        (JSBase::Retain):
        (JSBase::Release):
        (JSBase::RetainCount):
        (JSBase::GetTypeID):
        (JSBase::CopyDescription):
        (JSBase::Equal):
        * JSBase.h: Added.
        * JSObject.cpp: Added.
        (JSUserObject::JSUserObject):
        (JSUserObject::~JSUserObject):
        (JSUserObject::CopyPropertyNames):
        (JSUserObject::CopyProperty):
        (JSUserObject::SetProperty):
        (JSUserObject::ImplementsCall):
        (JSUserObject::CallFunction):
        (JSUserObject::CopyCFValue):
        (JSUserObject::Equal):
        (JSUserObject::Mark):
        (JSUserObject::GetData):
        * JSObject.h: Added.
        (JSUserObject::DataType):
        * JSRun.cpp: Added.
        (JSRun::JSRun):
        (JSRun::~JSRun):
        (JSRun::Flags):
        (JSRun::GetSource):
        (JSRun::GlobalObject):
        (JSRun::GetInterpreter):
        (JSRun::Evaluate):
        (JSRun::CheckSyntax):
        * JSRun.h: Added.
        (JSInterpreter::JSInterpreter):
        (JSInterpreter::JSInterpreter::~JSInterpreter):
        (JSInterpreter::Flags):
        * JSUtils.cpp: Added.
        (CFStringToUString):
        (UStringToCFString):
        (CFStringToIdentifier):
        (IdentifierToCFString):
        (KJSValueToJSObject):
        (JSObjectKJSValue):
        (KJSValueToCFTypeInternal):
        (KJSValueToCFType):
        (GetCFNull):
        * JSUtils.h: Added.
        (RetainCFType):
        (ReleaseCFType):
        * JSValueWrapper.cpp: Added.
        (JSValueWrapper::JSValueWrapper):
        (JSValueWrapper::~JSValueWrapper):
        (JSValueWrapper::GetValue):
        (JSValueWrapper::GetExecState):
        (JSValueWrapper::GetJSObectCallBacks):
        (JSValueWrapper::JSObjectDispose):
        (JSValueWrapper::JSObjectCopyPropertyNames):
        (JSValueWrapper::JSObjectCopyProperty):
        (JSValueWrapper::JSObjectSetProperty):
        (JSValueWrapper::JSObjectCallFunction):
        (JSValueWrapper::JSObjectCopyCFValue):
        (JSValueWrapper::JSObjectMark):
        * JSValueWrapper.h: Added.
        * JavaScriptGlue.cpp: Added.
        (JSSetCFNull):
        (JSGetCFNull):
        (JSRetain):
        (JSRelease):
        (JSCopyDescription):
        (JSEqual):
        (JSGetTypeID):
        (JSGetRetainCount):
        (JSObjectCreate):
        (JSObjectCreateInternal):
        (JSObjectCopyCFValue):
        (JSObjectGetData):
        (JSObjectCopyProperty):
        (JSObjectSetProperty):
        (JSObjectCallFunction):
        (JSRunCreate):
        (JSRunCopySource):
        (JSRunCopyGlobalObject):
        (JSRunEvaluate):
        (JSRunCheckSyntax):
        (JSCollect):
        (JSTypeGetCFArrayCallBacks):
        (JSCFRetain):
        (JSCFRelease):
        (JSObjectCreateWithCFType):
        (CFJSObjectDispose):
        (JSObjectCopyPropertyNames):
        (CFJSObjectCopyProperty):
        (CFJSObjectSetProperty):
        (CFJSObjectCopyCFValue):
        (CFJSObjectEqual):
        (CFJSObjectCopyPropertyNames):
        (JSCreateCFArrayFromJSArray):
        (JSCreateJSArrayFromCFArray):
        (JSLockInterpreter):
        (JSUnlockInterpreter):
        * JavaScriptGlue.exp: Added.
        * JavaScriptGlue.h: Added.
        * JavaScriptGlue.pbproj/project.pbxproj: Added.
        * UserObjectImp.cpp: Added.
        (UserObjectPrototypeImp::UserObjectPrototypeImp):
        (UserObjectPrototypeImp::GlobalUserObjectPrototypeImp):
        (UserObjectImp::UserObjectImp):
        (UserObjectImp::~UserObjectImp):
        (UserObjectImp::classInfo):
        (UserObjectImp::implementsCall):
        (UserObjectImp::call):
        (UserObjectImp::propList):
        (UserObjectImp::hasProperty):
        (UserObjectImp::get):
        (UserObjectImp::put):
        (UserObjectImp::GetJSUserObject):
        (UserObjectImp::toPrimitive):
        (UserObjectImp::toBoolean):
        (UserObjectImp::toNumber):
        (UserObjectImp::toString):
        (UserObjectImp::mark):
        * UserObjectImp.h: Added.