return で セミコロンが補完されてしまうのを防ぐ

uupaa.js のビルドツールは、必要な機能のみをビルドすることができます。

//{@mb
  if (uu.ie) {
    alert("IE用の特別な処理だよ");
  } else {
//}@mb
    alert("IE以外の処理だよ");
//{@mb
  }
//}@mb

このコードを、MobileWebKitモード( {@mb から }@mb までを削除) でビルド

% build/upa.php -mb

すると、次のような形に変化します。

    alert("IE以外の処理だよ");

無駄な処理が削れるため、速度も向上しスクリプトも小さくなります。便利ですね。

問題は return + セミコロンの自動補完

  return /*{@mb*/ uu.ie ? "IE用の特別な処理だよ" : /*}@mb*/
                          "IE以外の処理だよ";

このようなコードを build/upa.php -mb でビルトすると、こうなってしまいます。

  return 
                          "IE以外の処理だよ";

これは

  return; 
  "IE以外の処理だよ";

のように return + ; の形で評価されてしまいます。

仕方ないので、この場合はこうしましょう

  return ( /*{@mb*/ uu.ie ? "IE用の特別な処理だよ" : /*}@mb*/
                            "IE以外の処理だよ" );

return (expression); のように、式の前後に ( ) を付けて セミコロン; の自動挿入を阻止してください。