Thanks again Jens.  Issue 
raised:  https://github.com/google/closure-compiler/issues/4250

On Monday, 28 July 2025 at 6:55:23 pm UTC+10 Jens wrote:

> Because it is only a dictionary (= a plain JS object)
>
> https://registry.khronos.org/webgl/specs/latest/1.0/#5.2
>
> In JS you simply do:
>
> var canvas = document.getElementById('canvas');
> var context = canvas.getContext('webgl', { antialias: false, stencil: true 
> }); // 2nd argument is WebGLContextAttributes
> var attributes = context.getContextAttributes();
>
> Looks like it is again defined badly in closure-compiler externs. The 
> generated elemental2 implementation should have a similar structure than 
> for example elemental2 AddEventListenerOption. It is an interface with a 
> static create() method which does exactly what you do in your solution.
>
> See:
>
>
> https://github.com/google/closure-compiler/blob/dc7f38bb0528b011984ef33a448c7941cf7e0b88/externs/browser/webgl.js#L2918
>
> I think it should be @interface or @record instead of @constructor.
>
>
> -- J.
>
> Craig Mitchell schrieb am Montag, 28. Juli 2025 um 07:39:57 UTC+2:
>
>> I'm switching to use Elemental2, and it's fantastic.  All the bindings 
>> I'll ever need.  A big thank you to all that created it!
>>
>> There are some strange things though.  Like when setting up a 
>> WebGLRenderingContext, we need to pass WebGLContextAttributes.
>>
>> However, doing:
>> WebGLContextAttributes contextAttributes = new WebGLContextAttributes();
>>
>> compiles fine, but at runtime throws:
>> TypeError: $wnd.WebGLContextAttributes is not a constructor
>>
>> I figured out I can do this instead:
>> WebGLContextAttributes contextAttributes = Js.uncheckedCast(JsPropertyMap
>> .of());
>>
>> But why can't I just use its constructor?  Am I doing something wrong?
>>
>

-- 
You received this message because you are subscribed to the Google Groups "GWT 
Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion visit 
https://groups.google.com/d/msgid/google-web-toolkit/199513d3-ed5c-4d9f-a91b-21ebd465567bn%40googlegroups.com.

Reply via email to