Skip to content
  • ggaren's avatar
    JavaScriptCore: · 2593cdc4
    ggaren authored
            Reviewed by Anders.
            
            - First cut at C API to JavaScript. Includes a unit test, 'testapi.c', 
            and the outline of a test app, 'minidom.c'.
            
            Includes one change to JSC internals: 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.
            
            Also, I just ran prepare-ChangeLog in about 10 seconds, and I would like
            to give a shout-out to that.
            
            * API/APICast.h: Added.
            (toJS):
            (toRef):
            * API/JSBase.h: Added.
            * API/JSCallbackObject.cpp: Added.
            (KJS::):
            (KJS::JSCallbackObject::JSCallbackObject):
            (KJS::JSCallbackObject::~JSCallbackObject):
            (KJS::JSCallbackObject::className):
            (KJS::JSCallbackObject::getOwnPropertySlot):
            (KJS::JSCallbackObject::put):
            (KJS::JSCallbackObject::deleteProperty):
            (KJS::JSCallbackObject::implementsConstruct):
            (KJS::JSCallbackObject::construct):
            (KJS::JSCallbackObject::implementsCall):
            (KJS::JSCallbackObject::callAsFunction):
            (KJS::JSCallbackObject::getPropertyList):
            (KJS::JSCallbackObject::toBoolean):
            (KJS::JSCallbackObject::toNumber):
            (KJS::JSCallbackObject::toString):
            (KJS::JSCallbackObject::setPrivate):
            (KJS::JSCallbackObject::getPrivate):
            (KJS::JSCallbackObject::cachedValueGetter):
            (KJS::JSCallbackObject::callbackGetter):
            * API/JSCallbackObject.h: Added.
            (KJS::JSCallbackObject::classInfo):
            * API/JSCharBufferRef.cpp: Added.
            (JSStringMake):
            (JSCharBufferCreate):
            (JSCharBufferCreateUTF8):
            (JSCharBufferRetain):
            (JSCharBufferRelease):
            (JSValueCopyStringValue):
            (JSCharBufferGetLength):
            (JSCharBufferGetCharactersPtr):
            (JSCharBufferGetCharacters):
            (JSCharBufferGetMaxLengthUTF8):
            (JSCharBufferGetCharactersUTF8):
            (JSCharBufferIsEqual):
            (JSCharBufferIsEqualUTF8):
            (JSCharBufferCreateWithCFString):
            (CFStringCreateWithJSCharBuffer):
            * API/JSCharBufferRef.h: Added.
            * API/JSContextRef.cpp: Added.
            (JSContextCreate):
            (JSContextDestroy):
            (JSContextGetGlobalObject):
            (JSEvaluate):
            (JSCheckSyntax):
            (JSContextHasException):
            (JSContextGetException):
            (JSContextClearException):
            (JSContextSetException):
            * API/JSContextRef.h: Added.
            * API/JSObjectRef.cpp: Added.
            (JSValueToObject):
            (JSObjectMake):
            (JSFunctionMake):
            (JSObjectGetDescription):
            (JSObjectGetPrototype):
            (JSObjectSetPrototype):
            (JSObjectHasProperty):
            (JSObjectGetProperty):
            (JSObjectSetProperty):
            (JSObjectDeleteProperty):
            (JSObjectGetPrivate):
            (JSObjectSetPrivate):
            (JSObjectIsFunction):
            (JSObjectCallAsFunction):
            (JSObjectIsConstructor):
            (JSObjectCallAsConstructor):
            (__JSPropertyListEnumerator::__JSPropertyListEnumerator):
            (JSObjectCreatePropertyEnumerator):
            (JSPropertyEnumeratorGetNext):
            (JSPropertyEnumeratorRetain):
            (JSPropertyEnumeratorRelease):
            (JSPropertyListAdd):
            * API/JSObjectRef.h: Added.
            * API/JSValueRef.cpp: Added.
            (JSValueGetType):
            (JSValueIsUndefined):
            (JSValueIsNull):
            (JSValueIsBoolean):
            (JSValueIsNumber):
            (JSValueIsString):
            (JSValueIsObject):
            (JSValueIsEqual):
            (JSValueIsStrictEqual):
            (JSUndefinedMake):
            (JSNullMake):
            (JSBooleanMake):
            (JSNumberMake):
            (JSValueToBoolean):
            (JSValueToNumber):
            (JSGCProtect):
            (JSGCUnprotect):
            (JSGCCollect):
            * API/JSValueRef.h: Added.
            * API/JavaScriptCore.h: Added.
            * API/minidom.c: Added.
            (main):
            * API/minidom.html: Added.
            * API/minidom.js: Added.
            * API/testapi.c: Added.
            (assertEqualsAsBoolean):
            (assertEqualsAsNumber):
            (assertEqualsAsUTF8String):
            (assertEqualsAsCharactersPtr):
            (assertEqualsAsCharacters):
            (MyObject_initialize):
            (MyObject_copyDescription):
            (MyObject_hasProperty):
            (MyObject_getProperty):
            (MyObject_setProperty):
            (MyObject_deleteProperty):
            (MyObject_getPropertyList):
            (MyObject_callAsFunction):
            (MyObject_callAsConstructor):
            (MyObject_convertToType):
            (MyObject_finalize):
            (print_callAsFunction):
            (main):
            (createStringWithContentsOfFile):
            * API/testapi.js: Added.
            * ChangeLog:
            * JavaScriptCore.xcodeproj/project.pbxproj:
            * bindings/npruntime_impl.h:
            * kjs/array_instance.h:
            * kjs/array_object.cpp:
            (ArrayInstance::getPropertyList):
            * kjs/interpreter.cpp:
            (KJS::Interpreter::evaluate):
            * kjs/nodes.cpp:
            (ForInNode::execute):
            * kjs/object.cpp:
            (KJS::JSObject::put):
            (KJS::JSObject::canPut):
            (KJS::JSObject::deleteProperty):
            (KJS::JSObject::propertyIsEnumerable):
            (KJS::JSObject::getPropertyAttributes):
            (KJS::JSObject::getPropertyList):
            * kjs/object.h:
            * kjs/property_map.cpp:
            (KJS::PropertyMap::get):
            * kjs/property_map.h:
            * kjs/scope_chain.cpp:
            (KJS::ScopeChain::print):
            * kjs/string_object.cpp:
            (StringInstance::getPropertyList):
            * kjs/string_object.h:
            * kjs/ustring.h:
            (KJS::UString::Rep::ref):
    
    JavaScriptGlue:
    
            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:
    
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@14951 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    2593cdc4