whole_func_string: function () {
                          self.log("enumerate");
                          var result = [], keys, i, name, desc;
                          stm.recordRead(self);
                          keys = handler.getPropertyNames();
                          for (i = 0; i < keys.length; i += 1) {
                              name = keys[i];
                              desc = handler.getPropertyDescriptor(name);
                              if (undefined !== desc && desc.enumerable) {
                                  result.push(name);
                              }
                          }
                          return result;
                      }
func_code_string: function () {
                          self.log("enumerate");
                          var result = [], keys, i, name, desc;
                          stm.recordRead(self);
                          keys = handler.getPropertyNames();
                          for (i = 0; i < keys.length; i += 1) {
                              name = keys[i];
                              desc = handler.getPropertyDescriptor(name);
                              if (undefined !== desc && desc.enumerable) {
                                  result.push(name);
                              }
                          }
                          return result;
                      }
func_documentation_string: bad behavior when set fails in non-strict mode