私は、BlackBerry OS7ブラウザ上で次のコードを試してみました:GWTアプリケーションがブラックベリーOS7でクラッシュするのはなぜですか?
<html>
<body>
test page
<script>
i = 0;
if(i < -2147483647) {
alert("very low")
}
if(i < -2147483648) {
alert("very very low")
}
if(i < -2147483649) {
alert("very very very low")
}
</script></body></html>
をそして驚くべきことには、非常に非常に低いと出てきました!
私はJavaScriptの整数がそれ以上のものをサポートすると考えていました。もちろん、このコードは他のブラウザでもうまくいきます...
難しいことは、ブラックベリーでgwtアプリケーションを実行しようとしていることです。それはOS6ではうまく動作しましたが、OS7では正常に動作しませんでした。私はGWTでコンパイルされたコードをデバッグし、Integer.parseIntのjavascript実装でintの極端な極端な極端な値を使用したテストが行われます。 OS7ブラウザはこれらの極端な値を適切にサポートしていないようです(ビットオーバーフロー?)例外が発生し、アプリケーションが起動しません...
私はその解決策を探しています。私はGWT integer.parseInt実装をブラックベリーのために書き直すことを考えています。どう思いますか?他のアイデア?
は多分再バインドは多分自分の財産プロバイダで、エレガントな解決策になる - OS7が使用するブラウザの順列は何ですか? – MarioP
これは実際にWebkitベースのブラウザなので、私が推測するサファリの順列です。私たちはGWTでinteger.parseInt()メソッドを再バインドすることを検討していますが、まだ方法が見つかりませんでした。 Rebindingは、確かにエレガントな回避策です。私たちが何かを見つけたら解決策を投稿します。 – twingocerise
ああ、Integerを拡張することができないため、通常の再バインドは機能しません。また、parseIntは静的です。もう一つの解決策があります:スーパーソーシングを行うこと。しかし、それはIntegerのすべての関数とフィールドを実装する必要があります。シリアライズする場合(非同期呼び出しなど)にはさらに複雑になります。まだ再バインディングが不可能なので、新しいクラスはすべての順列で使用されます。もし望めば、私はあなたにそれについてもっと情報を与えてくれるでしょうが、それは本当に希望の最後の光線です。 – MarioP