Reviewed by Maciej.
authorggaren <ggaren@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 17 Jul 2006 10:49:28 +0000 (10:49 +0000)
committerggaren <ggaren@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 17 Jul 2006 10:49:28 +0000 (10:49 +0000)
commit4fb1e3eca8687d13feaf507b2638c62674bbe38f
treeb90c0c70053313619336f800e1558877e7f4450c
parent78490a4cc4f171e83fdc6b0e6da06e6821d01258
    Reviewed by Maciej.

        - Removed the exception parameter from the initialize callback and, by extension,
        JSObjectMake. We have never had a need for exceptions when iniitializing,
        so the parameter seemed likely to "get in the way."

        Also, an exception in JavaScript is thrown in response to input --
        "invalid URL", "index not a number", etc., so it's the job of the
        constructor function, not the initialize method, to throw.

        If initialize *really* wants to throw, it can communicate the throw to
        the constructor through the constructed object's private data (e.g., set
        it to NULL, signaling to the consntructor that initialization failed.)

        - Added JSObjectMakeWithData, which enables a constructor to set private
        data on an object *before* it has been initialized. That way, the initialize
        methods can properly operate on the data.

        * API/JSNode.c: Moved ref into the initialize method, for better encapsulation,
        now that it's possible.
        * API/JSNodeList.c: ditto
        * API/minidom.c:
        (main): Do more aggressive garbage collection to test ref/deref and
        initialize/finalize.
        * API/minidom.js: store childNodes in a temporary so it doesn't get re-created
        like a thousand times. This makes debugging ref/deref easier

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@15484 268f45cc-cd09-0410-ab3c-d52691b4dbfc
12 files changed:
JavaScriptCore/API/JSCallbackObject.cpp
JavaScriptCore/API/JSCallbackObject.h
JavaScriptCore/API/JSContextRef.cpp
JavaScriptCore/API/JSNode.c
JavaScriptCore/API/JSNodeList.c
JavaScriptCore/API/JSObjectRef.cpp
JavaScriptCore/API/JSObjectRef.h
JavaScriptCore/API/minidom.c
JavaScriptCore/API/minidom.js
JavaScriptCore/API/testapi.c
JavaScriptCore/ChangeLog
JavaScriptCore/JavaScriptCore.exp