2012-02-25 118 views
9

在Firebug的控制檯簡單的JavaScript代碼的Firefox崩潰

var a = []; 
a[0] = a; 

崩潰的Firefox!

爲什麼?

編輯:

  1. 這種說法在邏輯上是正確的,並沒有什麼不好引用遞歸。因此,這是一個在 瀏覽器 Firebug中的錯誤。
  2. 在Chrome和Opera中正常工作。
  3. 我使用Firebug和Firefox
  4. 的最後一個官方版本

編輯2:它崩潰在Firebug的控制檯和本地Firefox網頁控制檯進行

+0

非常有趣,推動數組本身。我認爲這是一個無限遞歸,這就是爲什麼它崩潰FF,並可能會崩潰任何瀏覽器。你打算使用這種數組的目的是什麼? – Teemu 2012-02-25 10:46:57

+0

@GGG嗯,當將第一個數組分配到同一個數組的第一個索引(或任何索引)時,分配將一直持續。這不是一個崩潰? – Teemu 2012-02-25 10:52:31

+0

@Teemu nope,在控制檯中嘗試它......它創建一個引用自身屬性的對象,但這並不罕見('window.self','window.top'等)。 – 2012-02-25 10:54:42

回答

4

我認爲這是一個螢火蟲的bug。

它在內置的firefox控制檯(ctrl + shift + k),鍍鉻控制檯和Opera控制檯中工作正常。

我會用螢火蟲提交錯誤報告。

+1

錯誤:http://code.google.com/p/fbug/issues/detail?id=3663 – Kato 2012-05-22 18:07:00

2

但是你有什麼本質上的錯誤行爲那是,正在構建一個「包含」自身的數據結構(實際上包含對自身的引用)。

當顯示這種結構如果代碼尚未寫入思考這種可能性很可能是調試器將永遠遞歸(最多SO :-)),試圖去無限鏈的末端

a[0][0][0][0]... 
+2

有趣的是,它在Chrome中運行得很好,一旦你展開它,它似乎只檢查一個對象的屬性。現在我想知道'top.top.top ...'不會破壞螢火蟲。 – 2012-02-25 10:49:31

+0

加油!它不會創建[0] [0] ....!該引用是有效的,但沒有單獨的對象,它引用相同的__a__ @ – Viller 2012-02-25 11:06:10

+0

@Viller:沒有人這麼說。問題是,如果Firebug用來轉換爲字符串表示的算法能夠處理自引用數組。 – 6502 2012-02-25 11:44:47