From 571edd85c2bf5c52e4f6d9f9f511cd1ff3ce0246 Mon Sep 17 00:00:00 2001 From: Jim Date: Tue, 6 Oct 2015 14:30:03 -0700 Subject: [PATCH] Revert "Remove dependence on ES5 shams per #4189" --- src/isomorphic/classic/element/ReactElement.js | 6 ++---- src/renderers/dom/ReactDOM.js | 6 +++++- src/renderers/dom/client/syntheticEvents/SyntheticEvent.js | 5 +---- 3 files changed, 8 insertions(+), 9 deletions(-) diff --git a/src/isomorphic/classic/element/ReactElement.js b/src/isomorphic/classic/element/ReactElement.js index bad91e5030..39db3d2a6b 100644 --- a/src/isomorphic/classic/element/ReactElement.js +++ b/src/isomorphic/classic/element/ReactElement.js @@ -109,10 +109,8 @@ var ReactElement = function(type, key, ref, self, source, owner, props) { element._self = self; element._source = source; } - if (Object.freeze) { - Object.freeze(element.props); - Object.freeze(element); - } + Object.freeze(element.props); + Object.freeze(element); } return element; diff --git a/src/renderers/dom/ReactDOM.js b/src/renderers/dom/ReactDOM.js index f9c8e7f76d..f8e030c844 100644 --- a/src/renderers/dom/ReactDOM.js +++ b/src/renderers/dom/ReactDOM.js @@ -98,12 +98,16 @@ if (__DEV__) { Object.keys, String.prototype.split, String.prototype.trim, + + // shams + Object.create, + Object.freeze, ]; for (var i = 0; i < expectedFeatures.length; i++) { if (!expectedFeatures[i]) { console.error( - 'One or more ES5 shims expected by React are not available: ' + + 'One or more ES5 shim/shams expected by React are not available: ' + 'https://fb.me/react-warning-polyfills' ); break; diff --git a/src/renderers/dom/client/syntheticEvents/SyntheticEvent.js b/src/renderers/dom/client/syntheticEvents/SyntheticEvent.js index ac111803e0..71d018004b 100644 --- a/src/renderers/dom/client/syntheticEvents/SyntheticEvent.js +++ b/src/renderers/dom/client/syntheticEvents/SyntheticEvent.js @@ -175,10 +175,7 @@ SyntheticEvent.Interface = EventInterface; SyntheticEvent.augmentClass = function(Class, Interface) { var Super = this; - var E = function () {}; - E.prototype = Super.prototype; - var prototype = new E(); - + var prototype = Object.create(Super.prototype); assign(prototype, Class.prototype); Class.prototype = prototype; Class.prototype.constructor = Class;