Boolean [[Delete]](P:String, Throw:Boolean)
Attempts to remove property P from this object O.
function [[GetOwnProperty]](P,Throw){
desc = this.[[GetOwnProperty]](P);
if (desc === undefined) return true;
if (desc.[[Configurable]] === true) {
delete O[P]; // actually remove the property internally
return true;
}
if (Throw) throw TypeError;
return false;
So basically delete returns true if the property has been deleted or was not found. If the property has its [[Configurable]] attribute set to false, it throws a TypeError if Throw is true, otherwise it returns false.