Title: [248708] trunk
- Revision
- 248708
- Author
- commit-qu...@webkit.org
- Date
- 2019-08-14 23:11:35 -0700 (Wed, 14 Aug 2019)
Log Message
Error thrown during "acceptNode" lookup is overridden
https://bugs.webkit.org/show_bug.cgi?id=200735
Patch by Alexey Shvayka <shvaikal...@gmail.com> on 2019-08-14
Reviewed by Ross Kirsling.
LayoutTests/imported/w3c:
* web-platform-tests/dom/traversal/TreeWalker-acceptNode-filter-expected.txt:
Source/WebCore:
Test: imported/w3c/web-platform-tests/dom/traversal/TreeWalker-acceptNode-filter-expected.html
* bindings/js/JSCallbackData.cpp:
(WebCore::JSCallbackData::invokeCallback): Catch and return exception of callback->get call.
Modified Paths
Diff
Modified: trunk/LayoutTests/imported/w3c/ChangeLog (248707 => 248708)
--- trunk/LayoutTests/imported/w3c/ChangeLog 2019-08-15 04:55:55 UTC (rev 248707)
+++ trunk/LayoutTests/imported/w3c/ChangeLog 2019-08-15 06:11:35 UTC (rev 248708)
@@ -1,5 +1,14 @@
2019-08-14 Alexey Shvayka <shvaikal...@gmail.com>
+ Error thrown during "acceptNode" lookup is overridden
+ https://bugs.webkit.org/show_bug.cgi?id=200735
+
+ Reviewed by Ross Kirsling.
+
+ * web-platform-tests/dom/traversal/TreeWalker-acceptNode-filter-expected.txt:
+
+2019-08-14 Alexey Shvayka <shvaikal...@gmail.com>
+
Re-sync web-platform-tests/dom/traversal from upstream
https://bugs.webkit.org/show_bug.cgi?id=200737
Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/dom/traversal/TreeWalker-acceptNode-filter-expected.txt (248707 => 248708)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/dom/traversal/TreeWalker-acceptNode-filter-expected.txt 2019-08-15 04:55:55 UTC (rev 248707)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/dom/traversal/TreeWalker-acceptNode-filter-expected.txt 2019-08-15 06:11:35 UTC (rev 248708)
@@ -7,7 +7,7 @@
PASS Testing with object with non-function acceptNode property
PASS Testing with function having acceptNode function
PASS Testing with filter function that throws
-FAIL rethrows errors when getting `acceptNode` assert_throws: function "function () { walker.firstChild(); }" threw object "TypeError: Type error" ("TypeError") expected object "[object Object]" ("test")
+PASS rethrows errors when getting `acceptNode`
PASS performs `Get` on every traverse
PASS Testing with filter object that throws
Test JS objects as NodeFilters
Modified: trunk/Source/WebCore/ChangeLog (248707 => 248708)
--- trunk/Source/WebCore/ChangeLog 2019-08-15 04:55:55 UTC (rev 248707)
+++ trunk/Source/WebCore/ChangeLog 2019-08-15 06:11:35 UTC (rev 248708)
@@ -1,3 +1,15 @@
+2019-08-14 Alexey Shvayka <shvaikal...@gmail.com>
+
+ Error thrown during "acceptNode" lookup is overridden
+ https://bugs.webkit.org/show_bug.cgi?id=200735
+
+ Reviewed by Ross Kirsling.
+
+ Test: imported/w3c/web-platform-tests/dom/traversal/TreeWalker-acceptNode-filter-expected.html
+
+ * bindings/js/JSCallbackData.cpp:
+ (WebCore::JSCallbackData::invokeCallback): Catch and return exception of callback->get call.
+
2019-08-14 Myles C. Maxfield <mmaxfi...@apple.com>
[WHLSL] Variables shouldn't be able to have void type
Modified: trunk/Source/WebCore/bindings/js/JSCallbackData.cpp (248707 => 248708)
--- trunk/Source/WebCore/bindings/js/JSCallbackData.cpp 2019-08-15 04:55:55 UTC (rev 248707)
+++ trunk/Source/WebCore/bindings/js/JSCallbackData.cpp 2019-08-15 06:11:35 UTC (rev 248708)
@@ -44,6 +44,8 @@
ExecState* exec = globalObject.globalExec();
VM& vm = exec->vm();
+ auto scope = DECLARE_CATCH_SCOPE(vm);
+
JSValue function;
CallData callData;
CallType callType = CallType::None;
@@ -60,6 +62,12 @@
ASSERT(!functionName.isNull());
function = callback->get(exec, functionName);
+ if (UNLIKELY(scope.exception())) {
+ returnedException = scope.exception();
+ scope.clearException();
+ return JSValue();
+ }
+
callType = getCallData(vm, function, callData);
if (callType == CallType::None) {
returnedException = JSC::Exception::create(vm, createTypeError(exec));
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes