Tom Van Cutsem (2014-01-03T15:49:13.000Z)
domenic at domenicdenicola.com (2014-01-09T16:34:09.982Z)
`deleteProperty` was in fact originally called `delete`. We changed it to avoid a conflict with the keyword, which occurs when importing the function (recall that the `Reflect.*` methods are actually functions exported from a module). While ES5 made it possible to use keywords as properties, you obviously still can't use keywords as ordinary function names. `defineProperty` is by symmetry with the existing `Object.defineProperty` built-in. I believe the symmetry is more important than a shorter name.
domenic at domenicdenicola.com (2014-01-06T14:10:01.867Z)
'deleteProperty' was in fact originally called 'delete'. We changed it to avoid a conflict with the keyword, which occurs when importing the function (recall that the Reflect.* methods are actually functions exported from a module). While ES5 made it possible to use keywords as properties, you obviously still can't use keywords as ordinary function names. defineProperty is by symmetry with the existing Object.defineProperty built-in. I believe the symmetry is more important than a shorter name.