The semantics of the delete operator are a bit tricky, and it can only be reliably used to remove properties from objects. Pass
anything else to it, and you may or may not get the desired result.
var x = 1;
delete x; // Noncompliant
function foo(){
..
}
delete foo; // Noncompliant
var obj = {
x:1,
foo: function(){
...
}
};
delete obj.x;
delete obj.foo;