I'm sure this is an optimizer bug. 

null.nullField causes the following error at runtime:
SEVERE: (TypeError) : Cannot read property 'nullField' of nullcom.google.gwt
.core.client.JavaScriptException: (TypeError) : Cannot read property 
'nullField' of null
        at Unknown.$compose(http:
//localhost:63342/realtime/app/bower_components/realtime-store/realtime-store.js@41
)

However, the draft compilation javascript works very well.

On Monday, June 30, 2014 10:58:08 PM UTC+8, John A. Tamplin wrote:
>
> Generally, null.nullField means the compiler can prove the value is null 
> at that point, and draft compile skills the optimization that defects a lot 
> of that.  So either it really is always null, or there is an optimizer bug.
> On Jun 30, 2014 10:31 AM, "田传武" <[email protected] <javascript:>> wrote:
>
>> Hello, 
>> The newest @JsType feature is really very fascinating, and works in most 
>> cases. The only issue i found was the wrong null.nullField javascript 
>> output.
>>
>> the compile command:
>>
>> java -cp xxx com.google.gwt.dev.Compiler -war xxx -XnoclassMetadata 
>> -XnocheckCasts -XjsInteropMode JS -XclosureCompiler -style 
>> PRETTY com.goodow.realtime.store.StoreProd
>>
>>
>> Java code:
>>
>> public CollaborativeOperation compose(JsonArray operations) {
>>     final CollaborativeOperation first = 
>> operations.<CollaborativeOperation> get(0);
>>     if (operations.length() == 1) {
>>       return first;
>>     }
>>     final JsonArray components = Json.createArray();
>>     operations.forEach(...);
>>     return new CollaborativeOperation(first.userId, first.sessionId, 
>> components);
>>   }
>>
>>
>> translated to the following javascript:
>>
>>  function $compose(operations) {
>>   var components;
>>   components = operations[0];
>>   if (1 == operations.length) {
>>     return components;
>>   }
>>   components = [];
>>   $forEach(operations, new CollaborativeTransformer$1(components));
>>   return new CollaborativeOperation(null.nullField, null.nullField, 
>> components);
>> }
>>
>>
>>
>> There's an easy workaround to fix this: using the -draftCompile options 
>> when compilation. Here is the full compilation log:
>> https://travis-ci.org/goodow/realtime-store/builds/28777579 (search 
>> for ./gwt-compile.sh)
>>  
>>
>> -- 
>> You received this message because you are subscribed to the Google Groups 
>> "GWT Contributors" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to [email protected] 
>> <javascript:>.
>> To view this discussion on the web visit 
>> https://groups.google.com/d/msgid/google-web-toolkit-contributors/35eb8ed2-588b-484a-b2f4-b58b5bb01f46%40googlegroups.com
>>  
>> <https://groups.google.com/d/msgid/google-web-toolkit-contributors/35eb8ed2-588b-484a-b2f4-b58b5bb01f46%40googlegroups.com?utm_medium=email&utm_source=footer>
>> .
>> For more options, visit https://groups.google.com/d/optout.
>>
>

-- 
You received this message because you are subscribed to the Google Groups "GWT 
Contributors" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/google-web-toolkit-contributors/362b0daf-c174-4021-9bc8-acee19af0cfc%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to