8.12.7 [[Delete]]

2010-05-04

Boolean [[Delete]](P:String, Throw:Boolean)

Attempts to remove property P from this object O.

Code: (Meta Ecma)
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.