Reviewed by Maciej.
authorggaren <ggaren@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 18 Jul 2006 04:33:46 +0000 (04:33 +0000)
committerggaren <ggaren@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 18 Jul 2006 04:33:46 +0000 (04:33 +0000)
commitfc04e51349eb3a6a3fad4c818c8cb5588d01e778
treecfcd03078885e3a5a11306fd1a96f8022fca3498
parentff889a0cea814ee2670545a68d4794abb21fd1b8
    Reviewed by Maciej.

        - Added automatic prototype creation for classes.

        A class stores a weak reference to a prototype, which is cleared when
        the prototype is garbage collected, to avoid a reference cycle.

        We now have an attributes field in JSClassDefinition, that currently is
        used only to override automatic prototype creation when you want to manage your
        own prototypes, but can be extended in the future for other nefarious purposes.

        Similarly, we have JSObjectMake and JSObjectMakeWithPrototype, the latter
        allowing you to manage your own prototypes.

        JSObjectMakeConstructor is more interesting now, able to make a constructor
        on your behalf if you just give it a class.

        - Removed bogus old code from minidom.js.

        - Tweaked the headerdocs.

        - Added more GC testing, which caught some leaks, and tested more funny
        edge cases in lookup, which caught a lookup bug. Removed some testing
        we used to do with MyObject because it was redundant with the new, cool
        stuff.

        While fixing the lookup bug I retracted this change:

            "If a static setProperty callback returns 'false', to indicate that the
            property was not set, we no longer forward the set request up the class
            chain, because that's almost certainly not what the programmer expected."

        Returning false when setting a static property is a little silly, but you can see
        it being useful when shadowing a base class's static properties, and, regardless
        of usefullness, this is the defined behavior of the setProperty callback.

        - Plus a little ASCII art, for the kids.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@15497 268f45cc-cd09-0410-ab3c-d52691b4dbfc
19 files changed:
JavaScriptCore/API/JSBase.h
JavaScriptCore/API/JSCallbackConstructor.cpp
JavaScriptCore/API/JSCallbackConstructor.h
JavaScriptCore/API/JSCallbackObject.cpp
JavaScriptCore/API/JSClassRef.cpp
JavaScriptCore/API/JSClassRef.h
JavaScriptCore/API/JSNode.c
JavaScriptCore/API/JSNode.h
JavaScriptCore/API/JSNodeList.c
JavaScriptCore/API/JSObjectRef.cpp
JavaScriptCore/API/JSObjectRef.h
JavaScriptCore/API/JSStringRef.h
JavaScriptCore/API/JSValueRef.h
JavaScriptCore/API/minidom.c
JavaScriptCore/API/minidom.js
JavaScriptCore/API/testapi.c
JavaScriptCore/API/testapi.js
JavaScriptCore/ChangeLog
JavaScriptCore/JavaScriptCore.exp