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.
Noncompliant Code Example
var x = 1;
delete x; // Noncompliant
function foo(){
..
}
delete foo; // Noncompliant
Compliant Solution
var obj = {
x:1,
foo: function(){
...
}
};
delete obj.x;
delete obj.foo;