From 120d6c4cf91e9cd7abb3f7afda37003356820e13 Mon Sep 17 00:00:00 2001 From: z Date: Sun, 17 Dec 2017 02:47:24 +0530 Subject: [PATCH 1/3] seperated enumerable to another object.defineProperty for ie11 --- packages/react-dom/src/client/inputValueTracking.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/react-dom/src/client/inputValueTracking.js b/packages/react-dom/src/client/inputValueTracking.js index aaf16061323..ea618d7466f 100644 --- a/packages/react-dom/src/client/inputValueTracking.js +++ b/packages/react-dom/src/client/inputValueTracking.js @@ -70,7 +70,6 @@ function trackValueOnNode(node: any): ?ValueTracker { } Object.defineProperty(node, valueField, { - enumerable: descriptor.enumerable, configurable: true, get: function() { return descriptor.get.call(this); @@ -81,6 +80,10 @@ function trackValueOnNode(node: any): ?ValueTracker { }, }); + Object.defineProperty(node, valueField, { + enumerable: descriptor.enumerable, + }); + const tracker = { getValue() { return currentValue; From c7d6beadb8c1325270ae67cd2f1fead088905476 Mon Sep 17 00:00:00 2001 From: z Date: Sun, 17 Dec 2017 14:31:12 +0530 Subject: [PATCH 2/3] comment added --- packages/react-dom/src/client/inputValueTracking.js | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/react-dom/src/client/inputValueTracking.js b/packages/react-dom/src/client/inputValueTracking.js index ea618d7466f..f27c2bf8d1d 100644 --- a/packages/react-dom/src/client/inputValueTracking.js +++ b/packages/react-dom/src/client/inputValueTracking.js @@ -80,6 +80,7 @@ function trackValueOnNode(node: any): ?ValueTracker { }, }); + // This is a work around for IE11 and Edge 15,14 for #Issue11768 Object.defineProperty(node, valueField, { enumerable: descriptor.enumerable, }); From 56d613d2179376a258a4b994a6be6822da94ad80 Mon Sep 17 00:00:00 2001 From: Dan Abramov Date: Fri, 5 Jan 2018 18:29:07 +0000 Subject: [PATCH 3/3] Reword the explanation --- packages/react-dom/src/client/inputValueTracking.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/packages/react-dom/src/client/inputValueTracking.js b/packages/react-dom/src/client/inputValueTracking.js index f27c2bf8d1d..732a77beee8 100644 --- a/packages/react-dom/src/client/inputValueTracking.js +++ b/packages/react-dom/src/client/inputValueTracking.js @@ -79,8 +79,10 @@ function trackValueOnNode(node: any): ?ValueTracker { descriptor.set.call(this, value); }, }); - - // This is a work around for IE11 and Edge 15,14 for #Issue11768 + // We could've passed this the first time + // but it triggers a bug in IE11 and Edge 14/15. + // Calling defineProperty() again should be equivalent. + // https://github.com/facebook/react/issues/11768 Object.defineProperty(node, valueField, { enumerable: descriptor.enumerable, });