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.