| Index: samples/third_party/dromaeo/tests/dom-traverse-htmlfast.dart
|
| diff --git a/samples/third_party/dromaeo/tests/dom-traverse-htmlfast.dart b/samples/third_party/dromaeo/tests/dom-traverse-htmlfast.dart
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..c72e9d574da463b9c1e4a5af041a33c7d9dd792f
|
| --- /dev/null
|
| +++ b/samples/third_party/dromaeo/tests/dom-traverse-htmlfast.dart
|
| @@ -0,0 +1,87 @@
|
| +#library("dom_traverse");
|
| +#import("dart:html");
|
| +#import('../common/common.dart');
|
| +#import('runner.dart');
|
| +
|
| +
|
| +void main() {
|
| + final int num = 40;
|
| +
|
| + // Try to force real results.
|
| + var ret;
|
| +
|
| + String html = document.body.innerHTML;
|
| +
|
| + new Suite(window, 'dom-traverse')
|
| + .prep(() {
|
| + html = BenchUtil.replaceAll(html, 'id="test(\\w).*?"', (Match match) {
|
| + final group = match.group(1);
|
| + return 'id="test${group}${num}"';
|
| + });
|
| + html = BenchUtil.replaceAll(html, 'name="test.*?"', (Match match) {
|
| + return 'name="test${num}"';
|
| + });
|
| + html = BenchUtil.replaceAll(html, 'class="foo.*?"', (Match match) {
|
| + return 'class="foo test${num} bar"';
|
| + });
|
| +
|
| + final div = new Element.tag('div');
|
| + div.innerHTML = html;
|
| + document.body.appendChild(div);
|
| + })
|
| + .test('firstChild', () {
|
| + final nodes = document.body.nodes;
|
| + final nl = nodes.length;
|
| +
|
| + for (int i = 0; i < num; i++) {
|
| + for (int j = 0; j < nl; j++) {
|
| + Node cur = nodes[j];
|
| + while (cur !== null) {
|
| + cur = cur.$dom_firstChild;
|
| + }
|
| + ret = cur;
|
| + }
|
| + }
|
| + })
|
| + .test('lastChild', () {
|
| + final nodes = document.body.nodes;
|
| + final nl = nodes.length;
|
| +
|
| + for (int i = 0; i < num; i++) {
|
| + for (int j = 0; j < nl; j++) {
|
| + Node cur = nodes[j];
|
| + while (cur !== null) {
|
| + cur = cur.$dom_lastChild;
|
| + }
|
| + ret = cur;
|
| + }
|
| + }
|
| + })
|
| + .test('nextSibling', () {
|
| + for (int i = 0; i < num * 2; i++) {
|
| + Node cur = document.body.$dom_firstChild;
|
| + while (cur !== null) {
|
| + cur = cur.nextNode;
|
| + }
|
| + ret = cur;
|
| + }
|
| + })
|
| + .test('previousSibling', () {
|
| + for (int i = 0; i < num * 2; i++) {
|
| + Node cur = document.body.$dom_lastChild;
|
| + while (cur !== null) {
|
| + cur = cur.previousNode;
|
| + }
|
| + ret = cur;
|
| + }
|
| + })
|
| + .test('childNodes', () {
|
| + for (int i = 0; i < num; i++) {
|
| + final nodes = document.body.nodes;
|
| + for (int j = 0; j < nodes.length; j++) {
|
| + ret = nodes[j];
|
| + }
|
| + }
|
| + })
|
| + .end();
|
| +}
|
|
|