On Tuesday, September 13, 2016 at 4:08:38 PM UTC+2, Kirill Prazdnikov wrote:
>
>
>> See https://github.com/gwtproject/gwt/issues/9330
>> You must be missing an isNative=true on ClientRect 
>>
>
> Ok, but what does it mean when a type has a @JsProperty but it is not 
> "isNative=true" ?
>
> Must each class with JsProperties be "isNative=true" ?
>

See comments on the linked issue: if it's not isNative=true, then from the 
PoV of GWT it's a normal Java type and will be pruned if it's never 
instantiated; unless you -generateJsInteropExports in which case you expose 
its constructor to the JS world (and GWT can no longer tell if it's ever 
instantiated, so it doesn't prune it; if I'm not mistaken).
Because GWT can tell here (you didn't use -generateJsInteropExports, 
right?) that you never instantiate the ClientRect, it prunes it, which 
means that anything that returns it from JS must be returning 'null' or 
'undefined' (remember: you don't instantiate it, and you don't expose a way 
for JS to instantiate it, so it cannot ever be instantiated and it's then 
safe to assume that it can only be null); which leads to this code calling 
null.$_nullMethod(), which is GWT's way of representing 
NullPointerExceptions in JS.

ClientRect here represents/maps an object that comes from the JS world, so 
it should be isNative=true. If you don't use isNative=true, it means it's 
an object from your app that you'll expose for consumption by JS (iff you 
use -generateJsInteropExports; otherwise jsinterop annotations are just 
ignored).

-- 
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 post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/google-web-toolkit.
For more options, visit https://groups.google.com/d/optout.

Reply via email to