<html>
<head>
  <script src="../../LayoutTests/http/tests/inspector/inspector-test.js"></script>
  <script src="../../LayoutTests/inspector/profiler/heap-snapshot-test.js"></script>
  <script src="performance-test.js"></script>
  <script src="heap-snapshot-performance-test.js"></script>
<script>

function makeLinkedList(n)
{
    var node = {};
    while (--n)
        node = { next: node };
    return node;
}

function makeDoubleLinkedList(n)
{
  var tail = {};
  var head = tail;
  while (--n) {
    head = { next: head };
    head.next.prev = head;
  }
  return { head: head, tail: tail };
}

var list = makeLinkedList(20000);
var double_list = makeDoubleLinkedList(5000);

</script>
</head>
<body onload="runTest()">
</body>
</html>
