Hello, I need some help with some JS bindings code. I am implementing CountQueuingStrategy [1], which is an object containing two properties, one of them a function. That strategy is passed to another ReadableStream object [2] and as you can see at step 8, the size method is extracted from the strategy and kept inside the stream for later use. That use happens at [3], step 5.b.i, when the spec says that we have to pass undefined as this (and we do).
[1] https://streams.spec.whatwg.org/#cqs-class [2] https://streams.spec.whatwg.org/#rs-constructor [3] https://streams.spec.whatwg.org/#enqueue-in-readable-stream The problem comes when invoking that method at the generated bindings: EncodedJSValue JSC_HOST_CALL jsCountQueuingStrategyPrototypeFunctionSize(ExecState* exec) { JSValue thisValue = exec->thisValue(); JSCountQueuingStrategy* castedThis = jsDynamicCast<JSCountQueuingStrategy*>(thisValue); if (UNLIKELY(!castedThis)) return throwThisTypeError(*exec, "CountQueuingStrategy", "size"); ASSERT_GC_OBJECT_INHERITS(castedThis, JSCountQueuingStrategy::info()); return JSValue::encode(castedThis->size(exec)); } The problem is that it checks that "this" casts to the class and of course it fails because the spec says it has to be undefined. I haven't found any way to overcome this, even making the method custom. Any ideas here? Thanks in advance and best regards.
signature.asc
Description: This is a digitally signed message part
_______________________________________________ webkit-dev mailing list webkit-dev@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-dev