シングルコンテキストでTi.UI.currentWindowやTi.UI.currentTabがundefinedになるのを回避する方法

Titaniumはシングルコンテキストで書くのが最近の流儀のようですが、
その場合Ti.UI.currentWindowにアクセスしようとしたら以下のようなエラーが出てしまいました。

[ERROR] Script Error = Result of expression 'Ti.UI.currentWindow' [undefined] is not an object. (unknown file).


そこで、focusイベントを利用して今選択中のウインドウが取得出来るようにしました。


app.js グローバル変数を定義

var ActiveWinTab = {};


AppWindow.js グローバル変数にwindowオブジェクトを紐付ける

self.addEventListener('focus', function(e){
    ActiveWinTab.activeWindow = self;
});


SecondView.js windowを閉じる

ActiveWinTab.activeWindow.close();


これで回避出来ました。



同様にTi.UI.currentTabもundefinedになって取得出来なかったので、こちらもグルーバル変数にTabGroupを紐付けるようにしました。
app.js

ActiveWinTab.tabs = require('ui/AppTabGroup').AppTabGroup();


FirstView.js TabGroup.activeTabを利用して現在のタブを取得

ActiveWinTab.tabs.activeTab.open(win);


これで無事undefined問題を回避出来ました!
Web上でも同じ問題が出た人が何人かいましたが、これはバグなのか仕様なのかどちらでしょうか・・・
※上記の回避方法はappceleratorのQ&Aで見たのですが、今探してもどこに書いてあったか見つけられませんでした


他にも回避方法やそもそも問題が起きない実装方法があるのかもしれません。
ご存知の方がいれば教えて下さい!

サンプルソースこちら