61 lines
1.5 KiB
HTML
61 lines
1.5 KiB
HTML
<!DOCTYPE html>
|
|
<script src="../resources/magnitude-perf.js"></script>
|
|
<body>
|
|
<script>
|
|
|
|
var doc, node, expected;
|
|
|
|
function appendDeepTree(magnitude)
|
|
{
|
|
for (var i = 0; i < magnitude; i++) {
|
|
node = node.appendChild(doc.createElement('div'));
|
|
}
|
|
}
|
|
|
|
|
|
// Tests that contains is O(1) for document where the test |node| is in the document.
|
|
|
|
function setup1(magnitude)
|
|
{
|
|
node = document.body;
|
|
doc = document;
|
|
expected = true;
|
|
appendDeepTree(magnitude);
|
|
}
|
|
|
|
// Tests that contains is O(1) for document when the test |node| is not in the document.
|
|
|
|
function setup2(magnitude)
|
|
{
|
|
node = document.createElement('div'); // Not added to the document
|
|
doc = document;
|
|
expected = false;
|
|
appendDeepTree(magnitude);
|
|
}
|
|
|
|
// Tests that contains is O(1) for document when the test |node| is in a different document.
|
|
|
|
function setup3(magnitude)
|
|
{
|
|
var iframe = document.body.appendChild(document.createElement('iframe'));
|
|
doc = iframe.contentDocument;
|
|
node = doc.body; // Different document.
|
|
expected = false;
|
|
appendDeepTree(magnitude);
|
|
}
|
|
|
|
function test(magnitude)
|
|
{
|
|
var actual = document.contains(node);
|
|
if (actual !== expected)
|
|
throw 'Unexpected return value: ' + actual + ', expected: ' + expected;
|
|
}
|
|
|
|
Magnitude.description('Tests that document.contains is O(1).');
|
|
Magnitude.run(setup1, test, Magnitude.CONSTANT);
|
|
Magnitude.run(setup2, test, Magnitude.CONSTANT);
|
|
Magnitude.run(setup3, test, Magnitude.CONSTANT);
|
|
|
|
</script>
|
|
</body>
|