title: Knockout binding value.update not being called with custom binding and defineProperty
body: <p>I have a Knockout extension, <a href="https://github.com/brianmhunt/knockout-secure-binding">knockout-secure-binding</a>, and we have encountered <a href="https://github.com/brianmhunt/knockout-secure-binding/issues/23">an issue</a>.</p>
  
  <p>In particular when using <code>Object.defineProperty</code>, as <a href="https://github.com/SteveSanderson/knockout-es5">knockout-es5</a> does, the <code>value</code> binding's <code>update</code> function is not called when a change event is triggered on an <code>input</code>.</p>
  
  <p>My <a href="https://github.com/brianmhunt/knockout-secure-binding/blob/17b44011d49d3f1ac4fafe91663f41e9794376cd/spec/knockout_secure_binding_spec.js#L228">unit tests</a> illustrate the peculiarity. This works:</p>
  
  <pre><code>it("reads an input `value` binding", function () {
      var input = document.createElement("input"),
          evt = new CustomEvent("change"),
          context = { vobs: ko.observable() };
      input.setAttribute("data-sbind", "value: vobs")
      ko.applyBindings(context, input)
      input.value = '273-9164'
      input.dispatchEvent(evt)
      assert.equal(context.vobs(), '273-9164')
  })
  </code></pre>
  
  <p>This (being how knockout-es5 defines properties) does not work:</p>
  
  <pre><code>it("reads an input `value` binding for a defineProperty", function () {
      // see https://github.com/brianmhunt/knockout-secure-binding/issues/23
      var input = document.createElement("input"),
          evt = new CustomEvent("change"),
          obs = ko.observable(),
          context = { };
      Object.defineProperty(context, 'pobs', {
          configurable: true,
          enumerable: true,
          get: obs,
          set: obs
      });
      input.setAttribute("data-sbind", "value: pobs")
      ko.applyBindings(context, input)
      input.value = '273-9164'
      input.dispatchEvent(evt)
      assert.equal(context.pobs, '273-9164')
  })
  </code></pre>
  
  <p>In the latter case, as mentioned, <code>value.update</code> is not being called when <code>input.dispatchEvent</code> is called.</p>
  
  <p>The custom binding is returning its own <code>valueAccessor</code>, so I expect the problem is related to that. It just strikes me as particularly odd that it would work with an object property but not <code>defineProperty</code>.</p>