If multiple children have the same key, for example ([jsfiddle](https://jsfiddle.net/olegs/p09cweky/1/)):

``` javascript
var Hello = React.createClass({
    render: function() {
        return (<ul>
        <li key={"1"}>what</li>
        <li key={"1"}>what</li>
        </ul>
        )
    }
});
```

React prints the following warning to the console:

```
Warning: flattenChildren(...): Encountered two children with the same key, `.$1`. Child keys must be unique; when two children share a key, only the first child will be used.
```

The key referenced in the warning prepends an internal-looking '.$' to the key specified by the user. This is a bit misleading - ideally, it would mention the exact key value set by the user.

/**
 * Copyright 2013-present, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 * @providesModule traverseAllChildren
 */
'use strict';
var ReactCurrentOwner = require('ReactCurrentOwner');
var ReactElement = require('ReactElement');
var getIteratorFn = require('getIteratorFn');
var invariant = require('invariant');
var warning = require('warning');
var SEPARATOR = '.';
var SUBSEPARATOR = ':';
/**
 * TODO: Test that a single child and an array with one item have the same key
 * pattern.
 */
var userProvidedKeyEscaperLookup = {
  '=': '=0',
  ':': '=2',
};
var userProvidedKeyEscapeRegex = /[=:]/g;
var didWarnAboutMaps = false;
function userProvidedKeyEscaper(match) {