|
Ultralight C API 1.4.0
|
Classes | |
| struct | JSStaticValue |
| This structure describes a statically declared value property. More... | |
| struct | JSStaticFunction |
| This structure describes a statically declared function property. More... | |
| struct | JSClassDefinition |
| This structure contains properties and callbacks that define a type of object. All fields other than the version field are optional. Any pointer may be NULL. More... | |
Functions | |
| JSClassRef | JSClassCreate (const JSClassDefinition *definition) |
| Creates a JavaScript class suitable for use with JSObjectMake. | |
| JSClassRef | JSClassRetain (JSClassRef jsClass) |
| Retains a JavaScript class. | |
| void | JSClassRelease (JSClassRef jsClass) |
| Releases a JavaScript class. | |
| JSObjectRef | JSObjectMake (JSContextRef ctx, JSClassRef jsClass, void *data) |
| Creates a JavaScript object. | |
| JSObjectRef | JSObjectMakeFunctionWithCallback (JSContextRef ctx, JSStringRef name, JSObjectCallAsFunctionCallback callAsFunction) |
| Convenience method for creating a JavaScript function with a given callback as its implementation. | |
| JSObjectRef | JSObjectMakeConstructor (JSContextRef ctx, JSClassRef jsClass, JSObjectCallAsConstructorCallback callAsConstructor) |
| Convenience method for creating a JavaScript constructor. | |
| JSObjectRef | JSObjectMakeArray (JSContextRef ctx, size_t argumentCount, const JSValueRef arguments[], JSValueRef *exception) JSC_API_AVAILABLE(macos(10.6) |
| Creates a JavaScript Array object. | |
| JSObjectRef | ios (7.0)) |
| JSObjectRef | JSObjectMakeDate (JSContextRef ctx, size_t argumentCount, const JSValueRef arguments[], JSValueRef *exception) JSC_API_AVAILABLE(macos(10.6) |
| Creates a JavaScript Date object, as if by invoking the built-in Date constructor. | |
| JSObjectRef | JSObjectMakeError (JSContextRef ctx, size_t argumentCount, const JSValueRef arguments[], JSValueRef *exception) JSC_API_AVAILABLE(macos(10.6) |
| Creates a JavaScript Error object, as if by invoking the built-in Error constructor. | |
| JSObjectRef | JSObjectMakeRegExp (JSContextRef ctx, size_t argumentCount, const JSValueRef arguments[], JSValueRef *exception) JSC_API_AVAILABLE(macos(10.6) |
| Creates a JavaScript RegExp object, as if by invoking the built-in RegExp constructor. | |
| JSObjectRef | JSObjectMakeDeferredPromise (JSContextRef ctx, JSObjectRef *resolve, JSObjectRef *reject, JSValueRef *exception) JSC_API_AVAILABLE(macos(10.15) |
| Creates a JavaScript promise object by invoking the provided executor. | |
| JSObjectRef | ios (13.0)) |
| JSObjectRef | JSObjectMakeFunction (JSContextRef ctx, JSStringRef name, unsigned parameterCount, const JSStringRef parameterNames[], JSStringRef body, JSStringRef sourceURL, int startingLineNumber, JSValueRef *exception) |
| Creates a function with a given script as its body. | |
| JSValueRef | JSObjectGetPrototype (JSContextRef ctx, JSObjectRef object) |
| Gets an object's prototype. | |
| void | JSObjectSetPrototype (JSContextRef ctx, JSObjectRef object, JSValueRef value) |
| Sets an object's prototype. | |
| bool | JSObjectHasProperty (JSContextRef ctx, JSObjectRef object, JSStringRef propertyName) |
| Tests whether an object has a given property. | |
| JSValueRef | JSObjectGetProperty (JSContextRef ctx, JSObjectRef object, JSStringRef propertyName, JSValueRef *exception) |
| Gets a property from an object. | |
| void | JSObjectSetProperty (JSContextRef ctx, JSObjectRef object, JSStringRef propertyName, JSValueRef value, JSPropertyAttributes attributes, JSValueRef *exception) |
| Sets a property on an object. | |
| bool | JSObjectDeleteProperty (JSContextRef ctx, JSObjectRef object, JSStringRef propertyName, JSValueRef *exception) |
| Deletes a property from an object. | |
| bool | JSObjectHasPropertyForKey (JSContextRef ctx, JSObjectRef object, JSValueRef propertyKey, JSValueRef *exception) JSC_API_AVAILABLE(macos(10.15) |
| Tests whether an object has a given property using a JSValueRef as the property key. | |
| JSValueRef | JSObjectGetPropertyForKey (JSContextRef ctx, JSObjectRef object, JSValueRef propertyKey, JSValueRef *exception) JSC_API_AVAILABLE(macos(10.15) |
| Gets a property from an object using a JSValueRef as the property key. | |
| void | JSObjectSetPropertyForKey (JSContextRef ctx, JSObjectRef object, JSValueRef propertyKey, JSValueRef value, JSPropertyAttributes attributes, JSValueRef *exception) JSC_API_AVAILABLE(macos(10.15) |
| Sets a property on an object using a JSValueRef as the property key. | |
| bool | JSObjectDeletePropertyForKey (JSContextRef ctx, JSObjectRef object, JSValueRef propertyKey, JSValueRef *exception) JSC_API_AVAILABLE(macos(10.15) |
| Deletes a property from an object using a JSValueRef as the property key. | |
| JSValueRef | JSObjectGetPropertyAtIndex (JSContextRef ctx, JSObjectRef object, unsigned propertyIndex, JSValueRef *exception) |
| Gets a property from an object by numeric index. | |
| void | JSObjectSetPropertyAtIndex (JSContextRef ctx, JSObjectRef object, unsigned propertyIndex, JSValueRef value, JSValueRef *exception) |
| Sets a property on an object by numeric index. | |
| void * | JSObjectGetPrivate (JSObjectRef object) |
| Gets an object's private data. | |
| bool | JSObjectSetPrivate (JSObjectRef object, void *data) |
| Sets a pointer to private data on an object. | |
| bool | JSObjectIsFunction (JSContextRef ctx, JSObjectRef object) |
| Tests whether an object can be called as a function. | |
| JSValueRef | JSObjectCallAsFunction (JSContextRef ctx, JSObjectRef object, JSObjectRef thisObject, size_t argumentCount, const JSValueRef arguments[], JSValueRef *exception) |
| Calls an object as a function. | |
| bool | JSObjectIsConstructor (JSContextRef ctx, JSObjectRef object) |
| Tests whether an object can be called as a constructor. | |
| JSObjectRef | JSObjectCallAsConstructor (JSContextRef ctx, JSObjectRef object, size_t argumentCount, const JSValueRef arguments[], JSValueRef *exception) |
| Calls an object as a constructor. | |
| JSPropertyNameArrayRef | JSObjectCopyPropertyNames (JSContextRef ctx, JSObjectRef object) |
| Gets the names of an object's enumerable properties. | |
| JSPropertyNameArrayRef | JSPropertyNameArrayRetain (JSPropertyNameArrayRef array) |
| Retains a JavaScript property name array. | |
| void | JSPropertyNameArrayRelease (JSPropertyNameArrayRef array) |
| Releases a JavaScript property name array. | |
| size_t | JSPropertyNameArrayGetCount (JSPropertyNameArrayRef array) |
| Gets a count of the number of items in a JavaScript property name array. | |
| JSStringRef | JSPropertyNameArrayGetNameAtIndex (JSPropertyNameArrayRef array, size_t index) |
| Gets a property name at a given index in a JavaScript property name array. | |
| void | JSPropertyNameAccumulatorAddName (JSPropertyNameAccumulatorRef accumulator, JSStringRef propertyName) |
| Adds a property name to a JavaScript property name accumulator. | |
Variables | |
| const JSClassDefinition | kJSClassDefinitionEmpty |
| A JSClassDefinition structure of the current version, filled with NULL pointers and having no attributes. | |
Typedefs | |
| typedef unsigned | JSPropertyAttributes |
| A set of JSPropertyAttributes. Combine multiple attributes by logically ORing them together. | |
| typedef unsigned | JSClassAttributes |
| A set of JSClassAttributes. Combine multiple attributes by logically ORing them together. | |
| typedef void(*) | JSObjectInitializeCallback(JSContextRef ctx, JSObjectRef object) |
| The callback invoked when an object is first created. | |
| typedef void(*) | JSObjectFinalizeCallback(JSObjectRef object) |
| The callback invoked when an object is finalized (prepared for garbage collection). An object may be finalized on any thread. | |
| typedef bool(*) | JSObjectHasPropertyCallback(JSContextRef ctx, JSObjectRef object, JSStringRef propertyName) |
| The callback invoked when determining whether an object has a property. | |
| typedef JSValueRef(*) | JSObjectGetPropertyCallback(JSContextRef ctx, JSObjectRef object, JSStringRef propertyName, JSValueRef *exception) |
| The callback invoked when getting a property's value. | |
| typedef bool(*) | JSObjectSetPropertyCallback(JSContextRef ctx, JSObjectRef object, JSStringRef propertyName, JSValueRef value, JSValueRef *exception) |
| The callback invoked when setting a property's value. | |
| typedef bool(*) | JSObjectDeletePropertyCallback(JSContextRef ctx, JSObjectRef object, JSStringRef propertyName, JSValueRef *exception) |
| The callback invoked when deleting a property. | |
| typedef void(*) | JSObjectGetPropertyNamesCallback(JSContextRef ctx, JSObjectRef object, JSPropertyNameAccumulatorRef propertyNames) |
| The callback invoked when collecting the names of an object's properties. | |
| typedef JSValueRef(*) | JSObjectCallAsFunctionCallback(JSContextRef ctx, JSObjectRef function, JSObjectRef thisObject, size_t argumentCount, const JSValueRef arguments[], JSValueRef *exception) |
| The callback invoked when an object is called as a function. | |
| typedef JSObjectRef(*) | JSObjectCallAsConstructorCallback(JSContextRef ctx, JSObjectRef constructor, size_t argumentCount, const JSValueRef arguments[], JSValueRef *exception) |
| The callback invoked when an object is used as a constructor in a 'new' expression. | |
| typedef bool(*) | JSObjectHasInstanceCallback(JSContextRef ctx, JSObjectRef constructor, JSValueRef possibleInstance, JSValueRef *exception) |
| hasInstance The callback invoked when an object is used as the target of an 'instanceof' expression. | |
| typedef JSValueRef(*) | JSObjectConvertToTypeCallback(JSContextRef ctx, JSObjectRef object, JSType type, JSValueRef *exception) |
| The callback invoked when converting an object to a particular JavaScript type. | |
Enumerations | |
| enum | { kJSPropertyAttributeNone = 0 , kJSPropertyAttributeReadOnly = 1 << 1 , kJSPropertyAttributeDontEnum = 1 << 2 , kJSPropertyAttributeDontDelete = 1 << 3 } |
| enum | { kJSClassAttributeNone = 0 , kJSClassAttributeNoAutomaticPrototype = 1 << 1 } |
| JSValueRef ios | ( | 13. | 0 | ) |
| JSObjectRef ios | ( | 7. | 0 | ) |
| JSClassRef JSClassCreate | ( | const JSClassDefinition * | definition | ) |
Creates a JavaScript class suitable for use with JSObjectMake.
| definition | A JSClassDefinition that defines the class. |
| void JSClassRelease | ( | JSClassRef | jsClass | ) |
Releases a JavaScript class.
| jsClass | The JSClass to release. |
| JSClassRef JSClassRetain | ( | JSClassRef | jsClass | ) |
Retains a JavaScript class.
| jsClass | The JSClass to retain. |
| JSObjectRef JSObjectCallAsConstructor | ( | JSContextRef | ctx, |
| JSObjectRef | object, | ||
| size_t | argumentCount, | ||
| const JSValueRef | arguments[], | ||
| JSValueRef * | exception ) |
Calls an object as a constructor.
| ctx | The execution context to use. |
| object | The JSObject to call as a constructor. |
| argumentCount | An integer count of the number of arguments in arguments. |
| arguments | A JSValue array of arguments to pass to the constructor. Pass NULL if argumentCount is 0. |
| exception | A pointer to a JSValueRef in which to store an exception, if any. Pass NULL if you do not care to store an exception. |
| JSValueRef JSObjectCallAsFunction | ( | JSContextRef | ctx, |
| JSObjectRef | object, | ||
| JSObjectRef | thisObject, | ||
| size_t | argumentCount, | ||
| const JSValueRef | arguments[], | ||
| JSValueRef * | exception ) |
Calls an object as a function.
| ctx | The execution context to use. |
| object | The JSObject to call as a function. |
| thisObject | The object to use as "this," or NULL to use the global object as "this." |
| argumentCount | An integer count of the number of arguments in arguments. |
| arguments | A JSValue array of arguments to pass to the function. Pass NULL if argumentCount is 0. |
| exception | A pointer to a JSValueRef in which to store an exception, if any. Pass NULL if you do not care to store an exception. |
| JSPropertyNameArrayRef JSObjectCopyPropertyNames | ( | JSContextRef | ctx, |
| JSObjectRef | object ) |
Gets the names of an object's enumerable properties.
| ctx | The execution context to use. |
| object | The object whose property names you want to get. |
| bool JSObjectDeleteProperty | ( | JSContextRef | ctx, |
| JSObjectRef | object, | ||
| JSStringRef | propertyName, | ||
| JSValueRef * | exception ) |
Deletes a property from an object.
| ctx | The execution context to use. |
| object | The JSObject whose property you want to delete. |
| propertyName | A JSString containing the property's name. |
| exception | A pointer to a JSValueRef in which to store an exception, if any. Pass NULL if you do not care to store an exception. |
| bool JSObjectDeletePropertyForKey | ( | JSContextRef | ctx, |
| JSObjectRef | object, | ||
| JSValueRef | propertyKey, | ||
| JSValueRef * | exception ) |
Deletes a property from an object using a JSValueRef as the property key.
| ctx | The execution context to use. |
| object | The JSObject whose property you want to delete. |
| propertyKey | A JSValueRef containing the property key to use when looking up the property. |
| exception | A pointer to a JSValueRef in which to store an exception, if any. Pass NULL if you do not care to store an exception. |
| void * JSObjectGetPrivate | ( | JSObjectRef | object | ) |
Gets an object's private data.
| object | A JSObject whose private data you want to get. |
| JSValueRef JSObjectGetProperty | ( | JSContextRef | ctx, |
| JSObjectRef | object, | ||
| JSStringRef | propertyName, | ||
| JSValueRef * | exception ) |
Gets a property from an object.
| ctx | The execution context to use. |
| object | The JSObject whose property you want to get. |
| propertyName | A JSString containing the property's name. |
| exception | A pointer to a JSValueRef in which to store an exception, if any. Pass NULL if you do not care to store an exception. |
| JSValueRef JSObjectGetPropertyAtIndex | ( | JSContextRef | ctx, |
| JSObjectRef | object, | ||
| unsigned | propertyIndex, | ||
| JSValueRef * | exception ) |
Gets a property from an object by numeric index.
| ctx | The execution context to use. |
| object | The JSObject whose property you want to get. |
| propertyIndex | An integer value that is the property's name. |
| exception | A pointer to a JSValueRef in which to store an exception, if any. Pass NULL if you do not care to store an exception. |
| JSValueRef JSObjectGetPropertyForKey | ( | JSContextRef | ctx, |
| JSObjectRef | object, | ||
| JSValueRef | propertyKey, | ||
| JSValueRef * | exception ) |
Gets a property from an object using a JSValueRef as the property key.
| ctx | The execution context to use. |
| object | The JSObject whose property you want to get. |
| propertyKey | A JSValueRef containing the property key to use when looking up the property. |
| exception | A pointer to a JSValueRef in which to store an exception, if any. Pass NULL if you do not care to store an exception. |
| JSValueRef JSObjectGetPrototype | ( | JSContextRef | ctx, |
| JSObjectRef | object ) |
Gets an object's prototype.
| ctx | The execution context to use. |
| object | A JSObject whose prototype you want to get. |
| bool JSObjectHasProperty | ( | JSContextRef | ctx, |
| JSObjectRef | object, | ||
| JSStringRef | propertyName ) |
Tests whether an object has a given property.
| object | The JSObject to test. |
| propertyName | A JSString containing the property's name. |
| bool JSObjectHasPropertyForKey | ( | JSContextRef | ctx, |
| JSObjectRef | object, | ||
| JSValueRef | propertyKey, | ||
| JSValueRef * | exception ) |
Tests whether an object has a given property using a JSValueRef as the property key.
| object | The JSObject to test. |
| propertyKey | A JSValueRef containing the property key to use when looking up the property. |
| exception | A pointer to a JSValueRef in which to store an exception, if any. Pass NULL if you do not care to store an exception. |
| bool JSObjectIsConstructor | ( | JSContextRef | ctx, |
| JSObjectRef | object ) |
Tests whether an object can be called as a constructor.
| ctx | The execution context to use. |
| object | The JSObject to test. |
| bool JSObjectIsFunction | ( | JSContextRef | ctx, |
| JSObjectRef | object ) |
Tests whether an object can be called as a function.
| ctx | The execution context to use. |
| object | The JSObject to test. |
| JSObjectRef JSObjectMake | ( | JSContextRef | ctx, |
| JSClassRef | jsClass, | ||
| void * | data ) |
Creates a JavaScript object.
| ctx | The execution context to use. |
| jsClass | The JSClass to assign to the object. Pass NULL to use the default object class. |
| data | A void* to set as the object's private data. Pass NULL to specify no private data. |
The default object class does not allocate storage for private data, so you must provide a non-NULL jsClass to JSObjectMake if you want your object to be able to store private data.
data is set on the created object before the intialize methods in its class chain are called. This enables the initialize methods to retrieve and manipulate data through JSObjectGetPrivate.
| JSObjectRef JSObjectMakeArray | ( | JSContextRef | ctx, |
| size_t | argumentCount, | ||
| const JSValueRef | arguments[], | ||
| JSValueRef * | exception ) |
Creates a JavaScript Array object.
| ctx | The execution context to use. |
| argumentCount | An integer count of the number of arguments in arguments. |
| arguments | A JSValue array of data to populate the Array with. Pass NULL if argumentCount is 0. |
| exception | A pointer to a JSValueRef in which to store an exception, if any. Pass NULL if you do not care to store an exception. |
| JSObjectRef JSObjectMakeConstructor | ( | JSContextRef | ctx, |
| JSClassRef | jsClass, | ||
| JSObjectCallAsConstructorCallback | callAsConstructor ) |
Convenience method for creating a JavaScript constructor.
| ctx | The execution context to use. |
| jsClass | A JSClass that is the class your constructor will assign to the objects its constructs. jsClass will be used to set the constructor's .prototype property, and to evaluate 'instanceof' expressions. Pass NULL to use the default object class. |
| callAsConstructor | A JSObjectCallAsConstructorCallback to invoke when your constructor is used in a 'new' expression. Pass NULL to use the default object constructor. |
| JSObjectRef JSObjectMakeDate | ( | JSContextRef | ctx, |
| size_t | argumentCount, | ||
| const JSValueRef | arguments[], | ||
| JSValueRef * | exception ) |
Creates a JavaScript Date object, as if by invoking the built-in Date constructor.
| ctx | The execution context to use. |
| argumentCount | An integer count of the number of arguments in arguments. |
| arguments | A JSValue array of arguments to pass to the Date Constructor. Pass NULL if argumentCount is 0. |
| exception | A pointer to a JSValueRef in which to store an exception, if any. Pass NULL if you do not care to store an exception. |
| JSObjectRef JSObjectMakeDeferredPromise | ( | JSContextRef | ctx, |
| JSObjectRef * | resolve, | ||
| JSObjectRef * | reject, | ||
| JSValueRef * | exception ) |
Creates a JavaScript promise object by invoking the provided executor.
| ctx | The execution context to use. |
| resolve | A pointer to a JSObjectRef in which to store the resolve function for the new promise. Pass NULL if you do not care to store the resolve callback. |
| reject | A pointer to a JSObjectRef in which to store the reject function for the new promise. Pass NULL if you do not care to store the reject callback. |
| exception | A pointer to a JSValueRef in which to store an exception, if any. Pass NULL if you do not care to store an exception. |
| JSObjectRef JSObjectMakeError | ( | JSContextRef | ctx, |
| size_t | argumentCount, | ||
| const JSValueRef | arguments[], | ||
| JSValueRef * | exception ) |
Creates a JavaScript Error object, as if by invoking the built-in Error constructor.
| ctx | The execution context to use. |
| argumentCount | An integer count of the number of arguments in arguments. |
| arguments | A JSValue array of arguments to pass to the Error Constructor. Pass NULL if argumentCount is 0. |
| exception | A pointer to a JSValueRef in which to store an exception, if any. Pass NULL if you do not care to store an exception. |
| JSObjectRef JSObjectMakeFunction | ( | JSContextRef | ctx, |
| JSStringRef | name, | ||
| unsigned | parameterCount, | ||
| const JSStringRef | parameterNames[], | ||
| JSStringRef | body, | ||
| JSStringRef | sourceURL, | ||
| int | startingLineNumber, | ||
| JSValueRef * | exception ) |
Creates a function with a given script as its body.
| ctx | The execution context to use. |
| name | A JSString containing the function's name. This will be used when converting the function to string. Pass NULL to create an anonymous function. |
| parameterCount | An integer count of the number of parameter names in parameterNames. |
| parameterNames | A JSString array containing the names of the function's parameters. Pass NULL if parameterCount is 0. |
| body | A JSString containing the script to use as the function's body. |
| sourceURL | A JSString containing a URL for the script's source file. This is only used when reporting exceptions. Pass NULL if you do not care to include source file information in exceptions. |
| startingLineNumber | An integer value specifying the script's starting line number in the file located at sourceURL. This is only used when reporting exceptions. The value is one-based, so the first line is line 1 and invalid values are clamped to 1. |
| exception | A pointer to a JSValueRef in which to store a syntax error exception, if any. Pass NULL if you do not care to store a syntax error exception. |
| JSObjectRef JSObjectMakeFunctionWithCallback | ( | JSContextRef | ctx, |
| JSStringRef | name, | ||
| JSObjectCallAsFunctionCallback | callAsFunction ) |
Convenience method for creating a JavaScript function with a given callback as its implementation.
| ctx | The execution context to use. |
| name | A JSString containing the function's name. This will be used when converting the function to string. Pass NULL to create an anonymous function. |
| callAsFunction | The JSObjectCallAsFunctionCallback to invoke when the function is called. |
| JSObjectRef JSObjectMakeRegExp | ( | JSContextRef | ctx, |
| size_t | argumentCount, | ||
| const JSValueRef | arguments[], | ||
| JSValueRef * | exception ) |
Creates a JavaScript RegExp object, as if by invoking the built-in RegExp constructor.
| ctx | The execution context to use. |
| argumentCount | An integer count of the number of arguments in arguments. |
| arguments | A JSValue array of arguments to pass to the RegExp Constructor. Pass NULL if argumentCount is 0. |
| exception | A pointer to a JSValueRef in which to store an exception, if any. Pass NULL if you do not care to store an exception. |
| bool JSObjectSetPrivate | ( | JSObjectRef | object, |
| void * | data ) |
Sets a pointer to private data on an object.
| object | The JSObject whose private data you want to set. |
| data | A void* to set as the object's private data. |
| void JSObjectSetProperty | ( | JSContextRef | ctx, |
| JSObjectRef | object, | ||
| JSStringRef | propertyName, | ||
| JSValueRef | value, | ||
| JSPropertyAttributes | attributes, | ||
| JSValueRef * | exception ) |
Sets a property on an object.
| ctx | The execution context to use. |
| object | The JSObject whose property you want to set. |
| propertyName | A JSString containing the property's name. |
| value | A JSValueRef to use as the property's value. |
| attributes | A logically ORed set of JSPropertyAttributes to give to the property. |
| exception | A pointer to a JSValueRef in which to store an exception, if any. Pass NULL if you do not care to store an exception. |
| void JSObjectSetPropertyAtIndex | ( | JSContextRef | ctx, |
| JSObjectRef | object, | ||
| unsigned | propertyIndex, | ||
| JSValueRef | value, | ||
| JSValueRef * | exception ) |
Sets a property on an object by numeric index.
| ctx | The execution context to use. |
| object | The JSObject whose property you want to set. |
| propertyIndex | The property's name as a number. |
| value | A JSValue to use as the property's value. |
| exception | A pointer to a JSValueRef in which to store an exception, if any. Pass NULL if you do not care to store an exception. |
| void JSObjectSetPropertyForKey | ( | JSContextRef | ctx, |
| JSObjectRef | object, | ||
| JSValueRef | propertyKey, | ||
| JSValueRef | value, | ||
| JSPropertyAttributes | attributes, | ||
| JSValueRef * | exception ) |
Sets a property on an object using a JSValueRef as the property key.
| ctx | The execution context to use. |
| object | The JSObject whose property you want to set. |
| propertyKey | A JSValueRef containing the property key to use when looking up the property. |
| value | A JSValueRef to use as the property's value. |
| attributes | A logically ORed set of JSPropertyAttributes to give to the property. |
| exception | A pointer to a JSValueRef in which to store an exception, if any. Pass NULL if you do not care to store an exception. |
| void JSObjectSetPrototype | ( | JSContextRef | ctx, |
| JSObjectRef | object, | ||
| JSValueRef | value ) |
Sets an object's prototype.
| ctx | The execution context to use. |
| object | The JSObject whose prototype you want to set. |
| value | A JSValue to set as the object's prototype. |
| void JSPropertyNameAccumulatorAddName | ( | JSPropertyNameAccumulatorRef | accumulator, |
| JSStringRef | propertyName ) |
Adds a property name to a JavaScript property name accumulator.
| accumulator | The accumulator object to which to add the property name. |
| propertyName | The property name to add. |
| size_t JSPropertyNameArrayGetCount | ( | JSPropertyNameArrayRef | array | ) |
Gets a count of the number of items in a JavaScript property name array.
| array | The array from which to retrieve the count. |
| JSStringRef JSPropertyNameArrayGetNameAtIndex | ( | JSPropertyNameArrayRef | array, |
| size_t | index ) |
Gets a property name at a given index in a JavaScript property name array.
| array | The array from which to retrieve the property name. |
| index | The index of the property name to retrieve. |
| void JSPropertyNameArrayRelease | ( | JSPropertyNameArrayRef | array | ) |
Releases a JavaScript property name array.
| array | The JSPropetyNameArray to release. |
| JSPropertyNameArrayRef JSPropertyNameArrayRetain | ( | JSPropertyNameArrayRef | array | ) |
Retains a JavaScript property name array.
| array | The JSPropertyNameArray to retain. |
|
extern |
A JSClassDefinition structure of the current version, filled with NULL pointers and having no attributes.
@const kJSClassDefinitionEmpty
Use this constant as a convenience when creating class definitions. For example, to create a class definition with only a finalize method:
JSClassDefinition definition = kJSClassDefinitionEmpty; definition.finalize = Finalize;
| typedef unsigned JSClassAttributes |
A set of JSClassAttributes. Combine multiple attributes by logically ORing them together.
| typedef JSObjectRef(*) JSObjectCallAsConstructorCallback(JSContextRef ctx, JSObjectRef constructor, size_t argumentCount, const JSValueRef arguments[], JSValueRef *exception) |
The callback invoked when an object is used as a constructor in a 'new' expression.
| ctx | The execution context to use. |
| constructor | A JSObject that is the constructor being called. |
| argumentCount | An integer count of the number of arguments in arguments. |
| arguments | A JSValue array of the arguments passed to the function. |
| exception | A pointer to a JSValueRef in which to return an exception, if any. |
If you named your function CallAsConstructor, you would declare it like this:
JSObjectRef CallAsConstructor(JSContextRef ctx, JSObjectRef constructor, size_t argumentCount, const JSValueRef arguments[], JSValueRef* exception);
If your callback were invoked by the JavaScript expression 'new myConstructor()', constructor would be set to myConstructor.
If this callback is NULL, using your object as a constructor in a 'new' expression will throw an exception.
| typedef JSValueRef(*) JSObjectCallAsFunctionCallback(JSContextRef ctx, JSObjectRef function, JSObjectRef thisObject, size_t argumentCount, const JSValueRef arguments[], JSValueRef *exception) |
The callback invoked when an object is called as a function.
| ctx | The execution context to use. |
| function | A JSObject that is the function being called. |
| thisObject | A JSObject that is the 'this' variable in the function's scope. |
| argumentCount | An integer count of the number of arguments in arguments. |
| arguments | A JSValue array of the arguments passed to the function. |
| exception | A pointer to a JSValueRef in which to return an exception, if any. |
If you named your function CallAsFunction, you would declare it like this:
JSValueRef CallAsFunction(JSContextRef ctx, JSObjectRef function, JSObjectRef thisObject, size_t argumentCount, const JSValueRef arguments[], JSValueRef* exception);
If your callback were invoked by the JavaScript expression 'myObject.myFunction()', function would be set to myFunction, and thisObject would be set to myObject.
If this callback is NULL, calling your object as a function will throw an exception.
| typedef JSValueRef(*) JSObjectConvertToTypeCallback(JSContextRef ctx, JSObjectRef object, JSType type, JSValueRef *exception) |
The callback invoked when converting an object to a particular JavaScript type.
| ctx | The execution context to use. |
| object | The JSObject to convert. |
| type | A JSType specifying the JavaScript type to convert to. |
| exception | A pointer to a JSValueRef in which to return an exception, if any. |
If you named your function ConvertToType, you would declare it like this:
JSValueRef ConvertToType(JSContextRef ctx, JSObjectRef object, JSType type, JSValueRef* exception);
If this function returns false, the conversion request forwards to object's parent class chain (which includes the default object class).
This function is only invoked when converting an object to number or string. An object converted to boolean is 'true.' An object converted to object is itself.
| typedef bool(*) JSObjectDeletePropertyCallback(JSContextRef ctx, JSObjectRef object, JSStringRef propertyName, JSValueRef *exception) |
The callback invoked when deleting a property.
| ctx | The execution context to use. |
| object | The JSObject in which to delete the property. |
| propertyName | A JSString containing the name of the property to delete. |
| exception | A pointer to a JSValueRef in which to return an exception, if any. |
If you named your function DeleteProperty, you would declare it like this:
bool DeleteProperty(JSContextRef ctx, JSObjectRef object, JSStringRef propertyName, JSValueRef* exception);
If this function returns false, the delete request forwards to object's statically declared properties, then its parent class chain (which includes the default object class).
| typedef void(*) JSObjectFinalizeCallback(JSObjectRef object) |
The callback invoked when an object is finalized (prepared for garbage collection). An object may be finalized on any thread.
| object | The JSObject being finalized. |
If you named your function Finalize, you would declare it like this:
void Finalize(JSObjectRef object);
The finalize callback is called on the most derived class first, and the least derived class (the parent class) last.
You must not call any function that may cause a garbage collection or an allocation of a garbage collected object from within a JSObjectFinalizeCallback. This includes all functions that have a JSContextRef parameter.
| typedef JSValueRef(*) JSObjectGetPropertyCallback(JSContextRef ctx, JSObjectRef object, JSStringRef propertyName, JSValueRef *exception) |
The callback invoked when getting a property's value.
| ctx | The execution context to use. |
| object | The JSObject to search for the property. |
| propertyName | A JSString containing the name of the property to get. |
| exception | A pointer to a JSValueRef in which to return an exception, if any. |
If you named your function GetProperty, you would declare it like this:
JSValueRef GetProperty(JSContextRef ctx, JSObjectRef object, JSStringRef propertyName, JSValueRef* exception);
If this function returns NULL, the get request forwards to object's statically declared properties, then its parent class chain (which includes the default object class), then its prototype chain.
| typedef void(*) JSObjectGetPropertyNamesCallback(JSContextRef ctx, JSObjectRef object, JSPropertyNameAccumulatorRef propertyNames) |
The callback invoked when collecting the names of an object's properties.
| ctx | The execution context to use. |
| object | The JSObject whose property names are being collected. |
| propertyNames | A JavaScript property name accumulator in which to accumulate the names of object's properties. |
If you named your function GetPropertyNames, you would declare it like this:
void GetPropertyNames(JSContextRef ctx, JSObjectRef object, JSPropertyNameAccumulatorRef propertyNames);
Property name accumulators are used by JSObjectCopyPropertyNames and JavaScript for...in loops.
Use JSPropertyNameAccumulatorAddName to add property names to accumulator. A class's getPropertyNames callback only needs to provide the names of properties that the class vends through a custom getProperty or setProperty callback. Other properties, including statically declared properties, properties vended by other classes, and properties belonging to object's prototype, are added independently.
| typedef bool(*) JSObjectHasInstanceCallback(JSContextRef ctx, JSObjectRef constructor, JSValueRef possibleInstance, JSValueRef *exception) |
hasInstance The callback invoked when an object is used as the target of an 'instanceof' expression.
| ctx | The execution context to use. |
| constructor | The JSObject that is the target of the 'instanceof' expression. |
| possibleInstance | The JSValue being tested to determine if it is an instance of constructor. |
| exception | A pointer to a JSValueRef in which to return an exception, if any. |
If you named your function HasInstance, you would declare it like this:
bool HasInstance(JSContextRef ctx, JSObjectRef constructor, JSValueRef possibleInstance, JSValueRef* exception);
If your callback were invoked by the JavaScript expression 'someValue instanceof myObject', constructor would be set to myObject and possibleInstance would be set to someValue.
If this callback is NULL, 'instanceof' expressions that target your object will return false.
Standard JavaScript practice calls for objects that implement the callAsConstructor callback to implement the hasInstance callback as well.
| typedef bool(*) JSObjectHasPropertyCallback(JSContextRef ctx, JSObjectRef object, JSStringRef propertyName) |
The callback invoked when determining whether an object has a property.
| ctx | The execution context to use. |
| object | The JSObject to search for the property. |
| propertyName | A JSString containing the name of the property look up. |
If you named your function HasProperty, you would declare it like this:
bool HasProperty(JSContextRef ctx, JSObjectRef object, JSStringRef propertyName);
If this function returns false, the hasProperty request forwards to object's statically declared properties, then its parent class chain (which includes the default object class), then its prototype chain.
This callback enables optimization in cases where only a property's existence needs to be known, not its value, and computing its value would be expensive.
If this callback is NULL, the getProperty callback will be used to service hasProperty requests.
| typedef void(*) JSObjectInitializeCallback(JSContextRef ctx, JSObjectRef object) |
The callback invoked when an object is first created.
| ctx | The execution context to use. |
| object | The JSObject being created. |
If you named your function Initialize, you would declare it like this:
void Initialize(JSContextRef ctx, JSObjectRef object);
Unlike the other object callbacks, the initialize callback is called on the least derived class (the parent class) first, and the most derived class last.
| typedef bool(*) JSObjectSetPropertyCallback(JSContextRef ctx, JSObjectRef object, JSStringRef propertyName, JSValueRef value, JSValueRef *exception) |
The callback invoked when setting a property's value.
| ctx | The execution context to use. |
| object | The JSObject on which to set the property's value. |
| propertyName | A JSString containing the name of the property to set. |
| value | A JSValue to use as the property's value. |
| exception | A pointer to a JSValueRef in which to return an exception, if any. |
If you named your function SetProperty, you would declare it like this:
bool SetProperty(JSContextRef ctx, JSObjectRef object, JSStringRef propertyName, JSValueRef value, JSValueRef* exception);
If this function returns false, the set request forwards to object's statically declared properties, then its parent class chain (which includes the default object class).
| typedef unsigned JSPropertyAttributes |
A set of JSPropertyAttributes. Combine multiple attributes by logically ORing them together.
| anonymous enum |