From 5cc130727faf65d1da0261ee0ddfadb49c151869 Mon Sep 17 00:00:00 2001 From: Ms2ger Date: Sun, 14 Jun 2015 17:33:05 +0200 Subject: [PATCH] Test that the exception doesn't get lost in acceptNode. And it turns out that it does get lost. I have no idea where, but I suspect it is in SpiderMonkey somewhere. I hope the SpiderMonkey upgrade will fix it. --- .../TreeWalker-acceptNode-filter.html.ini | 8 ++++++++ .../TreeWalker-acceptNode-filter.html | 18 ++++++++---------- 2 files changed, 16 insertions(+), 10 deletions(-) create mode 100644 tests/wpt/metadata/dom/traversal/TreeWalker-acceptNode-filter.html.ini diff --git a/tests/wpt/metadata/dom/traversal/TreeWalker-acceptNode-filter.html.ini b/tests/wpt/metadata/dom/traversal/TreeWalker-acceptNode-filter.html.ini new file mode 100644 index 00000000000..e67e45df785 --- /dev/null +++ b/tests/wpt/metadata/dom/traversal/TreeWalker-acceptNode-filter.html.ini @@ -0,0 +1,8 @@ +[TreeWalker-acceptNode-filter.html] + type: testharness + [Testing with filter function that throws] + expected: FAIL + + [Testing with filter object that throws] + expected: FAIL + diff --git a/tests/wpt/web-platform-tests/dom/traversal/TreeWalker-acceptNode-filter.html b/tests/wpt/web-platform-tests/dom/traversal/TreeWalker-acceptNode-filter.html index b7f89eeea89..769d9c2e248 100644 --- a/tests/wpt/web-platform-tests/dom/traversal/TreeWalker-acceptNode-filter.html +++ b/tests/wpt/web-platform-tests/dom/traversal/TreeWalker-acceptNode-filter.html @@ -123,33 +123,31 @@ test(function() assert_node(walker.firstChild(), { type: Element, id: 'A1' }); }, 'Testing acceptNode callee'); -// XXX Looks like Servo is doing something wrong when a callback function throws test(function() { + var test_error = { name: "test" }; var walker = document.createTreeWalker(testElement, /*NodeFilter.*/SHOW_ELEMENT, function(node) { - throw('filter exception'); - return /*NodeFilter.*/FILTER_ACCEPT; + throw test_error; }); - assert_throws(null, function () { walker.firstChild(); }); + assert_throws(test_error, function () { walker.firstChild(); }); assert_node(walker.currentNode, { type: Element, id: 'root' }); - assert_throws(null, function () { walker.nextNode(); }); + assert_throws(test_error, function () { walker.nextNode(); }); assert_node(walker.currentNode, { type: Element, id: 'root' }); }, 'Testing with filter function that throws'); -// XXX Looks like Servo is doing something wrong when a callback function throws test(function() { + var test_error = { name: "test" }; var walker = document.createTreeWalker(testElement, /*NodeFilter.*/SHOW_ELEMENT, { acceptNode : function(node) { - throw('filter exception'); - return /*NodeFilter.*/FILTER_ACCEPT; + throw test_error; } }); - assert_throws(null, function () { walker.firstChild(); }); + assert_throws(test_error, function () { walker.firstChild(); }); assert_node(walker.currentNode, { type: Element, id: 'root' }); - assert_throws(null, function () { walker.nextNode(); }); + assert_throws(test_error, function () { walker.nextNode(); }); assert_node(walker.currentNode, { type: Element, id: 'root' }); }, 'Testing with filter object that throws');