bad behavior when set fails in non-strict mode
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;
                    }