在下面的代码中,我没有使用任何'with statement',但是当我设置断点时,它给了我错误:
SyntaxError: 'with' statements are not valid in strict mode
(function () {
'use strict';
function addItem() {
var orderListElement, newLi, childCount;
orderListElement = document.getElementById('orderList');
newLi = document.createElement('li');
childCount = orderListElement.children.length;
newLi.textContent = 'new item ';
orderListElement.appendChild(newLi);
}
function deleteItem() {
var orderListElement, lastLi;
orderListElement = document.getElementById('orderList');
lastLi = orderListElement.lastChild;
orderListElement.removeChild(lastLi);
}
function registHandler() {
var addItemButton, deleteItemButton;
addItemButton = document.getElementById('addItem');
deleteItemButton = document.getElementById('deleteItem');
addItemButton.addEventListener('click', addItem, false);
deleteItemButton.addEventListener('click', deleteItem, false);
}
window.addEventListener('load', registHandler, false);
}());
那太烦人了。
答案 0 :(得分:1)
这似乎是Safari的一个已知问题:https://bugs.webkit.org/show_bug.cgi?id=65829
要重现错误,您只需在控制台中输入任何代码,同时在断点处和严格模式下停止。
以下是错误报告中的代码:
(function(){
"use strict";
debugger;
})();
所以当你在断点处时,转到控制台并输入2+3
(或任何表达式),你就会得到错误。