With this page:
<!DOCTYPE html>
<html>
<head>
<script>
"use strict";
var foo = 2;
delete foo;
</script>
</head>
<body></body>
</html>
Firebug console gives:
applying the 'delete' operator to an unqualified name is deprecated
>>> foo
ReferenceError: foo is not defined
foo
But then this is successful:
>>> var bar = 2;
undefined
>>> delete bar;
true
Even if you comment out delete foo;
so that the script does not break, deleting bar
is still successful despite the fact it "is a property of a Global object as it is created via variable declaration and so has DontDelete attribute":
>>> foo
2
>>> delete foo
false
>>> var bar = 2;
undefined
>>> delete bar
true
Is it possible to enable "strict mode" in FireBug and or Chrome's console?
The firebug console works by wrapping all the code in an "eval" call so the first statement in your script is no longer "use strict" - hence it is disabled. You could try wrapping your code in a function to enforce "use strict" for that particular function but the best solution I know of is to skip the console and test straight in the page itself.