public/render-page.js
/**
                         * Assert that the values match with the type specs.
                         * Error messages are memorized and will only be shown once.
                         *
                         * @param {object} typeSpecs Map of name to a ReactPropType
                         * @param {object} values Runtime values that need to be type-checked
                         * @param {string} location e.g. "prop", "context", "child context"
                         * @param {string} componentName Name of the component for error messages.
                         * @param {?Function} getStack Returns the component stack.
                         * @private
                         */
Assert that the values match with the type specs.
Error messages are memorized and will only be shown once.

@param {object} typeSpecs Map of name to a ReactPropType
@param {object} values Runtime values that need to be type-checked
@param {string} location e.g.
Assert that the values match with the type specs . Error messages are memorized and will only be shown once . @param { object } typeSpecs Map of name to a ReactPropType @param { object } values Runtime values that need to be type - checked @param { string } location e . g .
function checkPropTypes(typeSpecs, values, location, componentName, getStack) {
                            if (true) {
                                for (var typeSpecName in typeSpecs) {
                                    if (has(typeSpecs, typeSpecName)) {
                                        var error;
                                        try {
                                            if (typeof typeSpecs[typeSpecName] !== 'function') {
                                                var err = Error(
                                                    (componentName || 'React class') +
                                                        ': ' +
                                                        location +
                                                        ' type `' +
                                                        typeSpecName +
                                                        '` is invalid; ' +
                                                        'it must be a function, usually from the `prop-types` package, but received `' +
                                                        typeof typeSpecs[typeSpecName] +
                                                        '`.'
                                                );
                                                err.name = 'Invariant Violation';
                                                throw err;
                                            }
                                            error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);
                                        } catch (ex) {
                                            error = ex;
                                        }
                                        if (error && !(error instanceof Error)) {
                                            printWarning(
                                                (componentName || 'React class') +
                                                    ': type specification of ' +
                                                    location +
                                                    ' `' +
                                                    typeSpecName +
                                                    '` is invalid; the type checker ' +
                                                    'function must return `null` or an `Error` but returned a ' +
                                                    typeof error +
                                                    '. ' +
                                                    'You may have forgotten to pass an argument to the type checker ' +
                                                    'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' +
                                                    'shape all require an argument).'
                                            );
                                        }
                                        if (error instanceof Error && !(error.message in loggedTypeFailures)) {
                                            loggedTypeFailures[error.message] = true;
                                            var stack = getStack ? getStack() : '';
                                            printWarning('Failed ' + location + ' type: ' + error.message + (stack != null ? stack : ''));
                                        }
                                    }
                                }
                            }
                        }
function checkPropTypes ( typeSpecs , values , location , componentName , getStack ) { if ( true ) { for ( var typeSpecName in typeSpecs ) { if ( has ( typeSpecs , typeSpecName ) ) { var error ; try { if ( typeof typeSpecs [ typeSpecName ] !== 'function' ) { var err = Error ( ( componentName || 'React class' ) + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' + 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs [ typeSpecName ] + '`.' ) ; err . name = 'Invariant Violation' ; throw err ; } error = typeSpecs [ typeSpecName ] ( values , typeSpecName , componentName , location , null , ReactPropTypesSecret ) ; } catch ( ex ) { error = ex ; } if ( error && ! ( error instanceof Error ) ) { printWarning ( ( componentName || 'React class' ) + ': type specification of ' + location + ' `' + typeSpecName + '` is invalid; the type checker ' + 'function must return `null` or an `Error` but returned a ' + typeof error + '. ' + 'You may have forgotten to pass an argument to the type checker ' + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + 'shape all require an argument).' ) ; } if ( error instanceof Error && ! ( error . message in loggedTypeFailures ) ) { loggedTypeFailures [ error . message ] = true ; var stack = getStack ? getStack ( ) : '' ; printWarning ( 'Failed ' + location + ' type: ' + error . message + ( stack != null ? stack : '' ) ) ; } } } } }
Assert that the values match with the type specs.
Assert that the values match with the type specs .
// Prop type validation may throw. In case they do, we don't want to // fail the render phase where it didn't fail before. So we log it. // After these have been cleaned up, we'll let them throw. // This is intentionally an invariant that gets caught. It's the same // behavior as without this statement except with a better message. // Only monitor this failure once because there tends to be a lot of the // same error.