https://codereview.appspot.com/274830043/diff/20001/lib/react/component.dart File lib/react/component.dart (right): https://codereview.appspot.com/274830043/diff/20001/lib/react/component.dart#... lib/react/component.dart:62: var components = <dynamic, Component>{}; probably best to stop using a HashMap here as storing JavaScript objects as keys in a dart HashMap won't have good performance unless we stick expandos on JavaScript objects which would have some undesirable side-effects. https://codereview.appspot.com/274830043/diff/20001/lib/react/react_element.dart File lib/react/react_element.dart (right): https://codereview.appspot.com/274830043/diff/20001/lib/react/react_element.d... lib/react/react_element.dart:25: interopProps = _props(className: props["className"], onClick: allowInterop(props["onClick"])); this isn't needed if you ensure that closures passed in to the Map object have always had allowInterop called. I didn't look closely but it appears this wasn't the case. drive by general comment, it would probably be better for performance to use Map less and define some dart classes with the property, value pairs you need.