whole_func_string: function(obj, from, to) {
      for (var proto = %object_get_prototype_of(obj); proto;
           proto = %object_get_prototype_of(proto)) {
        var indices = IS_PROXY(proto) ? to : %GetArrayKeys(proto, to);
        if (IS_NUMBER(indices)) {
          // It's an interval.
          var proto_length = indices;
          for (var i = from; i < proto_length; i++) {
            if (HAS_OWN_PROPERTY(proto, i)) {
              obj[i] = UNDEFINED;
            }
          }
        } else {
          for (var i = 0; i < indices.length; i++) {
            var index = indices[i];
            if (from <= index && HAS_OWN_PROPERTY(proto, index)) {
              obj[index] = UNDEFINED;
            }
          }
        }
      }
    }
func_code_string: function(obj, from, to) {
      for (var proto = %object_get_prototype_of(obj); proto;
           proto = %object_get_prototype_of(proto)) {
        var indices = IS_PROXY(proto) ? to : %GetArrayKeys(proto, to);
        if (IS_NUMBER(indices)) {
          // It's an interval.
          var proto_length = indices;
          for (var i = from; i < proto_length; i++) {
            if (HAS_OWN_PROPERTY(proto, i)) {
              obj[i] = UNDEFINED;
            }
          }
        } else {
          for (var i = 0; i < indices.length; i++) {
            var index = indices[i];
            if (from <= index && HAS_OWN_PROPERTY(proto, index)) {
              obj[index] = UNDEFINED;
            }
          }
        }
      }
    }
func_documentation_string: Set a value of "undefined" on all indices in the range from..to where a prototype of obj has an element. I.e., shadow all prototype elements in that range.