Changeset 264866 in webkit


Ignore:
Timestamp:
Jul 24, 2020, 3:56:01 PM (5 years ago)
Author:
mark.lam@apple.com
Message:

Fix exception check handling below postMessage().
https://bugs.webkit.org/show_bug.cgi?id=214761
<rdar://problem/65932136>

Reviewed by Yusuke Suzuki and Keith Miller.

Source/WebCore:

Test: js/dom/missing-exception-check-below-postMessage.html

  • bindings/js/JSDOMConvertSequences.h:

(WebCore::Detail::SequenceConverter::convertArray):
(WebCore::Detail::SequenceConverter::convert):

LayoutTests:

  • js/dom/missing-exception-check-below-postMessage-expected.txt: Added.
  • js/dom/missing-exception-check-below-postMessage.html: Added.
Location:
trunk
Files:
2 added
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r264865 r264866  
     12020-07-24  Mark Lam  <mark.lam@apple.com>
     2
     3        Fix exception check handling below postMessage().
     4        https://bugs.webkit.org/show_bug.cgi?id=214761
     5        <rdar://problem/65932136>
     6
     7        Reviewed by Yusuke Suzuki and Keith Miller.
     8
     9        * js/dom/missing-exception-check-below-postMessage-expected.txt: Added.
     10        * js/dom/missing-exception-check-below-postMessage.html: Added.
     11
    1122020-07-24  Kenneth Russell  <kbr@chromium.org>
    213
  • trunk/Source/WebCore/ChangeLog

    r264864 r264866  
     12020-07-24  Mark Lam  <mark.lam@apple.com>
     2
     3        Fix exception check handling below postMessage().
     4        https://bugs.webkit.org/show_bug.cgi?id=214761
     5        <rdar://problem/65932136>
     6
     7        Reviewed by Yusuke Suzuki and Keith Miller.
     8
     9        Test: js/dom/missing-exception-check-below-postMessage.html
     10
     11        * bindings/js/JSDOMConvertSequences.h:
     12        (WebCore::Detail::SequenceConverter::convertArray):
     13        (WebCore::Detail::SequenceConverter::convert):
     14
    1152020-07-24  Eric Carlson  <eric.carlson@apple.com>
    216
  • trunk/Source/WebCore/bindings/js/JSDOMConvertSequences.h

    r258498 r264866  
    196196    using ReturnType = typename GenericConverter::ReturnType;
    197197
    198     static ReturnType convertArray(JSC::JSGlobalObject& lexicalGlobalObject, JSC::ThrowScope& scope, JSC::JSArray* array)
    199     {
     198    static ReturnType convertArray(JSC::JSGlobalObject& lexicalGlobalObject, JSC::JSArray* array)
     199    {
     200        auto& vm = lexicalGlobalObject.vm();
     201        auto scope = DECLARE_THROW_SCOPE(vm);
    200202        unsigned length = array->length();
    201203
     
    250252        JSC::JSObject* object = JSC::asObject(value);
    251253        if (Converter<IDLType>::conversionHasSideEffects)
    252             return GenericConverter::convert(lexicalGlobalObject, object);
     254            RELEASE_AND_RETURN(scope, (GenericConverter::convert(lexicalGlobalObject, object)));
    253255
    254256        if (!JSC::isJSArray(object))
    255             return GenericConverter::convert(lexicalGlobalObject, object);
     257            RELEASE_AND_RETURN(scope, (GenericConverter::convert(lexicalGlobalObject, object)));
    256258
    257259        JSC::JSArray* array = JSC::asArray(object);
    258260        if (!array->isIteratorProtocolFastAndNonObservable())
    259             return GenericConverter::convert(lexicalGlobalObject, object);
     261            RELEASE_AND_RETURN(scope, (GenericConverter::convert(lexicalGlobalObject, object)));
    260262       
    261         return convertArray(lexicalGlobalObject, scope, array);
    262     }
    263 
    264     static ReturnType convert(JSC::JSGlobalObject& lexicalGlobalObject, JSC::JSObject* object, JSC::JSValue method)
    265     {
    266         auto& vm = JSC::getVM(&lexicalGlobalObject);
    267         auto scope = DECLARE_THROW_SCOPE(vm);
    268 
     263        RELEASE_AND_RETURN(scope, (convertArray(lexicalGlobalObject, array)));
     264    }
     265
     266    static ReturnType convert(JSC::JSGlobalObject& lexicalGlobalObject, JSC::JSObject* object, JSC::JSValue method)
     267    {
    269268        if (Converter<IDLType>::conversionHasSideEffects)
    270269            return GenericConverter::convert(lexicalGlobalObject, object, method);
     
    277276            return GenericConverter::convert(lexicalGlobalObject, object, method);
    278277
    279         return convertArray(lexicalGlobalObject, scope, array);
     278        return convertArray(lexicalGlobalObject, array);
    280279    }
    281280};
Note: See TracChangeset for help on using the changeset viewer.