chromium/third_party/blink/perf_tests/bindings/named-property-enumerator.html

<!DOCTYPE html>
<html>
<body>
<script src="../resources/runner.js"></script>
<script>
var div = document.createElement("div");
for (var i = 0; i < 1000; i++) {
    var key = "key_" + i;
    var value = "value_" + i;
    div.dataset[key] = value;
}
function assertEquals(a, b) {
    if (a !== b) console.log("assertion failed: not equal", a, b);
}
var i = 0;
for (var key in div.dataset) {
    var ref_key = "key_" + i;
    var ref_value = "value_" + i;
    assertEquals(key, ref_key);
    assertEquals(div.dataset[key], ref_value);
    i++;
}

PerfTestRunner.measureRunsPerSecond({
    description: "This benchmark covers enumerator of named properties",
    run: function() {
        for (var key in div.dataset);
}});
</script>
</body>
</html>