| OLD | NEW |
| 1 #library("dom-query.dart"); | 1 #library("dom-query.dart"); |
| 2 #import("dart:dom"); | 2 #import("dart:dom"); |
| 3 #import('../../common/common.dart'); | 3 #import('../../common/common.dart'); |
| 4 #import('runner.dart'); | 4 #import('runner.dart'); |
| 5 | 5 |
| 6 void main() { | 6 void main() { |
| 7 final int num = 40; | 7 final int num = 40; |
| 8 | 8 |
| 9 // Try to force real results. | 9 // Try to force real results. |
| 10 var ret; | 10 var ret; |
| 11 window.onload = (Event evt) { | |
| 12 String html = document.body.innerHTML; | |
| 13 | 11 |
| 14 new Suite(window, 'dom-query') | 12 String html = document.body.innerHTML; |
| 15 .prep(() { | 13 |
| 16 html = BenchUtil.replaceAll(html, 'id="test(\\w).*?"', (Match match) { | 14 new Suite(window, 'dom-query') |
| 17 final group = match.group(1); | 15 .prep(() { |
| 18 return 'id="test${group}${num}"'; | 16 html = BenchUtil.replaceAll(html, 'id="test(\\w).*?"', (Match match) { |
| 19 }); | 17 final group = match.group(1); |
| 20 html = BenchUtil.replaceAll(html, 'name="test.*?"', (Match match) { | 18 return 'id="test${group}${num}"'; |
| 21 return 'name="test${num}"'; | 19 }); |
| 22 }); | 20 html = BenchUtil.replaceAll(html, 'name="test.*?"', (Match match) { |
| 23 html = BenchUtil.replaceAll(html, 'class="foo.*?"', (Match match) { | 21 return 'name="test${num}"'; |
| 24 return 'class="foo test${num} bar"'; | 22 }); |
| 25 }); | 23 html = BenchUtil.replaceAll(html, 'class="foo.*?"', (Match match) { |
| 26 final div = document.createElement('div'); | 24 return 'class="foo test${num} bar"'; |
| 27 div.innerHTML = html; | 25 }); |
| 28 document.body.appendChild(div); | 26 final div = document.createElement('div'); |
| 29 }) | 27 div.innerHTML = html; |
| 30 .test('getElementById', () { | 28 document.body.appendChild(div); |
| 31 for (int i = 0; i < num * 30; i++) { | 29 }) |
| 32 ret = document.getElementById('testA' + num).nodeType; | 30 .test('getElementById', () { |
| 33 ret = document.getElementById('testB' + num).nodeType; | 31 for (int i = 0; i < num * 30; i++) { |
| 34 ret = document.getElementById('testC' + num).nodeType; | 32 ret = document.getElementById('testA' + num).nodeType; |
| 35 ret = document.getElementById('testD' + num).nodeType; | 33 ret = document.getElementById('testB' + num).nodeType; |
| 36 ret = document.getElementById('testE' + num).nodeType; | 34 ret = document.getElementById('testC' + num).nodeType; |
| 37 ret = document.getElementById('testF' + num).nodeType; | 35 ret = document.getElementById('testD' + num).nodeType; |
| 38 } | 36 ret = document.getElementById('testE' + num).nodeType; |
| 39 }) | 37 ret = document.getElementById('testF' + num).nodeType; |
| 40 .test('getElementById (not in document)', () { | 38 } |
| 41 for (int i = 0; i < num * 30; i++) { | 39 }) |
| 42 ret = document.getElementById('testA'); | 40 .test('getElementById (not in document)', () { |
| 43 ret = document.getElementById('testB'); | 41 for (int i = 0; i < num * 30; i++) { |
| 44 ret = document.getElementById('testC'); | 42 ret = document.getElementById('testA'); |
| 45 ret = document.getElementById('testD'); | 43 ret = document.getElementById('testB'); |
| 46 ret = document.getElementById('testE'); | 44 ret = document.getElementById('testC'); |
| 47 ret = document.getElementById('testF'); | 45 ret = document.getElementById('testD'); |
| 48 } | 46 ret = document.getElementById('testE'); |
| 49 }) | 47 ret = document.getElementById('testF'); |
| 50 .test('getElementsByTagName(div)', () { | 48 } |
| 51 for (int i = 0; i < num; i++) { | 49 }) |
| 52 var elems = document.getElementsByTagName('div'); | 50 .test('getElementsByTagName(div)', () { |
| 53 ret = elems[elems.length-1].nodeType; | 51 for (int i = 0; i < num; i++) { |
| 54 } | 52 var elems = document.getElementsByTagName('div'); |
| 55 }) | 53 ret = elems[elems.length-1].nodeType; |
| 56 .test('getElementsByTagName(p)', () { | 54 } |
| 57 for (int i = 0; i < num; i++) { | 55 }) |
| 58 final elems = document.getElementsByTagName('p'); | 56 .test('getElementsByTagName(p)', () { |
| 59 ret = elems[elems.length-1].nodeType; | 57 for (int i = 0; i < num; i++) { |
| 60 } | 58 final elems = document.getElementsByTagName('p'); |
| 61 }) | 59 ret = elems[elems.length-1].nodeType; |
| 62 .test('getElementsByTagName(a)', () { | 60 } |
| 63 for (int i = 0; i < num; i++) { | 61 }) |
| 64 var elems = document.getElementsByTagName('a'); | 62 .test('getElementsByTagName(a)', () { |
| 65 ret = elems[elems.length-1].nodeType; | 63 for (int i = 0; i < num; i++) { |
| 66 } | 64 var elems = document.getElementsByTagName('a'); |
| 67 }) | 65 ret = elems[elems.length-1].nodeType; |
| 68 .test('getElementsByTagName(*)', () { | 66 } |
| 69 for (int i = 0; i < num; i++) { | 67 }) |
| 70 var elems = document.getElementsByTagName('*'); | 68 .test('getElementsByTagName(*)', () { |
| 71 ret = elems[elems.length-1].nodeType; | 69 for (int i = 0; i < num; i++) { |
| 72 } | 70 var elems = document.getElementsByTagName('*'); |
| 73 }) | 71 ret = elems[elems.length-1].nodeType; |
| 74 .test('getElementsByTagName (not in document)', () { | 72 } |
| 75 for (int i = 0; i < num; i++) { | 73 }) |
| 76 var elems = document.getElementsByTagName('strong'); | 74 .test('getElementsByTagName (not in document)', () { |
| 77 ret = elems.length == 0; | 75 for (int i = 0; i < num; i++) { |
| 78 } | 76 var elems = document.getElementsByTagName('strong'); |
| 79 }) | 77 ret = elems.length == 0; |
| 80 .test('getElementsByName', () { | 78 } |
| 81 for (int i = 0; i < num * 20; i++) { | 79 }) |
| 82 var elems = document.getElementsByName('test' + num); | 80 .test('getElementsByName', () { |
| 83 ret = elems[elems.length-1].nodeType; | 81 for (int i = 0; i < num * 20; i++) { |
| 84 elems = document.getElementsByName('test' + num); | 82 var elems = document.getElementsByName('test' + num); |
| 85 ret = elems[elems.length-1].nodeType; | 83 ret = elems[elems.length-1].nodeType; |
| 86 elems = document.getElementsByName('test' + num); | 84 elems = document.getElementsByName('test' + num); |
| 87 ret = elems[elems.length-1].nodeType; | 85 ret = elems[elems.length-1].nodeType; |
| 88 elems = document.getElementsByName('test' + num); | 86 elems = document.getElementsByName('test' + num); |
| 89 ret = elems[elems.length-1].nodeType; | 87 ret = elems[elems.length-1].nodeType; |
| 90 } | 88 elems = document.getElementsByName('test' + num); |
| 91 }) | 89 ret = elems[elems.length-1].nodeType; |
| 92 .test('getElementsByName (not in document)', () { | 90 } |
| 93 for (int i = 0; i < num * 20; i++) { | 91 }) |
| 94 ret = document.getElementsByName('test').length == 0; | 92 .test('getElementsByName (not in document)', () { |
| 95 ret = document.getElementsByName('test').length == 0; | 93 for (int i = 0; i < num * 20; i++) { |
| 96 ret = document.getElementsByName('test').length == 0; | 94 ret = document.getElementsByName('test').length == 0; |
| 97 ret = document.getElementsByName('test').length == 0; | 95 ret = document.getElementsByName('test').length == 0; |
| 98 ret = document.getElementsByName('test').length == 0; | 96 ret = document.getElementsByName('test').length == 0; |
| 99 } | 97 ret = document.getElementsByName('test').length == 0; |
| 100 }) | 98 ret = document.getElementsByName('test').length == 0; |
| 101 .end(); | 99 } |
| 102 }; | 100 }) |
| 101 .end(); |
| 103 } | 102 } |
| OLD | NEW |