Can't inspect scope variable when using strict

2020-08-09 11:04发布

问题:

When running the following script in Safari (with the Inspector open)

window.onload = function() { 
    "use strict";
    var x = 1;
    debugger; // debugger will auto-break on this line
}

I get the following error when asking for x in the console while being on that breakpoint:

Error
message: "'with' statements are not valid in strict mode"

Removing the "use strict"; line lets me access x from the console while on that breakpoint.

Both times the x is shown under Scope Variables in the sidebar.

回答1:

This appears to be a known issue with Safari: https://bugs.webkit.org/show_bug.cgi?id=65829

To reproduce the Error, you simply need to type any code into the console while stopped at a breakpoint and while in strict mode.

Here's the code from the bug report:

(function(){
    "use strict";
    debugger;
})();

So when you're at the breakpoint, go to the console and type 2+3 (or any expression), and you'll get the Error.