поведение в пользу пользовательского поведения.

ка

var Assertion = function() {
    return { "dummy": "data" };    
}

Object.defineProperty(Object.prototype, 'should', {
  set: function(){},
  get: function(){
    return new Assertion(this);
  }
});

// Insert magic here.

// This needs to be false
console.log(({}).should === undefined);

Какие варианты у меня есть в ES5, чтобы отменитьdefineProperty вызов ?

Никаких глупых предложений вродеObject.defineProperty = function() { } Пожалуйста.

ПоследующийObject.defineProperty(Object.prototype, 'should', {})

делаетне работа

а такжеObject.defineProperty(Object.prototype, 'should', { value: undefined })

БросаетUncaught TypeError: Cannot redefine property: defineProperty в V8

Object.defineProperty(Object.prototype, 'should', { 
    set: function() {},
    get: function() { return undefined; }
});

Бросаетта же ошибка

delete Object.prototype.should такжене работает

Ответы на вопрос(1)

Ваш ответ на вопрос