Hi, thank you for the feedback!
The constructor call now works, but the setProperty call does not seem to get forwarded. If i do (new SubClass()).someProperty = true; the setProperty method of the TestClass/parent class is not called. getProperty is called though. There does not seem to be any Object.defineProperty API on the C level? Thank you, Moritz On 03 Oct 2014, at 1:37 , Geoffrey Garen <gga...@apple.com> wrote: > …Yet another option is to insert Function.prototype into the TestClass > prototype chain. > > Geoff > >> On Oct 2, 2014, at 4:37 PM, Geoffrey Garen <gga...@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 <mmoel...@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@lists.webkit.org >>> https://lists.webkit.org/mailman/listinfo/webkit-dev >> >> _______________________________________________ >> webkit-dev mailing list >> webkit-dev@lists.webkit.org >> https://lists.webkit.org/mailman/listinfo/webkit-dev >
_______________________________________________ webkit-dev mailing list webkit-dev@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-dev