[webkit-dev] JavaScriptCore subclass native class created with JSClassCreate in javascript code
Geoffrey Garen
ggaren at apple.com
Thu Oct 2 16:37:51 PDT 2014
…Yet another option is to insert Function.prototype into the TestClass prototype chain.
Geoff
> On Oct 2, 2014, at 4:37 PM, Geoffrey Garen <ggaren at apple.com> wrote:
>
> You’ll need to manually copy Function.prototype.apply to the TestClass prototype.
>
> Another option is “Function.prototype.apply.call(TestClass, this, arguments)”.
>
> Geoff
>
>> On Oct 2, 2014, at 8:26 AM, Moritz Moeller <mmoeller at mxs.de <mailto:mmoeller at mxs.de>> wrote:
>>
>> Hi,
>>
>> I’ve created a javascript class in native code (i.e. JSClassCreate, JSObjectMakeConstructor etc.) and want to subclass this class in javascript.
>>
>> So pretty much:
>>
>> JSClassDefinition classDef = kJSClassDefinitionEmpty;
>> classDef.className = "TestClass";
>> classDef.getProperty = class_getProperty;
>> classDef.setProperty = class_setProperty;
>> JSClassRef classRef = JSClassCreate(&classDef);
>> JSObjectRef constructor = JSObjectMakeConstructor(ctx, gClassRef, class_constructor);
>> JSObjectSetProperty(ctx, JSContextGetGlobalObject(ctx), JsString("TestClass"), constructor, 0, NULL);
>>
>> class_constructor does:
>> return JSObjectMake(ctx, classRef, NULL);
>>
>> This works, so I can do
>> var test = new TestClass();
>> test.field = 1;
>>
>> and both class_constructor and class_setProperty is called.
>>
>> Now I’m trying to subclass the TestClass:
>> function SubClass()
>> {
>> TestClass.apply(this, arguments);
>> }
>>
>> here it already got the problem that TestClass - being a constructor - does not have .bind() or .apply().
>>
>> Does someone know how to get this working?
>>
>> Thank you very much,
>>
>> Mo
>> _______________________________________________
>> webkit-dev mailing list
>> webkit-dev at lists.webkit.org <mailto:webkit-dev at lists.webkit.org>
>> https://lists.webkit.org/mailman/listinfo/webkit-dev
>
> _______________________________________________
> webkit-dev mailing list
> webkit-dev at lists.webkit.org
> https://lists.webkit.org/mailman/listinfo/webkit-dev
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.webkit.org/pipermail/webkit-dev/attachments/20141002/c7f768e9/attachment.html>
More information about the webkit-dev
mailing list