Changeset 248708 in webkit


Ignore:
Timestamp:
Aug 14, 2019 11:11:35 PM (5 years ago)
Author:
commit-queue@webkit.org
Message:

Error thrown during "acceptNode" lookup is overridden
https://bugs.webkit.org/show_bug.cgi?id=200735

Patch by Alexey Shvayka <Alexey Shvayka> 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.

Location:
trunk
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/imported/w3c/ChangeLog

    r248705 r248708  
     12019-08-14  Alexey Shvayka  <shvaikalesh@gmail.com>
     2
     3        Error thrown during "acceptNode" lookup is overridden
     4        https://bugs.webkit.org/show_bug.cgi?id=200735
     5
     6        Reviewed by Ross Kirsling.
     7
     8        * web-platform-tests/dom/traversal/TreeWalker-acceptNode-filter-expected.txt:
     9
    1102019-08-14  Alexey Shvayka  <shvaikalesh@gmail.com>
    211
  • trunk/LayoutTests/imported/w3c/web-platform-tests/dom/traversal/TreeWalker-acceptNode-filter-expected.txt

    r248705 r248708  
    88PASS Testing with function having acceptNode function
    99PASS Testing with filter function that throws
    10 FAIL rethrows errors when getting `acceptNode` assert_throws: function "function () { walker.firstChild(); }" threw object "TypeError: Type error" ("TypeError") expected object "[object Object]" ("test")
     10PASS rethrows errors when getting `acceptNode`
    1111PASS performs `Get` on every traverse
    1212PASS Testing with filter object that throws
  • trunk/Source/WebCore/ChangeLog

    r248706 r248708  
     12019-08-14  Alexey Shvayka  <shvaikalesh@gmail.com>
     2
     3        Error thrown during "acceptNode" lookup is overridden
     4        https://bugs.webkit.org/show_bug.cgi?id=200735
     5
     6        Reviewed by Ross Kirsling.
     7
     8        Test: imported/w3c/web-platform-tests/dom/traversal/TreeWalker-acceptNode-filter-expected.html
     9
     10        * bindings/js/JSCallbackData.cpp:
     11        (WebCore::JSCallbackData::invokeCallback): Catch and return exception of callback->get call.
     12
    1132019-08-14  Myles C. Maxfield  <mmaxfield@apple.com>
    214
  • trunk/Source/WebCore/bindings/js/JSCallbackData.cpp

    r235271 r248708  
    4545    ExecState* exec = globalObject.globalExec();
    4646    VM& vm = exec->vm();
     47    auto scope = DECLARE_CATCH_SCOPE(vm);
     48
    4749    JSValue function;
    4850    CallData callData;
     
    6163        ASSERT(!functionName.isNull());
    6264        function = callback->get(exec, functionName);
     65        if (UNLIKELY(scope.exception())) {
     66            returnedException = scope.exception();
     67            scope.clearException();
     68            return JSValue();
     69        }
     70
    6371        callType = getCallData(vm, function, callData);
    6472        if (callType == CallType::None) {
Note: See TracChangeset for help on using the changeset viewer.