2014-10-03 45 views
4

我有一個簡單的項目,執行一些通用數組計算並將結果返回到網格中。我需要一個簡短的方式來掃描最大值的陣列,通過這個嘗試:腳本調試器報告「操作不允許」

var max = Math.max.bind(Math.max); 
var vector_max = Function.apply.bind(max, null); 

現在,這個時候我沒有調試的偉大工程。但是,如果我環繞的任何聲明的測試功能,如,說:

function tester() { 
    var r = 0; 
    return r; 
} 

...,在這個函數中的任何地方設置一個斷點,然後單擊調試,我得到一個錯誤:

"Typeerror: This operation is not allowed. (line XXX, file xxx)" 

即使在連接到空白工作表的全新腳本中也會發生這種情況。當然,Google沒有關於腳本調試器的文檔,也沒有提及任何限制,所以我完全處於黑暗中。

任何想法?

回答

2

我也可以重現這一點。它確實看起來像在調試器中的錯誤! :)

您應該在Apps Script issue tracker中報告此問題。同時爲你的vector_max函數使用另一個實現來調試你的代碼。例如:

function vector_max(a){ return a.reduce(function(r,v){ return r < v ? v : r; }, -Infinity); } 
+0

已提交錯誤報告。我有一個解決方法,但代碼更加混亂。 :(我敢打賭,這是一個沒有文檔記錄的設計限制,並不一定是一個bug,這些重新引用的函數調用很難正確追蹤和拆分,所以他們只是將它遺漏了,我只是希望他們讓我們知道。 – HardScale 2014-10-04 14:59:45