code: function(obj, prop, op) {
          var writable;
  
          if (!canWriteProtect() || !obj.hasOwnProperty(prop)) {
            op.call(obj);
            return;
          }
  
          writable = Object.getOwnPropertyDescriptor(obj, prop).writable;
  
          Object.defineProperty(obj, prop, { writable: true });
          op.call(obj);
          Object.defineProperty(obj, prop, { writable: writable });
  
        }
docs: Property locking/unlocking