// //Import this script to inject the reflective propTypes in react
// //We need to ensure that we are using the same react module as the component we are using
// //For this to happen our script can't depend on react, and we must import react from the target node_modules folder
// var React = require("../../node_modules/react");

// var originalPropTypes = React.PropTypes;
// var newPropTypes = {}

// for(var propType in originalPropTypes){
//   // Create a new reflective property each time the getter is called
//   Object.defineProperty(newPropTypes, propType,
//     {
//        get: reflectiveGetter(propType)
//      }
//    );
// }

// React.PropTypes = newPropTypes

// //Enforce different scope for each property
// function reflectiveGetter(propType){
//   return function(){
//     return createReflectivePropType(propType);
//   }
// }

// function createReflectivePropType(type){
//   var fakePropType = null;
//   //Used for propTypes with arguments
//   fakePropType = function fakePropType(propTypes){
//     createInnerPropertyTypes(fakePropType, propTypes)
//     return fakePropType;
//   }

//   fakePropType.type = type;
//   fakePropType.isRequired = function(){}
//   fakePropType.isRequired.type = type;
//   fakePropType.isRequired.required = true;

//   return fakePropType;
// }

// function createInnerPropertyTypes(outer, propTypes){
//   outer.inner = propTypes;
//   outer.isRequired.inner = propTypes
// }
