Changeset 265523 in webkit


Ignore:
Timestamp:
Aug 11, 2020 3:01:45 PM (4 years ago)
Author:
commit-queue@webkit.org
Message:

Unreviewed, reverting r265502.
https://bugs.webkit.org/show_bug.cgi?id=215396

Needs locking to avoid flaky GC-related crashes

Reverted changeset:

"[WebGL2] expando-loss and expando-loss-2 conformance tests
are failing"
https://bugs.webkit.org/show_bug.cgi?id=214765
https://trac.webkit.org/changeset/265502

Location:
trunk
Files:
30 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r265519 r265523  
     12020-08-11  Commit Queue  <commit-queue@webkit.org>
     2
     3        Unreviewed, reverting r265502.
     4        https://bugs.webkit.org/show_bug.cgi?id=215396
     5
     6        Needs locking to avoid flaky GC-related crashes
     7
     8        Reverted changeset:
     9
     10        "[WebGL2] expando-loss and expando-loss-2 conformance tests
     11        are failing"
     12        https://bugs.webkit.org/show_bug.cgi?id=214765
     13        https://trac.webkit.org/changeset/265502
     14
    1152020-08-11  Hector Lopez  <hector_i_lopez@apple.com>
    216
  • trunk/LayoutTests/webgl/2.0.0/conformance/misc/expando-loss-expected.txt

    r265502 r265523  
    22
    33Test: ../../resources/webgl_test_files/conformance/misc/expando-loss.html
    4 [ PASS ] All tests passed
     4[ 1: PASS ] getParameter(TEXTURE_BINDING_2D) returns instance that was bound.
     5[ 2: FAIL ] getParameter(TEXTURE_BINDING_2D): Expect basic expando to survive despite GC.
     6[ 3: FAIL ] getParameter(TEXTURE_BINDING_2D): Expect subobject expando to survive despite GC.
     7[ 4: PASS ] getParameter(FRAMEBUFFER_BINDING) returns instance that was bound.
     8[ 5: FAIL ] getParameter(FRAMEBUFFER_BINDING): Expect basic expando to survive despite GC.
     9[ 6: FAIL ] getParameter(FRAMEBUFFER_BINDING): Expect subobject expando to survive despite GC.
     10[ 7: PASS ] getParameter(RENDERBUFFER_BINDING) returns instance that was bound.
     11[ 8: FAIL ] getParameter(RENDERBUFFER_BINDING): Expect basic expando to survive despite GC.
     12[ 9: FAIL ] getParameter(RENDERBUFFER_BINDING): Expect subobject expando to survive despite GC.
     13[ 10: PASS ] getParameter(ELEMENT_ARRAY_BUFFER_BINDING) returns instance that was bound.
     14[ 11: FAIL ] getParameter(ELEMENT_ARRAY_BUFFER_BINDING): Expect basic expando to survive despite GC.
     15[ 12: FAIL ] getParameter(ELEMENT_ARRAY_BUFFER_BINDING): Expect subobject expando to survive despite GC.
     16[ 13: PASS ] getParameter(ARRAY_BUFFER_BINDING) returns instance that was bound.
     17[ 14: FAIL ] getParameter(ARRAY_BUFFER_BINDING): Expect basic expando to survive despite GC.
     18[ 15: FAIL ] getParameter(ARRAY_BUFFER_BINDING): Expect subobject expando to survive despite GC.
     19[ 16: PASS ] getParameter(TEXTURE_BINDING_CUBE_MAP) returns instance that was bound.
     20[ 17: FAIL ] getParameter(TEXTURE_BINDING_CUBE_MAP): Expect basic expando to survive despite GC.
     21[ 18: FAIL ] getParameter(TEXTURE_BINDING_CUBE_MAP): Expect subobject expando to survive despite GC.
     22[ 19: PASS ] getParameter(gl.CURRENT_PROGRAM) return instance set with useProgram
     23[ 20: PASS ] Vertex shader instance found in getAttachedShaders
     24[ 21: PASS ] Fragment shader instance found in getAttachedShaders
     25[ 22: FAIL ] Current program: Expect basic expando to survive despite GC.
     26[ 23: FAIL ] Current program: Expect subobject expando to survive despite GC.
     27[ 24: PASS ] [object WebGLProgram] is an instance of WebGLProgram
     28[ 25: FAIL ] Shader[0]: Expect basic expando to survive despite GC.
     29[ 26: FAIL ] Shader[0]: Expect subobject expando to survive despite GC.
     30[ 27: PASS ] [object WebGLShader] is an instance of WebGLShader
     31[ 28: FAIL ] Shader[1]: Expect basic expando to survive despite GC.
     32[ 29: FAIL ] Shader[1]: Expect subobject expando to survive despite GC.
     33[ 30: PASS ] [object WebGLShader] is an instance of WebGLShader
     34[ 31: PASS ] getVertexAttrib(VERTEX_ATTRIB_ARRAY_BUFFER_BINDING) return instance set with vertexAttribPointer
     35[ 32: FAIL ] Vertex Attribute Buffer: Expect basic expando to survive despite GC.
     36[ 33: FAIL ] Vertex Attribute Buffer: Expect subobject expando to survive despite GC.
     37[ 34: PASS ] [object WebGLBuffer] is an instance of WebGLBuffer
     38[ 35: PASS ] getFramebufferAttachmentParameter(COLOR_ATTACHMENT0) returns instance set with framebufferRenderbuffer
     39[ 36: PASS ] getFramebufferAttachmentParameter(DEPTH_ATTACHMENT) returns instance set with framebufferRenderbuffer
     40[ 37: PASS ] getFramebufferAttachmentParameter(STENCIL_ATTACHMENT) returns instance set with framebufferRenderbuffer
     41[ 38: PASS ] getFramebufferAttachmentParameter(DEPTH_STENCIL_ATTACHMENT) returns instance set with framebufferRenderbuffer
     42[ 39: FAIL ] COLOR_ATTACHMENT0: Expect basic expando to survive despite GC.
     43[ 40: FAIL ] COLOR_ATTACHMENT0: Expect subobject expando to survive despite GC.
     44[ 41: PASS ] [object WebGLRenderbuffer] is an instance of WebGLRenderbuffer
     45[ 42: FAIL ] DEPTH_ATTACHMENT: Expect basic expando to survive despite GC.
     46[ 43: FAIL ] DEPTH_ATTACHMENT: Expect subobject expando to survive despite GC.
     47[ 44: PASS ] [object WebGLRenderbuffer] is an instance of WebGLRenderbuffer
     48[ 45: FAIL ] STENCIL_ATTACHMENT: Expect basic expando to survive despite GC.
     49[ 46: FAIL ] STENCIL_ATTACHMENT: Expect subobject expando to survive despite GC.
     50[ 47: PASS ] [object WebGLRenderbuffer] is an instance of WebGLRenderbuffer
     51[ 48: FAIL ] DEPTH_STENCIL_ATTACHMENT: Expect basic expando to survive despite GC.
     52[ 49: FAIL ] DEPTH_STENCIL_ATTACHMENT: Expect subobject expando to survive despite GC.
     53[ 50: PASS ] [object WebGLRenderbuffer] is an instance of WebGLRenderbuffer
     54[ 51: PASS ] successfullyParsed is true
     55[ FAIL ] 28 failures reported
    556
  • trunk/LayoutTests/webgl/2.0.0/conformance2/misc/expando-loss-2-expected.txt

    r265502 r265523  
    22
    33Test: ../../resources/webgl_test_files/conformance2/misc/expando-loss-2.html
    4 [ PASS ] All tests passed
     4[ 1: PASS ] getParameter(SAMPLER_BINDING) returns instance that was bound.
     5[ 2: FAIL ] getParameter(SAMPLER_BINDING): Expect basic expando to survive despite GC.
     6[ 3: FAIL ] getParameter(SAMPLER_BINDING): Expect subobject expando to survive despite GC.
     7[ 4: PASS ] getParameter(SAMPLER_BINDING): Expect extra expando to survive despite GC.
     8[ 5: PASS ] [object WebGLSampler] is an instance of WebGLSampler
     9[ 6: PASS ] getParameter(TRANSFORM_FEEDBACK_BINDING) returns instance that was bound.
     10[ 7: FAIL ] getParameter(TRANSFORM_FEEDBACK_BINDING): Expect basic expando to survive despite GC.
     11[ 8: FAIL ] getParameter(TRANSFORM_FEEDBACK_BINDING): Expect subobject expando to survive despite GC.
     12[ 9: PASS ] getParameter(TRANSFORM_FEEDBACK_BINDING): Expect extra expando to survive despite GC.
     13[ 10: PASS ] [object WebGLTransformFeedback] is an instance of WebGLTransformFeedback
     14[ 11: PASS ] getParameter(VERTEX_ARRAY_BINDING) returns instance that was bound.
     15[ 12: FAIL ] getParameter(VERTEX_ARRAY_BINDING): Expect basic expando to survive despite GC.
     16[ 13: FAIL ] getParameter(VERTEX_ARRAY_BINDING): Expect subobject expando to survive despite GC.
     17[ 14: PASS ] getParameter(VERTEX_ARRAY_BINDING): Expect extra expando to survive despite GC.
     18[ 15: PASS ] [object WebGLVertexArrayObject] is an instance of WebGLVertexArrayObject
     19[ 16: PASS ] getParameter(TEXTURE_BINDING_3D) returns instance that was bound.
     20[ 17: FAIL ] getParameter(TEXTURE_BINDING_3D): Expect basic expando to survive despite GC.
     21[ 18: FAIL ] getParameter(TEXTURE_BINDING_3D): Expect subobject expando to survive despite GC.
     22[ 19: PASS ] getParameter(TEXTURE_BINDING_3D): Expect extra expando to survive despite GC.
     23[ 20: PASS ] [object WebGLTexture] is an instance of WebGLTexture
     24[ 21: PASS ] getParameter(TEXTURE_BINDING_2D_ARRAY) returns instance that was bound.
     25[ 22: FAIL ] getParameter(TEXTURE_BINDING_2D_ARRAY): Expect basic expando to survive despite GC.
     26[ 23: FAIL ] getParameter(TEXTURE_BINDING_2D_ARRAY): Expect subobject expando to survive despite GC.
     27[ 24: PASS ] getParameter(TEXTURE_BINDING_2D_ARRAY): Expect extra expando to survive despite GC.
     28[ 25: PASS ] [object WebGLTexture] is an instance of WebGLTexture
     29[ 26: PASS ] getParameter(READ_FRAMEBUFFER_BINDING) returns instance that was bound.
     30[ 27: FAIL ] getParameter(READ_FRAMEBUFFER_BINDING): Expect basic expando to survive despite GC.
     31[ 28: FAIL ] getParameter(READ_FRAMEBUFFER_BINDING): Expect subobject expando to survive despite GC.
     32[ 29: PASS ] getParameter(READ_FRAMEBUFFER_BINDING): Expect extra expando to survive despite GC.
     33[ 30: PASS ] [object WebGLFramebuffer] is an instance of WebGLFramebuffer
     34[ 31: PASS ] getParameter(DRAW_FRAMEBUFFER_BINDING) returns instance that was bound.
     35[ 32: FAIL ] getParameter(DRAW_FRAMEBUFFER_BINDING): Expect basic expando to survive despite GC.
     36[ 33: FAIL ] getParameter(DRAW_FRAMEBUFFER_BINDING): Expect subobject expando to survive despite GC.
     37[ 34: PASS ] getParameter(DRAW_FRAMEBUFFER_BINDING): Expect extra expando to survive despite GC.
     38[ 35: PASS ] [object WebGLFramebuffer] is an instance of WebGLFramebuffer
     39[ 36: PASS ] getParameter(COPY_READ_BUFFER_BINDING) returns instance that was bound.
     40[ 37: FAIL ] getParameter(COPY_READ_BUFFER_BINDING): Expect basic expando to survive despite GC.
     41[ 38: FAIL ] getParameter(COPY_READ_BUFFER_BINDING): Expect subobject expando to survive despite GC.
     42[ 39: PASS ] getParameter(COPY_READ_BUFFER_BINDING): Expect extra expando to survive despite GC.
     43[ 40: PASS ] [object WebGLBuffer] is an instance of WebGLBuffer
     44[ 41: PASS ] getParameter(COPY_WRITE_BUFFER_BINDING) returns instance that was bound.
     45[ 42: FAIL ] getParameter(COPY_WRITE_BUFFER_BINDING): Expect basic expando to survive despite GC.
     46[ 43: FAIL ] getParameter(COPY_WRITE_BUFFER_BINDING): Expect subobject expando to survive despite GC.
     47[ 44: PASS ] getParameter(COPY_WRITE_BUFFER_BINDING): Expect extra expando to survive despite GC.
     48[ 45: PASS ] [object WebGLBuffer] is an instance of WebGLBuffer
     49[ 46: PASS ] getParameter(PIXEL_PACK_BUFFER_BINDING) returns instance that was bound.
     50[ 47: FAIL ] getParameter(PIXEL_PACK_BUFFER_BINDING): Expect basic expando to survive despite GC.
     51[ 48: FAIL ] getParameter(PIXEL_PACK_BUFFER_BINDING): Expect subobject expando to survive despite GC.
     52[ 49: PASS ] getParameter(PIXEL_PACK_BUFFER_BINDING): Expect extra expando to survive despite GC.
     53[ 50: PASS ] [object WebGLBuffer] is an instance of WebGLBuffer
     54[ 51: PASS ] getParameter(PIXEL_UNPACK_BUFFER_BINDING) returns instance that was bound.
     55[ 52: FAIL ] getParameter(PIXEL_UNPACK_BUFFER_BINDING): Expect basic expando to survive despite GC.
     56[ 53: FAIL ] getParameter(PIXEL_UNPACK_BUFFER_BINDING): Expect subobject expando to survive despite GC.
     57[ 54: PASS ] getParameter(PIXEL_UNPACK_BUFFER_BINDING): Expect extra expando to survive despite GC.
     58[ 55: PASS ] [object WebGLBuffer] is an instance of WebGLBuffer
     59[ 56: PASS ] getParameter(TRANSFORM_FEEDBACK_BUFFER_BINDING) returns instance that was bound.
     60[ 57: FAIL ] getParameter(TRANSFORM_FEEDBACK_BUFFER_BINDING): Expect basic expando to survive despite GC.
     61[ 58: FAIL ] getParameter(TRANSFORM_FEEDBACK_BUFFER_BINDING): Expect subobject expando to survive despite GC.
     62[ 59: PASS ] getParameter(TRANSFORM_FEEDBACK_BUFFER_BINDING): Expect extra expando to survive despite GC.
     63[ 60: PASS ] [object WebGLBuffer] is an instance of WebGLBuffer
     64[ 61: PASS ] getParameter(UNIFORM_BUFFER_BINDING) returns instance that was bound.
     65[ 62: FAIL ] getParameter(UNIFORM_BUFFER_BINDING): Expect basic expando to survive despite GC.
     66[ 63: FAIL ] getParameter(UNIFORM_BUFFER_BINDING): Expect subobject expando to survive despite GC.
     67[ 64: PASS ] getParameter(UNIFORM_BUFFER_BINDING): Expect extra expando to survive despite GC.
     68[ 65: PASS ] [object WebGLBuffer] is an instance of WebGLBuffer
     69[ 66: PASS ] getIndexedParameter(TRANSFORM_FEEDBACK_BUFFER_BINDING, 0) returns instance that was bound.
     70[ 67: PASS ] getIndexedParameter(TRANSFORM_FEEDBACK_BUFFER_BINDING, 1) returns instance that was bound.
     71[ 68: PASS ] getIndexedParameter(TRANSFORM_FEEDBACK_BUFFER_BINDING, 2) returns instance that was bound.
     72[ 69: PASS ] getIndexedParameter(TRANSFORM_FEEDBACK_BUFFER_BINDING, 3) returns instance that was bound.
     73[ 70: FAIL ] getIndexedParameter(TRANSFORM_FEEDBACK_BUFFER_BINDING, 0): Expect basic expando to survive despite GC.
     74[ 71: FAIL ] getIndexedParameter(TRANSFORM_FEEDBACK_BUFFER_BINDING, 0): Expect subobject expando to survive despite GC.
     75[ 72: FAIL ] getIndexedParameter(TRANSFORM_FEEDBACK_BUFFER_BINDING, 0): Expect extra expando to survive despite GC.
     76[ 73: PASS ] [object WebGLBuffer] is an instance of WebGLBuffer
     77[ 74: FAIL ] getIndexedParameter(TRANSFORM_FEEDBACK_BUFFER_BINDING, 1): Expect basic expando to survive despite GC.
     78[ 75: FAIL ] getIndexedParameter(TRANSFORM_FEEDBACK_BUFFER_BINDING, 1): Expect subobject expando to survive despite GC.
     79[ 76: FAIL ] getIndexedParameter(TRANSFORM_FEEDBACK_BUFFER_BINDING, 1): Expect extra expando to survive despite GC.
     80[ 77: PASS ] [object WebGLBuffer] is an instance of WebGLBuffer
     81[ 78: FAIL ] getIndexedParameter(TRANSFORM_FEEDBACK_BUFFER_BINDING, 2): Expect basic expando to survive despite GC.
     82[ 79: FAIL ] getIndexedParameter(TRANSFORM_FEEDBACK_BUFFER_BINDING, 2): Expect subobject expando to survive despite GC.
     83[ 80: FAIL ] getIndexedParameter(TRANSFORM_FEEDBACK_BUFFER_BINDING, 2): Expect extra expando to survive despite GC.
     84[ 81: PASS ] [object WebGLBuffer] is an instance of WebGLBuffer
     85[ 82: PASS ] getIndexedParameter(TRANSFORM_FEEDBACK_BUFFER_BINDING, 3): Expect basic expando to survive despite GC.
     86[ 83: PASS ] getIndexedParameter(TRANSFORM_FEEDBACK_BUFFER_BINDING, 3): Expect subobject expando to survive despite GC.
     87[ 84: PASS ] getIndexedParameter(TRANSFORM_FEEDBACK_BUFFER_BINDING, 3): Expect extra expando to survive despite GC.
     88[ 85: PASS ] [object WebGLBuffer] is an instance of WebGLBuffer
     89[ 86: PASS ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 0) returns instance that was bound.
     90[ 87: PASS ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 1) returns instance that was bound.
     91[ 88: PASS ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 2) returns instance that was bound.
     92[ 89: PASS ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 3) returns instance that was bound.
     93[ 90: PASS ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 4) returns instance that was bound.
     94[ 91: PASS ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 5) returns instance that was bound.
     95[ 92: PASS ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 6) returns instance that was bound.
     96[ 93: PASS ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 7) returns instance that was bound.
     97[ 94: PASS ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 8) returns instance that was bound.
     98[ 95: PASS ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 9) returns instance that was bound.
     99[ 96: PASS ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 10) returns instance that was bound.
     100[ 97: PASS ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 11) returns instance that was bound.
     101[ 98: PASS ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 12) returns instance that was bound.
     102[ 99: PASS ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 13) returns instance that was bound.
     103[ 100: PASS ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 14) returns instance that was bound.
     104[ 101: PASS ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 15) returns instance that was bound.
     105[ 102: PASS ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 16) returns instance that was bound.
     106[ 103: PASS ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 17) returns instance that was bound.
     107[ 104: PASS ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 18) returns instance that was bound.
     108[ 105: PASS ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 19) returns instance that was bound.
     109[ 106: PASS ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 20) returns instance that was bound.
     110[ 107: PASS ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 21) returns instance that was bound.
     111[ 108: PASS ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 22) returns instance that was bound.
     112[ 109: PASS ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 23) returns instance that was bound.
     113[ 110: PASS ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 24) returns instance that was bound.
     114[ 111: PASS ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 25) returns instance that was bound.
     115[ 112: PASS ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 26) returns instance that was bound.
     116[ 113: PASS ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 27) returns instance that was bound.
     117[ 114: PASS ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 28) returns instance that was bound.
     118[ 115: PASS ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 29) returns instance that was bound.
     119[ 116: PASS ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 30) returns instance that was bound.
     120[ 117: PASS ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 31) returns instance that was bound.
     121[ 118: PASS ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 32) returns instance that was bound.
     122[ 119: PASS ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 33) returns instance that was bound.
     123[ 120: PASS ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 34) returns instance that was bound.
     124[ 121: PASS ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 35) returns instance that was bound.
     125[ 122: PASS ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 36) returns instance that was bound.
     126[ 123: PASS ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 37) returns instance that was bound.
     127[ 124: PASS ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 38) returns instance that was bound.
     128[ 125: PASS ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 39) returns instance that was bound.
     129[ 126: PASS ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 40) returns instance that was bound.
     130[ 127: PASS ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 41) returns instance that was bound.
     131[ 128: PASS ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 42) returns instance that was bound.
     132[ 129: PASS ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 43) returns instance that was bound.
     133[ 130: PASS ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 44) returns instance that was bound.
     134[ 131: PASS ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 45) returns instance that was bound.
     135[ 132: PASS ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 46) returns instance that was bound.
     136[ 133: PASS ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 47) returns instance that was bound.
     137[ 134: FAIL ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 0): Expect basic expando to survive despite GC.
     138[ 135: FAIL ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 0): Expect subobject expando to survive despite GC.
     139[ 136: FAIL ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 0): Expect extra expando to survive despite GC.
     140[ 137: PASS ] [object WebGLBuffer] is an instance of WebGLBuffer
     141[ 138: FAIL ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 1): Expect basic expando to survive despite GC.
     142[ 139: FAIL ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 1): Expect subobject expando to survive despite GC.
     143[ 140: FAIL ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 1): Expect extra expando to survive despite GC.
     144[ 141: PASS ] [object WebGLBuffer] is an instance of WebGLBuffer
     145[ 142: FAIL ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 2): Expect basic expando to survive despite GC.
     146[ 143: FAIL ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 2): Expect subobject expando to survive despite GC.
     147[ 144: FAIL ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 2): Expect extra expando to survive despite GC.
     148[ 145: PASS ] [object WebGLBuffer] is an instance of WebGLBuffer
     149[ 146: FAIL ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 3): Expect basic expando to survive despite GC.
     150[ 147: FAIL ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 3): Expect subobject expando to survive despite GC.
     151[ 148: FAIL ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 3): Expect extra expando to survive despite GC.
     152[ 149: PASS ] [object WebGLBuffer] is an instance of WebGLBuffer
     153[ 150: FAIL ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 4): Expect basic expando to survive despite GC.
     154[ 151: FAIL ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 4): Expect subobject expando to survive despite GC.
     155[ 152: FAIL ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 4): Expect extra expando to survive despite GC.
     156[ 153: PASS ] [object WebGLBuffer] is an instance of WebGLBuffer
     157[ 154: FAIL ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 5): Expect basic expando to survive despite GC.
     158[ 155: FAIL ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 5): Expect subobject expando to survive despite GC.
     159[ 156: FAIL ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 5): Expect extra expando to survive despite GC.
     160[ 157: PASS ] [object WebGLBuffer] is an instance of WebGLBuffer
     161[ 158: FAIL ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 6): Expect basic expando to survive despite GC.
     162[ 159: FAIL ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 6): Expect subobject expando to survive despite GC.
     163[ 160: FAIL ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 6): Expect extra expando to survive despite GC.
     164[ 161: PASS ] [object WebGLBuffer] is an instance of WebGLBuffer
     165[ 162: FAIL ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 7): Expect basic expando to survive despite GC.
     166[ 163: FAIL ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 7): Expect subobject expando to survive despite GC.
     167[ 164: FAIL ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 7): Expect extra expando to survive despite GC.
     168[ 165: PASS ] [object WebGLBuffer] is an instance of WebGLBuffer
     169[ 166: FAIL ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 8): Expect basic expando to survive despite GC.
     170[ 167: FAIL ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 8): Expect subobject expando to survive despite GC.
     171[ 168: FAIL ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 8): Expect extra expando to survive despite GC.
     172[ 169: PASS ] [object WebGLBuffer] is an instance of WebGLBuffer
     173[ 170: FAIL ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 9): Expect basic expando to survive despite GC.
     174[ 171: FAIL ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 9): Expect subobject expando to survive despite GC.
     175[ 172: FAIL ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 9): Expect extra expando to survive despite GC.
     176[ 173: PASS ] [object WebGLBuffer] is an instance of WebGLBuffer
     177[ 174: FAIL ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 10): Expect basic expando to survive despite GC.
     178[ 175: FAIL ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 10): Expect subobject expando to survive despite GC.
     179[ 176: FAIL ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 10): Expect extra expando to survive despite GC.
     180[ 177: PASS ] [object WebGLBuffer] is an instance of WebGLBuffer
     181[ 178: FAIL ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 11): Expect basic expando to survive despite GC.
     182[ 179: FAIL ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 11): Expect subobject expando to survive despite GC.
     183[ 180: FAIL ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 11): Expect extra expando to survive despite GC.
     184[ 181: PASS ] [object WebGLBuffer] is an instance of WebGLBuffer
     185[ 182: FAIL ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 12): Expect basic expando to survive despite GC.
     186[ 183: FAIL ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 12): Expect subobject expando to survive despite GC.
     187[ 184: FAIL ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 12): Expect extra expando to survive despite GC.
     188[ 185: PASS ] [object WebGLBuffer] is an instance of WebGLBuffer
     189[ 186: FAIL ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 13): Expect basic expando to survive despite GC.
     190[ 187: FAIL ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 13): Expect subobject expando to survive despite GC.
     191[ 188: FAIL ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 13): Expect extra expando to survive despite GC.
     192[ 189: PASS ] [object WebGLBuffer] is an instance of WebGLBuffer
     193[ 190: FAIL ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 14): Expect basic expando to survive despite GC.
     194[ 191: FAIL ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 14): Expect subobject expando to survive despite GC.
     195[ 192: FAIL ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 14): Expect extra expando to survive despite GC.
     196[ 193: PASS ] [object WebGLBuffer] is an instance of WebGLBuffer
     197[ 194: FAIL ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 15): Expect basic expando to survive despite GC.
     198[ 195: FAIL ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 15): Expect subobject expando to survive despite GC.
     199[ 196: FAIL ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 15): Expect extra expando to survive despite GC.
     200[ 197: PASS ] [object WebGLBuffer] is an instance of WebGLBuffer
     201[ 198: FAIL ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 16): Expect basic expando to survive despite GC.
     202[ 199: FAIL ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 16): Expect subobject expando to survive despite GC.
     203[ 200: FAIL ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 16): Expect extra expando to survive despite GC.
     204[ 201: PASS ] [object WebGLBuffer] is an instance of WebGLBuffer
     205[ 202: FAIL ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 17): Expect basic expando to survive despite GC.
     206[ 203: FAIL ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 17): Expect subobject expando to survive despite GC.
     207[ 204: FAIL ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 17): Expect extra expando to survive despite GC.
     208[ 205: PASS ] [object WebGLBuffer] is an instance of WebGLBuffer
     209[ 206: FAIL ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 18): Expect basic expando to survive despite GC.
     210[ 207: FAIL ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 18): Expect subobject expando to survive despite GC.
     211[ 208: FAIL ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 18): Expect extra expando to survive despite GC.
     212[ 209: PASS ] [object WebGLBuffer] is an instance of WebGLBuffer
     213[ 210: FAIL ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 19): Expect basic expando to survive despite GC.
     214[ 211: FAIL ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 19): Expect subobject expando to survive despite GC.
     215[ 212: FAIL ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 19): Expect extra expando to survive despite GC.
     216[ 213: PASS ] [object WebGLBuffer] is an instance of WebGLBuffer
     217[ 214: FAIL ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 20): Expect basic expando to survive despite GC.
     218[ 215: FAIL ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 20): Expect subobject expando to survive despite GC.
     219[ 216: FAIL ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 20): Expect extra expando to survive despite GC.
     220[ 217: PASS ] [object WebGLBuffer] is an instance of WebGLBuffer
     221[ 218: FAIL ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 21): Expect basic expando to survive despite GC.
     222[ 219: FAIL ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 21): Expect subobject expando to survive despite GC.
     223[ 220: FAIL ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 21): Expect extra expando to survive despite GC.
     224[ 221: PASS ] [object WebGLBuffer] is an instance of WebGLBuffer
     225[ 222: FAIL ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 22): Expect basic expando to survive despite GC.
     226[ 223: FAIL ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 22): Expect subobject expando to survive despite GC.
     227[ 224: FAIL ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 22): Expect extra expando to survive despite GC.
     228[ 225: PASS ] [object WebGLBuffer] is an instance of WebGLBuffer
     229[ 226: FAIL ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 23): Expect basic expando to survive despite GC.
     230[ 227: FAIL ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 23): Expect subobject expando to survive despite GC.
     231[ 228: FAIL ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 23): Expect extra expando to survive despite GC.
     232[ 229: PASS ] [object WebGLBuffer] is an instance of WebGLBuffer
     233[ 230: FAIL ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 24): Expect basic expando to survive despite GC.
     234[ 231: FAIL ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 24): Expect subobject expando to survive despite GC.
     235[ 232: FAIL ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 24): Expect extra expando to survive despite GC.
     236[ 233: PASS ] [object WebGLBuffer] is an instance of WebGLBuffer
     237[ 234: FAIL ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 25): Expect basic expando to survive despite GC.
     238[ 235: FAIL ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 25): Expect subobject expando to survive despite GC.
     239[ 236: FAIL ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 25): Expect extra expando to survive despite GC.
     240[ 237: PASS ] [object WebGLBuffer] is an instance of WebGLBuffer
     241[ 238: FAIL ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 26): Expect basic expando to survive despite GC.
     242[ 239: FAIL ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 26): Expect subobject expando to survive despite GC.
     243[ 240: FAIL ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 26): Expect extra expando to survive despite GC.
     244[ 241: PASS ] [object WebGLBuffer] is an instance of WebGLBuffer
     245[ 242: FAIL ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 27): Expect basic expando to survive despite GC.
     246[ 243: FAIL ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 27): Expect subobject expando to survive despite GC.
     247[ 244: FAIL ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 27): Expect extra expando to survive despite GC.
     248[ 245: PASS ] [object WebGLBuffer] is an instance of WebGLBuffer
     249[ 246: FAIL ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 28): Expect basic expando to survive despite GC.
     250[ 247: FAIL ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 28): Expect subobject expando to survive despite GC.
     251[ 248: FAIL ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 28): Expect extra expando to survive despite GC.
     252[ 249: PASS ] [object WebGLBuffer] is an instance of WebGLBuffer
     253[ 250: FAIL ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 29): Expect basic expando to survive despite GC.
     254[ 251: FAIL ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 29): Expect subobject expando to survive despite GC.
     255[ 252: FAIL ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 29): Expect extra expando to survive despite GC.
     256[ 253: PASS ] [object WebGLBuffer] is an instance of WebGLBuffer
     257[ 254: FAIL ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 30): Expect basic expando to survive despite GC.
     258[ 255: FAIL ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 30): Expect subobject expando to survive despite GC.
     259[ 256: FAIL ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 30): Expect extra expando to survive despite GC.
     260[ 257: PASS ] [object WebGLBuffer] is an instance of WebGLBuffer
     261[ 258: FAIL ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 31): Expect basic expando to survive despite GC.
     262[ 259: FAIL ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 31): Expect subobject expando to survive despite GC.
     263[ 260: FAIL ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 31): Expect extra expando to survive despite GC.
     264[ 261: PASS ] [object WebGLBuffer] is an instance of WebGLBuffer
     265[ 262: FAIL ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 32): Expect basic expando to survive despite GC.
     266[ 263: FAIL ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 32): Expect subobject expando to survive despite GC.
     267[ 264: FAIL ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 32): Expect extra expando to survive despite GC.
     268[ 265: PASS ] [object WebGLBuffer] is an instance of WebGLBuffer
     269[ 266: FAIL ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 33): Expect basic expando to survive despite GC.
     270[ 267: FAIL ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 33): Expect subobject expando to survive despite GC.
     271[ 268: FAIL ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 33): Expect extra expando to survive despite GC.
     272[ 269: PASS ] [object WebGLBuffer] is an instance of WebGLBuffer
     273[ 270: FAIL ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 34): Expect basic expando to survive despite GC.
     274[ 271: FAIL ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 34): Expect subobject expando to survive despite GC.
     275[ 272: FAIL ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 34): Expect extra expando to survive despite GC.
     276[ 273: PASS ] [object WebGLBuffer] is an instance of WebGLBuffer
     277[ 274: FAIL ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 35): Expect basic expando to survive despite GC.
     278[ 275: FAIL ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 35): Expect subobject expando to survive despite GC.
     279[ 276: FAIL ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 35): Expect extra expando to survive despite GC.
     280[ 277: PASS ] [object WebGLBuffer] is an instance of WebGLBuffer
     281[ 278: FAIL ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 36): Expect basic expando to survive despite GC.
     282[ 279: FAIL ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 36): Expect subobject expando to survive despite GC.
     283[ 280: FAIL ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 36): Expect extra expando to survive despite GC.
     284[ 281: PASS ] [object WebGLBuffer] is an instance of WebGLBuffer
     285[ 282: FAIL ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 37): Expect basic expando to survive despite GC.
     286[ 283: FAIL ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 37): Expect subobject expando to survive despite GC.
     287[ 284: FAIL ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 37): Expect extra expando to survive despite GC.
     288[ 285: PASS ] [object WebGLBuffer] is an instance of WebGLBuffer
     289[ 286: FAIL ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 38): Expect basic expando to survive despite GC.
     290[ 287: FAIL ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 38): Expect subobject expando to survive despite GC.
     291[ 288: FAIL ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 38): Expect extra expando to survive despite GC.
     292[ 289: PASS ] [object WebGLBuffer] is an instance of WebGLBuffer
     293[ 290: FAIL ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 39): Expect basic expando to survive despite GC.
     294[ 291: FAIL ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 39): Expect subobject expando to survive despite GC.
     295[ 292: FAIL ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 39): Expect extra expando to survive despite GC.
     296[ 293: PASS ] [object WebGLBuffer] is an instance of WebGLBuffer
     297[ 294: FAIL ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 40): Expect basic expando to survive despite GC.
     298[ 295: FAIL ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 40): Expect subobject expando to survive despite GC.
     299[ 296: FAIL ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 40): Expect extra expando to survive despite GC.
     300[ 297: PASS ] [object WebGLBuffer] is an instance of WebGLBuffer
     301[ 298: FAIL ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 41): Expect basic expando to survive despite GC.
     302[ 299: FAIL ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 41): Expect subobject expando to survive despite GC.
     303[ 300: FAIL ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 41): Expect extra expando to survive despite GC.
     304[ 301: PASS ] [object WebGLBuffer] is an instance of WebGLBuffer
     305[ 302: FAIL ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 42): Expect basic expando to survive despite GC.
     306[ 303: FAIL ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 42): Expect subobject expando to survive despite GC.
     307[ 304: FAIL ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 42): Expect extra expando to survive despite GC.
     308[ 305: PASS ] [object WebGLBuffer] is an instance of WebGLBuffer
     309[ 306: FAIL ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 43): Expect basic expando to survive despite GC.
     310[ 307: FAIL ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 43): Expect subobject expando to survive despite GC.
     311[ 308: FAIL ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 43): Expect extra expando to survive despite GC.
     312[ 309: PASS ] [object WebGLBuffer] is an instance of WebGLBuffer
     313[ 310: FAIL ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 44): Expect basic expando to survive despite GC.
     314[ 311: FAIL ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 44): Expect subobject expando to survive despite GC.
     315[ 312: FAIL ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 44): Expect extra expando to survive despite GC.
     316[ 313: PASS ] [object WebGLBuffer] is an instance of WebGLBuffer
     317[ 314: FAIL ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 45): Expect basic expando to survive despite GC.
     318[ 315: FAIL ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 45): Expect subobject expando to survive despite GC.
     319[ 316: FAIL ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 45): Expect extra expando to survive despite GC.
     320[ 317: PASS ] [object WebGLBuffer] is an instance of WebGLBuffer
     321[ 318: FAIL ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 46): Expect basic expando to survive despite GC.
     322[ 319: FAIL ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 46): Expect subobject expando to survive despite GC.
     323[ 320: FAIL ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 46): Expect extra expando to survive despite GC.
     324[ 321: PASS ] [object WebGLBuffer] is an instance of WebGLBuffer
     325[ 322: PASS ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 47): Expect basic expando to survive despite GC.
     326[ 323: PASS ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 47): Expect subobject expando to survive despite GC.
     327[ 324: PASS ] getIndexedParameter(UNIFORM_BUFFER_BINDING, 47): Expect extra expando to survive despite GC.
     328[ 325: PASS ] [object WebGLBuffer] is an instance of WebGLBuffer
     329[ 326: PASS ] CURRENT_QUERY returns instance that was bound.
     330[ 327: PASS ] CURRENT_QUERY returns instance that was bound.
     331[ 328: FAIL ] Query: Expect basic expando to survive despite GC.
     332[ 329: FAIL ] Query: Expect subobject expando to survive despite GC.
     333[ 330: PASS ] Query: Expect extra expando to survive despite GC.
     334[ 331: PASS ] [object WebGLQuery] is an instance of WebGLQuery
     335[ 332: FAIL ] Query: Expect basic expando to survive despite GC.
     336[ 333: FAIL ] Query: Expect subobject expando to survive despite GC.
     337[ 334: PASS ] Query: Expect extra expando to survive despite GC.
     338[ 335: PASS ] [object WebGLQuery] is an instance of WebGLQuery
     339[ 336: PASS ] successfullyParsed is true
     340[ FAIL ] 180 failures reported
    5341
  • trunk/LayoutTests/webgl/2.0.0/resources/webgl_test_files/js/js-test-pre.js

    r265502 r265523  
    709709    }
    710710
    711     // WebKit's MiniBrowser
    712     if (window.$vm) {
    713         window.$vm.gc();
    714         return;
    715     }
    716 
    717711    function gcRec(n) {
    718712        if (n < 1)
  • trunk/Source/WebCore/ChangeLog

    r265518 r265523  
     12020-08-11  Commit Queue  <commit-queue@webkit.org>
     2
     3        Unreviewed, reverting r265502.
     4        https://bugs.webkit.org/show_bug.cgi?id=215396
     5
     6        Needs locking to avoid flaky GC-related crashes
     7
     8        Reverted changeset:
     9
     10        "[WebGL2] expando-loss and expando-loss-2 conformance tests
     11        are failing"
     12        https://bugs.webkit.org/show_bug.cgi?id=214765
     13        https://trac.webkit.org/changeset/265502
     14
    1152020-08-11  Jon Davis  <jond@apple.com>
    216
  • trunk/Source/WebCore/bindings/js/JSWebGL2RenderingContextCustom.cpp

    r265502 r265523  
    3737{
    3838    visitor.addOpaqueRoot(&wrapped());
    39     wrapped().visitReferencedJSWrappers(visitor);
    4039}
    4140
  • trunk/Source/WebCore/bindings/js/JSWebGLRenderingContextCustom.cpp

    r265502 r265523  
    3737{
    3838    visitor.addOpaqueRoot(&wrapped());
    39     wrapped().visitReferencedJSWrappers(visitor);
    4039}
    4140
  • trunk/Source/WebCore/html/canvas/WebGL2RenderingContext.cpp

    r265502 r265523  
    6767#include <JavaScriptCore/HeapInlines.h>
    6868#include <JavaScriptCore/JSGenericTypedArrayViewInlines.h>
    69 #include <JavaScriptCore/SlotVisitor.h>
    70 #include <JavaScriptCore/SlotVisitorInlines.h>
    7169#include <JavaScriptCore/TypedArrayType.h>
    7270#include <wtf/IsoMallocInlines.h>
     
    30113009    }
    30123010    return true;
    3013 }
    3014 
    3015 void WebGL2RenderingContext::visitReferencedJSWrappers(JSC::SlotVisitor& visitor)
    3016 {
    3017     WebGLRenderingContextBase::visitReferencedJSWrappers(visitor);
    3018 
    3019     visitor.addOpaqueRoot(m_readFramebufferBinding.get());
    3020     if (m_readFramebufferBinding)
    3021         m_readFramebufferBinding->visitReferencedJSWrappers(visitor);
    3022 
    3023     visitor.addOpaqueRoot(m_boundTransformFeedback.get());
    3024     if (m_boundTransformFeedback)
    3025         m_boundTransformFeedback->visitReferencedJSWrappers(visitor);
    3026 
    3027     visitor.addOpaqueRoot(m_boundCopyReadBuffer.get());
    3028     visitor.addOpaqueRoot(m_boundCopyWriteBuffer.get());
    3029     visitor.addOpaqueRoot(m_boundPixelPackBuffer.get());
    3030     visitor.addOpaqueRoot(m_boundPixelUnpackBuffer.get());
    3031     visitor.addOpaqueRoot(m_boundTransformFeedbackBuffer.get());
    3032     visitor.addOpaqueRoot(m_boundUniformBuffer.get());
    3033 
    3034     for (auto& buffer : m_boundIndexedUniformBuffers)
    3035         visitor.addOpaqueRoot(buffer.get());
    3036 
    3037     for (auto& entry : m_activeQueries)
    3038         visitor.addOpaqueRoot(entry.value.get());
    3039 
    3040     for (auto& entry : m_boundSamplers)
    3041         visitor.addOpaqueRoot(entry.get());
    30423011}
    30433012
  • trunk/Source/WebCore/html/canvas/WebGL2RenderingContext.h

    r265502 r265523  
    262262    bool checkAndTranslateAttachments(const char* functionName, GCGLenum, Vector<GCGLenum>&);
    263263
    264     void visitReferencedJSWrappers(JSC::SlotVisitor&) override;
    265 
    266264private:
    267265    WebGL2RenderingContext(CanvasBase&, GraphicsContextGLAttributes);
  • trunk/Source/WebCore/html/canvas/WebGLBuffer.idl

    r265502 r265523  
    2626[
    2727    Conditional=WEBGL,
    28     GenerateIsReachable=Impl
    2928] interface WebGLBuffer {
    3029};
  • trunk/Source/WebCore/html/canvas/WebGLFramebuffer.cpp

    r265502 r265523  
    3333#include "WebGLDrawBuffers.h"
    3434#include "WebGLRenderingContextBase.h"
    35 #include <JavaScriptCore/SlotVisitor.h>
    36 #include <JavaScriptCore/SlotVisitorInlines.h>
    3735
    3836namespace WebCore {
     
    5957        void attach(GraphicsContextGLOpenGL*, GCGLenum target, GCGLenum attachment) override;
    6058        void unattach(GraphicsContextGLOpenGL*, GCGLenum target, GCGLenum attachment) override;
    61         void visitReferencedJSWrappers(JSC::SlotVisitor&) override;
    6259
    6360        WebGLRenderbufferAttachment() { };
     
    139136#endif
    140137            context->framebufferRenderbuffer(target, attachment, GraphicsContextGL::RENDERBUFFER, 0);
    141     }
    142 
    143     void WebGLRenderbufferAttachment::visitReferencedJSWrappers(JSC::SlotVisitor& visitor)
    144     {
    145         visitor.addOpaqueRoot(m_renderbuffer.get());
    146138    }
    147139
     
    165157        void attach(GraphicsContextGLOpenGL*, GCGLenum target, GCGLenum attachment) override;
    166158        void unattach(GraphicsContextGLOpenGL*, GCGLenum target, GCGLenum attachment) override;
    167         void visitReferencedJSWrappers(JSC::SlotVisitor&) override;
    168159
    169160        WebGLTextureAttachment() { };
     
    261252            context->framebufferTexture2D(GraphicsContextGL::FRAMEBUFFER, attachment, m_target, 0, m_level);
    262253#endif
    263     }
    264 
    265     void WebGLTextureAttachment::visitReferencedJSWrappers(JSC::SlotVisitor& visitor)
    266     {
    267         visitor.addOpaqueRoot(m_texture.get());
    268254    }
    269255
     
    704690}
    705691
    706 void WebGLFramebuffer::visitReferencedJSWrappers(JSC::SlotVisitor& visitor)
    707 {
    708     for (auto& entry : m_attachments)
    709         entry.value->visitReferencedJSWrappers(visitor);
    710 }
    711 
    712692void WebGLFramebuffer::setAttachmentInternal(GCGLenum attachment, GCGLenum texTarget, WebGLTexture* texture, GCGLint level, GCGLint layer)
    713693{
  • trunk/Source/WebCore/html/canvas/WebGLFramebuffer.h

    r265502 r265523  
    3434#include <wtf/Vector.h>
    3535
    36 namespace JSC {
    37 class SlotVisitor;
    38 }
    39 
    4036namespace WebCore {
    4137
     
    6258        virtual void attach(GraphicsContextGLOpenGL*, GCGLenum target, GCGLenum attachment) = 0;
    6359        virtual void unattach(GraphicsContextGLOpenGL*, GCGLenum target, GCGLenum attachment) = 0;
    64         virtual void visitReferencedJSWrappers(JSC::SlotVisitor&) = 0;
    6560
    6661    protected:
     
    111106    GCGLenum getDrawBuffer(GCGLenum);
    112107
    113     void visitReferencedJSWrappers(JSC::SlotVisitor&);
    114 
    115108private:
    116109    WebGLFramebuffer(WebGLRenderingContextBase&);
  • trunk/Source/WebCore/html/canvas/WebGLFramebuffer.idl

    r265502 r265523  
    2525
    2626[
    27     Conditional=WEBGL,
    28     GenerateIsReachable=Impl
     27    Conditional=WEBGL
    2928] interface WebGLFramebuffer {
    3029};
  • trunk/Source/WebCore/html/canvas/WebGLProgram.cpp

    r265502 r265523  
    3434#include "WebGLRenderingContextBase.h"
    3535#include "WebGLShader.h"
    36 #include <JavaScriptCore/SlotVisitor.h>
    37 #include <JavaScriptCore/SlotVisitorInlines.h>
    3836#include <wtf/Lock.h>
    3937#include <wtf/NeverDestroyed.h>
     
    197195        return false;
    198196    }
    199 }
    200 
    201 void WebGLProgram::visitReferencedJSWrappers(JSC::SlotVisitor& visitor)
    202 {
    203     visitor.addOpaqueRoot(m_vertexShader.get());
    204     visitor.addOpaqueRoot(m_fragmentShader.get());
    205197}
    206198
  • trunk/Source/WebCore/html/canvas/WebGLProgram.h

    r265502 r265523  
    3434#include <wtf/Lock.h>
    3535#include <wtf/Vector.h>
    36 
    37 namespace JSC {
    38 class SlotVisitor;
    39 }
    4036
    4137namespace WebCore {
     
    8581    }
    8682
    87     void visitReferencedJSWrappers(JSC::SlotVisitor&);
    88 
    8983private:
    9084    WebGLProgram(WebGLRenderingContextBase&);
  • trunk/Source/WebCore/html/canvas/WebGLProgram.idl

    r265502 r265523  
    2525
    2626[
    27     Conditional=WEBGL,
    28     GenerateIsReachable=Impl
     27    Conditional=WEBGL
    2928] interface WebGLProgram {
    3029};
  • trunk/Source/WebCore/html/canvas/WebGLQuery.idl

    r265502 r265523  
    2525
    2626[
    27     Conditional=WEBGL,
    28     GenerateIsReachable=Impl
     27    Conditional=WEBGL
    2928] interface WebGLQuery {
    3029};
  • trunk/Source/WebCore/html/canvas/WebGLRenderbuffer.idl

    r265502 r265523  
    2525
    2626[
    27     Conditional=WEBGL,
    28     GenerateIsReachable=Impl
     27    Conditional=WEBGL
    2928] interface WebGLRenderbuffer {
    3029};
  • trunk/Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp

    r265502 r265523  
    103103#include <JavaScriptCore/ScriptCallStack.h>
    104104#include <JavaScriptCore/ScriptCallStackFactory.h>
    105 #include <JavaScriptCore/SlotVisitor.h>
    106 #include <JavaScriptCore/SlotVisitorInlines.h>
    107105#include <JavaScriptCore/TypedArrayInlines.h>
    108106#include <JavaScriptCore/Uint32Array.h>
     
    77677765}
    77687766
    7769 void WebGLRenderingContextBase::visitReferencedJSWrappers(JSC::SlotVisitor& visitor)
    7770 {
    7771     visitor.addOpaqueRoot(m_boundArrayBuffer.get());
    7772 
    7773     visitor.addOpaqueRoot(m_boundVertexArrayObject.get());
    7774     if (m_boundVertexArrayObject)
    7775         m_boundVertexArrayObject->visitReferencedJSWrappers(visitor);
    7776 
    7777     visitor.addOpaqueRoot(m_currentProgram.get());
    7778     if (m_currentProgram)
    7779         m_currentProgram->visitReferencedJSWrappers(visitor);
    7780 
    7781     visitor.addOpaqueRoot(m_framebufferBinding.get());
    7782     if (m_framebufferBinding)
    7783         m_framebufferBinding->visitReferencedJSWrappers(visitor);
    7784 
    7785     visitor.addOpaqueRoot(m_renderbufferBinding.get());
    7786 
    7787     for (auto& unit : m_textureUnits) {
    7788         visitor.addOpaqueRoot(unit.texture2DBinding.get());
    7789         visitor.addOpaqueRoot(unit.textureCubeMapBinding.get());
    7790         visitor.addOpaqueRoot(unit.texture3DBinding.get());
    7791         visitor.addOpaqueRoot(unit.texture2DArrayBinding.get());
    7792     }
    7793 
    7794     // Extensions' IDL files use GenerateIsReachable=ImplWebGLRenderingContext,
    7795     // which checks to see whether the context is in the opaque root set (it is;
    7796     // it's added in JSWebGLRenderingContext / JSWebGL2RenderingContext's custom
    7797     // bindings code). For this reason it's unnecessary to explicitly add opaque
    7798     // roots for extensions.
    7799 }
    7800 
    78017767void WebGLRenderingContextBase::prepareForDisplay()
    78027768{
  • trunk/Source/WebCore/html/canvas/WebGLRenderingContextBase.h

    r265502 r265523  
    5757#endif
    5858
    59 namespace JSC {
    60 class SlotVisitor;
    61 }
    62 
    6359namespace WebCore {
    6460
     
    402398    void recycleContext() override;
    403399    void dispatchContextChangedNotification() override;
    404 
    405     virtual void visitReferencedJSWrappers(JSC::SlotVisitor&);
    406400
    407401protected:
  • trunk/Source/WebCore/html/canvas/WebGLSampler.idl

    r265502 r265523  
    2525
    2626[
    27     Conditional=WEBGL,
    28     GenerateIsReachable=Impl
     27    Conditional=WEBGL
    2928] interface WebGLSampler {
    3029};
  • trunk/Source/WebCore/html/canvas/WebGLShader.idl

    r265502 r265523  
    2525
    2626[
    27     Conditional=WEBGL,
    28     GenerateIsReachable=Impl
     27    Conditional=WEBGL
    2928] interface WebGLShader {
    3029};
  • trunk/Source/WebCore/html/canvas/WebGLTexture.idl

    r265502 r265523  
    2525
    2626[
    27     Conditional=WEBGL,
    28     GenerateIsReachable=Impl
     27    Conditional=WEBGL
    2928] interface WebGLTexture {
    3029};
  • trunk/Source/WebCore/html/canvas/WebGLTransformFeedback.cpp

    r265502 r265523  
    3131#include "WebGLContextGroup.h"
    3232#include "WebGLRenderingContextBase.h"
    33 #include <JavaScriptCore/SlotVisitor.h>
    34 #include <JavaScriptCore/SlotVisitorInlines.h>
    3533
    3634namespace WebCore {
     
    8987}
    9088
    91 void WebGLTransformFeedback::visitReferencedJSWrappers(JSC::SlotVisitor& visitor)
    92 {
    93     for (auto& buffer : m_boundIndexedTransformFeedbackBuffers)
    94         visitor.addOpaqueRoot(buffer.get());
    95 
    96     visitor.addOpaqueRoot(m_program.get());
    97 }
    98 
    9989void WebGLTransformFeedback::unbindBuffer(WebGLBuffer& buffer)
    10090{
  • trunk/Source/WebCore/html/canvas/WebGLTransformFeedback.h

    r265502 r265523  
    3131#include "WebGLSharedObject.h"
    3232
    33 namespace JSC {
    34 class SlotVisitor;
    35 }
    36 
    3733namespace WebCore {
    3834
     
    6662   
    6763    bool hasEnoughBuffers(GCGLuint numRequired) const;
    68 
    69     void visitReferencedJSWrappers(JSC::SlotVisitor&);
    70 
    7164private:
    7265    WebGLTransformFeedback(WebGL2RenderingContext&);
  • trunk/Source/WebCore/html/canvas/WebGLTransformFeedback.idl

    r265502 r265523  
    2626[
    2727    Conditional=WEBGL2,
    28     EnabledAtRuntime=WebGL2,
    29     GenerateIsReachable=Impl
     28    EnabledAtRuntime=WebGL2
    3029] interface WebGLTransformFeedback {
    3130};
  • trunk/Source/WebCore/html/canvas/WebGLVertexArrayObject.idl

    r265502 r265523  
    2626[
    2727    Conditional=WEBGL2,
    28     EnabledAtRuntime=WebGL2,
    29     GenerateIsReachable=Impl
     28    EnabledAtRuntime=WebGL2
    3029] interface WebGLVertexArrayObject {
    3130};
  • trunk/Source/WebCore/html/canvas/WebGLVertexArrayObjectBase.cpp

    r265502 r265523  
    3030
    3131#include "WebGLRenderingContextBase.h"
    32 #include <JavaScriptCore/SlotVisitor.h>
    33 #include <JavaScriptCore/SlotVisitorInlines.h>
    3432
    3533namespace WebCore {
     
    107105    m_vertexAttribState[index].divisor = divisor;
    108106}
    109 
    110 void WebGLVertexArrayObjectBase::visitReferencedJSWrappers(JSC::SlotVisitor& visitor)
    111 {
    112     visitor.addOpaqueRoot(m_boundElementArrayBuffer.get());
    113     for (auto& state : m_vertexAttribState)
    114         visitor.addOpaqueRoot(state.bufferBinding.get());
    115 }
    116 
     107   
    117108}
    118109
  • trunk/Source/WebCore/html/canvas/WebGLVertexArrayObjectBase.h

    r265502 r265523  
    3131#include "WebGLBuffer.h"
    3232#include "WebGLContextObject.h"
    33 
    34 namespace JSC {
    35 class SlotVisitor;
    36 }
    3733
    3834namespace WebCore {
     
    7369    void setVertexAttribDivisor(GCGLuint index, GCGLuint divisor);
    7470
    75     void visitReferencedJSWrappers(JSC::SlotVisitor&);
    76 
    7771protected:
    7872    WebGLVertexArrayObjectBase(WebGLRenderingContextBase&, Type);
  • trunk/Source/WebCore/html/canvas/WebGLVertexArrayObjectOES.idl

    r265502 r265523  
    2626[
    2727    NoInterfaceObject,
    28     Conditional=WEBGL,
    29     GenerateIsReachable=Impl
     28    Conditional=WEBGL
    3029] interface WebGLVertexArrayObjectOES {
    3130};
Note: See TracChangeset for help on using the changeset viewer.