読みにくくてすみませんが、以下のコードのうち、*1と*2は問題なく、
*3と*4はエラーが出るのはなぜですか?
VMの仕様でしょうか?
(継承時に子のメソッド内で親のコンストラクタ呼び出しは認められない?)

class Fuga extends Layer {
function Fuga(){ super.Layer(...); }
}
function HogeFunc(){
return (new Hoge(kag, kag.fore.base));
}

class Hoge extends Layer {
var tmp;
function Hoge(){ super.Layer(...); }
function hoge(){ new Hoge(kag, kag.fore.base); }
function fuga(){
tmp = new Fuga(kag, kag.fore.base); // *1
tmp = HogeFunc(); // *2
tmp = new Layer(kag, kag.fore.base); // *3
tmp = new Hoge(kag, kag.fore.base); // *4
}
}
var hoge = new Hoge(kag, kag.fore.base);
hoge.fuga();