(node)
| 4488 | ); |
| 4489 | } |
| 4490 | function trackValueOnNode(node) { |
| 4491 | var valueField = isCheckable(node) ? "checked" : "value", |
| 4492 | descriptor = Object.getOwnPropertyDescriptor( |
| 4493 | node.constructor.prototype, |
| 4494 | valueField |
| 4495 | ), |
| 4496 | currentValue = "" + node[valueField]; |
| 4497 | if ( |
| 4498 | !node.hasOwnProperty(valueField) && |
| 4499 | "undefined" !== typeof descriptor && |
| 4500 | "function" === typeof descriptor.get && |
| 4501 | "function" === typeof descriptor.set |
| 4502 | ) { |
| 4503 | var get = descriptor.get, |
| 4504 | set = descriptor.set; |
| 4505 | Object.defineProperty(node, valueField, { |
| 4506 | configurable: !0, |
| 4507 | get: function () { |
| 4508 | return get.call(this); |
| 4509 | }, |
| 4510 | set: function (value) { |
| 4511 | currentValue = "" + value; |
| 4512 | set.call(this, value); |
| 4513 | } |
| 4514 | }); |
| 4515 | Object.defineProperty(node, valueField, { |
| 4516 | enumerable: descriptor.enumerable |
| 4517 | }); |
| 4518 | return { |
| 4519 | getValue: function () { |
| 4520 | return currentValue; |
| 4521 | }, |
| 4522 | setValue: function (value) { |
| 4523 | currentValue = "" + value; |
| 4524 | }, |
| 4525 | stopTracking: function () { |
| 4526 | node._valueTracker = null; |
| 4527 | delete node[valueField]; |
| 4528 | } |
| 4529 | }; |
| 4530 | } |
| 4531 | } |
| 4532 | function track(node) { |
| 4533 | node._valueTracker || (node._valueTracker = trackValueOnNode(node)); |
| 4534 | } |
no test coverage detected
searching dependent graphs…