⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

Changeset 277411 in webkit


Ignore:
Timestamp:
May 12, 2021, 5:09:38 PM (5 years ago)
Author:
Chris Dumez
Message:

ASSERTION FAILED: actualVTablePointer == expectedVTablePointer in toJSNewlyCreated(JSC::JSGlobalObject *, WebCore::JSDOMGlobalObject *, Ref<WebCore::AudioNode> &&)
https://bugs.webkit.org/show_bug.cgi?id=225719
<rdar://77828031>

Reviewed by Geoffrey Garen.

Source/WebCore:

AudioNode has (a lot of) subclasses that are exposed to JS (for which we call toJS() for).
As a result, AudioNode needs a custom toJS() implementation which returns the correct subclass
wrapper, instead of a generic JSAudioNode.

Test: webaudio/event-relatedTarget-audionode.html

  • Modules/webaudio/AudioNode.idl:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/JSAudioNodeCustom.cpp: Added.

(WebCore::toJSNewlyCreated):
(WebCore::toJS):

LayoutTests:

Add layout test coverage. This test was reliably crashing before the fix.

  • webaudio/event-relatedTarget-audionode-expected.txt: Added.
  • webaudio/event-relatedTarget-audionode.html: Added.
Location:
trunk
Files:
3 added
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r277410 r277411  
     12021-05-12  Chris Dumez  <cdumez@apple.com>
     2
     3        ASSERTION FAILED: actualVTablePointer == expectedVTablePointer in toJSNewlyCreated(JSC::JSGlobalObject *, WebCore::JSDOMGlobalObject *, Ref<WebCore::AudioNode> &&)
     4        https://bugs.webkit.org/show_bug.cgi?id=225719
     5        <rdar://77828031>
     6
     7        Reviewed by Geoffrey Garen.
     8
     9        Add layout test coverage. This test was reliably crashing before the fix.
     10
     11        * webaudio/event-relatedTarget-audionode-expected.txt: Added.
     12        * webaudio/event-relatedTarget-audionode.html: Added.
     13
    1142021-05-12  Robert Jenner  <jenner@apple.com>
    215
  • trunk/Source/WebCore/ChangeLog

    r277391 r277411  
     12021-05-12  Chris Dumez  <cdumez@apple.com>
     2
     3        ASSERTION FAILED: actualVTablePointer == expectedVTablePointer in toJSNewlyCreated(JSC::JSGlobalObject *, WebCore::JSDOMGlobalObject *, Ref<WebCore::AudioNode> &&)
     4        https://bugs.webkit.org/show_bug.cgi?id=225719
     5        <rdar://77828031>
     6
     7        Reviewed by Geoffrey Garen.
     8
     9        AudioNode has (a lot of) subclasses that are exposed to JS (for which we call toJS() for).
     10        As a result, AudioNode needs a custom toJS() implementation which returns the correct subclass
     11        wrapper, instead of a generic JSAudioNode.
     12
     13        Test: webaudio/event-relatedTarget-audionode.html
     14
     15        * Modules/webaudio/AudioNode.idl:
     16        * Sources.txt:
     17        * WebCore.xcodeproj/project.pbxproj:
     18        * bindings/js/JSAudioNodeCustom.cpp: Added.
     19        (WebCore::toJSNewlyCreated):
     20        (WebCore::toJS):
     21
    1222021-05-12  Ziran Sun  <zsun@igalia.com>
    223
  • trunk/Source/WebCore/Modules/webaudio/AudioNode.idl

    r274832 r277411  
    2525[
    2626    Conditional=WEB_AUDIO,
     27    CustomToJSObject,
    2728    Exposed=Window
    2829] interface AudioNode : EventTarget {
  • trunk/Source/WebCore/Sources.txt

    r277369 r277411  
    512512bindings/js/JSAttrCustom.cpp
    513513bindings/js/JSAudioBufferCustom.cpp
     514bindings/js/JSAudioNodeCustom.cpp
    514515bindings/js/JSAudioTrackCustom.cpp
    515516bindings/js/JSAudioTrackListCustom.cpp
  • trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj

    r277369 r277411  
    83068306                466172E923A2ABFA003AB309 /* PostMessageOptions.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = PostMessageOptions.idl; sourceTree = "<group>"; };
    83078307                466172EB23A2ABFA003AB309 /* PostMessageOptions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PostMessageOptions.h; sourceTree = "<group>"; };
     8308                466536FA264C8DD100AAD1D7 /* JSAudioNodeCustom.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = JSAudioNodeCustom.cpp; sourceTree = "<group>"; };
    83088309                466DC6AB1EDE021D00746224 /* JSDOMRectList.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSDOMRectList.cpp; sourceTree = "<group>"; };
    83098310                466ED8D21EDE0135005E43F6 /* JSDOMRectList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSDOMRectList.h; sourceTree = "<group>"; };
     
    2300423005                                BC2ED6BB0C6BD2F000920BFF /* JSAttrCustom.cpp */,
    2300523006                                46C3A8D32548D4B700C8C53A /* JSAudioBufferCustom.cpp */,
     23007                                466536FA264C8DD100AAD1D7 /* JSAudioNodeCustom.cpp */,
    2300623008                                BE6DF70E171CA2DA00DD52B8 /* JSAudioTrackCustom.cpp */,
    2300723009                                BE6DF710171CA2DA00DD52B8 /* JSAudioTrackListCustom.cpp */,
Note: See TracChangeset for help on using the changeset viewer.