Ruby on Rails | Screencasts | Download | Documentation | Weblog | Community | Source

Ticket #10008: selector-child.diff.txt

File selector-child.diff.txt, 1.5 kB (added by kuriyama, 10 months ago)
Line 
1 === src/selector.js
2 ==================================================================
3 --- src/selector.js     (revision 897)
4 +++ src/selector.js     (local)
5 @@ -402,13 +402,16 @@
6            if (combinator == 'child') {
7              for (var i = 0, node; node = nodes[i]; i++)
8                if (targetNode.parentNode == node) return [targetNode];
9 +            return [];
10            } else if (combinator == 'descendant') {
11              for (var i = 0, node; node = nodes[i]; i++)
12                if (Element.descendantOf(targetNode, node)) return [targetNode];
13 +            return [];
14            } else if (combinator == 'adjacent') {
15              for (var i = 0, node; node = nodes[i]; i++)
16                if (Selector.handlers.previousElementSibling(targetNode) == node)
17                  return [targetNode];
18 +            return [];
19            } else nodes = h[combinator](nodes);
20          }
21          for (var i = 0, node; node = nodes[i]; i++)
22 === test/unit/selector.html
23 ==================================================================
24 --- test/unit/selector.html     (revision 897)
25 +++ test/unit/selector.html     (local)
26 @@ -252,6 +252,9 @@
27        assertEnumEqual($('level2_1', 'level2_2'), $$('#level1 > span'));
28        assertEnumEqual($('level3_1', 'level3_2'), $$('#level2_1 > *'));
29        assertEnumEqual([], $$('div > #nonexistent'));
30 +      assertEnumEqual([], $$('#p > #p'));
31 +      assertEnumEqual([], $$('#p #p'));
32 +      assertEnumEqual([], $$('#p + #p'));
33        $RunBenchmarks && wait(500, function() {
34          benchmark(function() { $$('#level1 > span') }, 1000);
35        });