code: public static Object delete(Object obj, Object id, Context cx,
                                  Scriptable scope, boolean isName)
      {
          Scriptable sobj = toObjectOrNull(cx, obj, scope);
          if (sobj == null) {
              if (isName) {
                  return Boolean.TRUE;
              }
              throw undefDeleteError(obj, id);
          }
          boolean result = deleteObjectElem(sobj, id, cx);
          return wrapBoolean(result);
      }
docs: The delete operator
  
  See ECMA 11.4.1
  
  In ECMA 0.19, the description of the delete operator (11.4.1)
  assumes that the [[Delete]] method returns a value. However,
  the definition of the [[Delete]] operator (8.6.2.5) does not
  define a return value. Here we assume that the [[Delete]]
  method doesn't return a value.