Did you make sure to indicate, using the C API, that TestClass/parent class was the parent class of SubClass?
Geoff > On Oct 5, 2014, at 4:48 AM, Moritz Moeller <mmoel...@mxs.de> wrote: > > 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 > <mailto: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 >>> <mailto: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 >>>> <mailto: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 <mailto:webkit-dev@lists.webkit.org> >>>> https://lists.webkit.org/mailman/listinfo/webkit-dev >>>> <https://lists.webkit.org/mailman/listinfo/webkit-dev> >>> >>> _______________________________________________ >>> webkit-dev mailing list >>> webkit-dev@lists.webkit.org <mailto:webkit-dev@lists.webkit.org> >>> https://lists.webkit.org/mailman/listinfo/webkit-dev >>> <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