From 0c59c57d66d83481795408cd7697c46a3a7dbf9a Mon Sep 17 00:00:00 2001 From: Tim Yung Date: Mon, 7 Oct 2013 14:55:55 -0700 Subject: [PATCH] Speed Key Validation (by over 9000) Use a valid identifier (and non-string) to reduce chance of de-optimizing in V8 and Nitro. --- src/core/ReactComponent.js | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/src/core/ReactComponent.js b/src/core/ReactComponent.js index da7187ae54..49d6eeb70e 100644 --- a/src/core/ReactComponent.js +++ b/src/core/ReactComponent.js @@ -27,12 +27,6 @@ var invariant = require('invariant'); var keyMirror = require('keyMirror'); var merge = require('merge'); -/** - * Props key that determines if a component's key was already validated. - * @private - */ -var IS_KEY_VALIDATED = '{is.key.validated}'; - /** * Every React component is in one of these life cycles. */ @@ -65,10 +59,10 @@ var ownerHasWarned = {}; * @param {ReactComponent} component Component that requires a key. */ function validateExplicitKey(component) { - if (component[IS_KEY_VALIDATED] || component.props.key != null) { + if (component.__keyValidated__ || component.props.key != null) { return; } - component[IS_KEY_VALIDATED] = true; + component.__keyValidated__ = true; // We can't provide friendly warnings for top level components. if (!ReactCurrentOwner.current) { @@ -117,7 +111,7 @@ function validateChildKeys(component) { } } else if (ReactComponent.isValidComponent(component)) { // This component was passed in a valid location. - component[IS_KEY_VALIDATED] = true; + component.__keyValidated__ = true; } }