diff --git a/crates/web-sys/foo b/crates/web-sys/foo new file mode 100644 index 00000000..789d77f9 --- /dev/null +++ b/crates/web-sys/foo @@ -0,0 +1,3535 @@ +bufferData + bufferData + bufferData + bufferData + bufferData + bufferData + bufferData + bufferData + bufferData + bufferSubData + bufferSubData + bufferSubData + bufferSubData + bufferSubData + bufferSubData + compressedTexImage2D + compressedTexImage2D + compressedTexImage2D + compressedTexImage2D + compressedTexImage2D + compressedTexImage2D + compressedTexImage2D + compressedTexSubImage2D + compressedTexSubImage2D + compressedTexSubImage2D + compressedTexSubImage2D + compressedTexSubImage2D + compressedTexSubImage2D + compressedTexSubImage2D + compressedTexSubImage2D + readPixels + readPixels + readPixels + readPixels + readPixels + readPixels + readPixels + texImage2D + texImage2D + texImage2D + texImage2D + texImage2D + texImage2D + texImage2D + texImage2D + texImage2D + texImage2D + texImage2D + texImage2D + texImage2D + texImage2D + texImage2D + texImage2D + texImage2D + texImage2D + texImage2D + texImage2D + texImage2D + texImage2D + texImage2D + texImage2D + texImage2D + texImage2D + texImage2D + texImage2D + texImage2D + texImage2D + texImage2D + texImage2D + texImage2D + texImage2D + texImage2D + texImage2D + texImage2D + texImage2D + texImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + uniform1fv + uniform1fv + uniform1iv + uniform1iv + uniform2fv + uniform2fv + uniform2iv + uniform2iv + uniform3fv + uniform3fv + uniform3iv + uniform3iv + uniform4fv + uniform4fv + uniform4iv + uniform4iv + uniformMatrix2fv + uniformMatrix2fv + uniformMatrix2fv + uniformMatrix3fv + uniformMatrix3fv + uniformMatrix3fv + uniformMatrix4fv + uniformMatrix4fv + uniformMatrix4fv + activeTexture + attachShader + attachShader + bindAttribLocation + bindAttribLocation + bindAttribLocation + bindBuffer + bindBuffer + bindFramebuffer + bindFramebuffer + bindRenderbuffer + bindRenderbuffer + bindTexture + bindTexture + blendColor + blendColor + blendColor + blendColor + blendEquation + blendEquationSeparate + blendEquationSeparate + blendFunc + blendFunc + blendFuncSeparate + blendFuncSeparate + blendFuncSeparate + blendFuncSeparate + checkFramebufferStatus + clear + clearColor + clearColor + clearColor + clearColor + clearDepth + clearStencil + colorMask + colorMask + colorMask + colorMask + compileShader + copyTexImage2D + copyTexImage2D + copyTexImage2D + copyTexImage2D + copyTexImage2D + copyTexImage2D + copyTexImage2D + copyTexImage2D + copyTexSubImage2D + copyTexSubImage2D + copyTexSubImage2D + copyTexSubImage2D + copyTexSubImage2D + copyTexSubImage2D + copyTexSubImage2D + copyTexSubImage2D + createShader + cullFace + deleteBuffer + deleteFramebuffer + deleteProgram + deleteRenderbuffer + deleteShader + deleteTexture + depthFunc + depthMask + depthRange + depthRange + detachShader + detachShader + disable + disableVertexAttribArray + drawArrays + drawArrays + drawArrays + drawElements + drawElements + drawElements + drawElements + enable + enableVertexAttribArray + framebufferRenderbuffer + framebufferRenderbuffer + framebufferRenderbuffer + framebufferRenderbuffer + framebufferTexture2D + framebufferTexture2D + framebufferTexture2D + framebufferTexture2D + framebufferTexture2D + frontFace + generateMipmap + getActiveAttrib + getActiveAttrib + getActiveUniform + getActiveUniform + getAttachedShaders + getAttribLocation + getAttribLocation + getBufferParameter + getBufferParameter + getExtension + getFramebufferAttachmentParameter + getFramebufferAttachmentParameter + getFramebufferAttachmentParameter + getParameter + getProgramInfoLog + getProgramParameter + getProgramParameter + getRenderbufferParameter + getRenderbufferParameter + getShaderInfoLog + getShaderParameter + getShaderParameter + getShaderPrecisionFormat + getShaderPrecisionFormat + getShaderSource + getTexParameter + getTexParameter + getUniform + getUniform + getUniformLocation + getUniformLocation + getVertexAttrib + getVertexAttrib + getVertexAttribOffset + getVertexAttribOffset + hint + hint + isBuffer + isEnabled + isFramebuffer + isProgram + isRenderbuffer + isShader + isTexture + lineWidth + linkProgram + pixelStorei + pixelStorei + polygonOffset + polygonOffset + renderbufferStorage + renderbufferStorage + renderbufferStorage + renderbufferStorage + sampleCoverage + sampleCoverage + scissor + scissor + scissor + scissor + shaderSource + shaderSource + stencilFunc + stencilFunc + stencilFunc + stencilFuncSeparate + stencilFuncSeparate + stencilFuncSeparate + stencilFuncSeparate + stencilMask + stencilMaskSeparate + stencilMaskSeparate + stencilOp + stencilOp + stencilOp + stencilOpSeparate + stencilOpSeparate + stencilOpSeparate + stencilOpSeparate + texParameterf + texParameterf + texParameterf + texParameteri + texParameteri + texParameteri + uniform1f + uniform1f + uniform1i + uniform1i + uniform2f + uniform2f + uniform2f + uniform2i + uniform2i + uniform2i + uniform3f + uniform3f + uniform3f + uniform3f + uniform3i + uniform3i + uniform3i + uniform3i + uniform4f + uniform4f + uniform4f + uniform4f + uniform4f + uniform4i + uniform4i + uniform4i + uniform4i + uniform4i + useProgram + validateProgram + vertexAttrib1f + vertexAttrib1f + vertexAttrib1fv + vertexAttrib1fv + vertexAttrib2f + vertexAttrib2f + vertexAttrib2f + vertexAttrib2fv + vertexAttrib2fv + vertexAttrib3f + vertexAttrib3f + vertexAttrib3f + vertexAttrib3f + vertexAttrib3fv + vertexAttrib3fv + vertexAttrib4f + vertexAttrib4f + vertexAttrib4f + vertexAttrib4f + vertexAttrib4f + vertexAttrib4fv + vertexAttrib4fv + vertexAttribPointer + vertexAttribPointer + vertexAttribPointer + vertexAttribPointer + vertexAttribPointer + vertexAttribPointer + viewport + viewport + viewport + viewport + escape + supports + supports + supports + assert + assert + count + countReset + debug + dir + dirxml + error + exception + group + groupCollapsed + info + log + profile + profileEnd + table + time + timeEnd + timeLog + timeLog + timeStamp + trace + warn + getByteFrequencyData + getByteTimeDomainData + getFloatFrequencyData + getFloatTimeDomainData + updatePlaybackRate + updateTiming + copyFromChannel + copyFromChannel + copyFromChannel + copyToChannel + copyToChannel + copyToChannel + getChannelData + start + start + start + stop + createMediaElementSource + createMediaStreamSource + createBuffer + createBuffer + createBuffer + createChannelMerger + createChannelSplitter + createDelay + createIIRFilter + createIIRFilter + createPeriodicWave + createPeriodicWave + createPeriodicWave + createScriptProcessor + createScriptProcessor + createScriptProcessor + decodeAudioData + decodeAudioData + decodeAudioData + setOrientation + setOrientation + setOrientation + setOrientation + setOrientation + setOrientation + setPosition + setPosition + setPosition + setVelocity + setVelocity + setVelocity + connect + connect + connect + connect + connect + disconnect + disconnect + disconnect + disconnect + disconnect + disconnect + disconnect + disconnect + disconnect + disconnect + cancelScheduledValues + exponentialRampToValueAtTime + exponentialRampToValueAtTime + linearRampToValueAtTime + linearRampToValueAtTime + setTargetAtTime + setTargetAtTime + setTargetAtTime + setValueAtTime + setValueAtTime + setValueCurveAtTime + setValueCurveAtTime + setValueCurveAtTime + start + stop + getTrackById + registerProcessor + registerProcessor + createBuffer + createBuffer + createBuffer + createChannelMerger + createChannelSplitter + createDelay + createIIRFilter + createIIRFilter + createPeriodicWave + createPeriodicWave + createPeriodicWave + createScriptProcessor + createScriptProcessor + createScriptProcessor + decodeAudioData + decodeAudioData + decodeAudioData + getFrequencyResponse + getFrequencyResponse + getFrequencyResponse + slice + slice + slice + postMessage + deleteRule + insertRule + insertRule + appendRule + deleteRule + findRule + item + getPropertyPriority + getPropertyValue + item + removeProperty + setProperty + setProperty + setProperty + deleteRule + insertRule + insertRule + add + addAll + delete + delete + keys + keys + match + match + matchAll + matchAll + put + put + delete + has + match + match + open + addColorStop + addColorStop + setTransform + drawWindow + drawWindow + drawWindow + drawWindow + drawWindow + drawWindow + drawWindow + drawImage + drawImage + drawImage + drawImage + drawImage + drawImage + drawImage + drawImage + drawImage + drawImage + drawImage + drawImage + drawImage + drawImage + drawImage + drawImage + drawImage + clip + clip + clip + fill + fill + fill + isPointInPath + isPointInPath + isPointInPath + isPointInPath + isPointInPath + isPointInPath + isPointInPath + isPointInStroke + isPointInStroke + isPointInStroke + isPointInStroke + isPointInStroke + stroke + createLinearGradient + createLinearGradient + createLinearGradient + createLinearGradient + createPattern + createPattern + createRadialGradient + createRadialGradient + createRadialGradient + createRadialGradient + createRadialGradient + createRadialGradient + addHitRegion + removeHitRegion + createImageData + createImageData + createImageData + getImageData + getImageData + getImageData + getImageData + putImageData + putImageData + putImageData + putImageData + putImageData + putImageData + putImageData + putImageData + putImageData + putImageData + setLineDash + arc + arc + arc + arc + arc + arc + arcTo + arcTo + arcTo + arcTo + arcTo + bezierCurveTo + bezierCurveTo + bezierCurveTo + bezierCurveTo + bezierCurveTo + bezierCurveTo + ellipse + ellipse + ellipse + ellipse + ellipse + ellipse + ellipse + ellipse + lineTo + lineTo + moveTo + moveTo + quadraticCurveTo + quadraticCurveTo + quadraticCurveTo + quadraticCurveTo + rect + rect + rect + rect + clearRect + clearRect + clearRect + clearRect + fillRect + fillRect + fillRect + fillRect + strokeRect + strokeRect + strokeRect + strokeRect + fillText + fillText + fillText + fillText + measureText + strokeText + strokeText + strokeText + strokeText + rotate + scale + scale + setTransform + setTransform + setTransform + setTransform + setTransform + setTransform + transform + transform + transform + transform + transform + transform + translate + translate + drawCustomFocusRing + drawFocusIfNeeded + appendData + deleteData + deleteData + insertData + insertData + replaceData + replaceData + replaceData + substringData + substringData + after + before + replaceWith + setRecordingEnabled + postMessage + postMessage + get + matchAll + openWindow + initCompositionEvent + initCompositionEvent + initCompositionEvent + initCompositionEvent + initCompositionEvent + initCompositionEvent + start + stop + create + get + store + getRandomValues + define + define + define + get + upgrade + whenDefined + initCustomEvent + initCustomEvent + initCustomEvent + initCustomEvent + createDocument + createDocument + createDocument + createDocumentType + createDocumentType + createDocumentType + createHTMLDocument + multiplySelf + preMultiplySelf + rotateAxisAngleSelf + rotateAxisAngleSelf + rotateAxisAngleSelf + rotateAxisAngleSelf + rotateFromVectorSelf + rotateFromVectorSelf + rotateSelf + rotateSelf + rotateSelf + scale3dSelf + scale3dSelf + scale3dSelf + scale3dSelf + scaleNonUniformSelf + scaleNonUniformSelf + scaleNonUniformSelf + scaleNonUniformSelf + scaleNonUniformSelf + scaleNonUniformSelf + scaleSelf + scaleSelf + scaleSelf + setMatrixValue + skewXSelf + skewYSelf + translateSelf + translateSelf + translateSelf + multiply + rotate + rotate + rotate + rotateAxisAngle + rotateAxisAngle + rotateAxisAngle + rotateAxisAngle + rotateFromVector + rotateFromVector + scale + scale + scale + scale3d + scale3d + scale3d + scale3d + scaleNonUniform + scaleNonUniform + scaleNonUniform + scaleNonUniform + scaleNonUniform + scaleNonUniform + skewX + skewY + transformPoint + translate + translate + translate + parseFromString + parseFromString + fromPoint + fromPoint + item + then + then + contains + item + add + contains + item + remove + replace + replace + supports + toggle + toggle + clearData + getData + getFiles + setData + setData + setDragImage + setDragImage + setDragImage + getAsString + add + add + add + remove + postMessage + postMessage + initDeviceOrientationEvent + initDeviceOrientationEvent + initDeviceOrientationEvent + initDeviceOrientationEvent + initDeviceOrientationEvent + initDeviceOrientationEvent + initDeviceOrientationEvent + getFiles + adoptNode + caretPositionFromPoint + caretPositionFromPoint + createAttribute + createAttributeNS + createAttributeNS + createCDATASection + createComment + createElement + createElement + createElementNS + createElementNS + createElementNS + createEvent + createNodeIterator + createNodeIterator + createNodeIterator + createProcessingInstruction + createProcessingInstruction + createTextNode + createTreeWalker + createTreeWalker + createTreeWalker + enableStyleSheetsForSet + getElementById + getElementsByClassName + getElementsByName + getElementsByTagName + getElementsByTagNameNS + getElementsByTagNameNS + importNode + importNode + querySelector + querySelectorAll + elementFromPoint + elementFromPoint + elementsFromPoint + elementsFromPoint + convertPointFromNode + convertPointFromNode + convertPointFromNode + convertQuadFromNode + convertQuadFromNode + convertQuadFromNode + convertRectFromNode + convertRectFromNode + convertRectFromNode + getBoxQuads + append + prepend + createExpression + createExpression + createNSResolver + evaluate + evaluate + evaluate + evaluate + evaluate + getElementById + querySelector + querySelectorAll + append + prepend + after + before + replaceWith + initDragEvent + initDragEvent + initDragEvent + initDragEvent + initDragEvent + initDragEvent + initDragEvent + initDragEvent + initDragEvent + initDragEvent + initDragEvent + initDragEvent + initDragEvent + initDragEvent + initDragEvent + initDragEvent + attachShadow + closest + getAttribute + getAttributeNS + getAttributeNS + getAttributeNode + getAttributeNodeNS + getAttributeNodeNS + hasAttribute + hasAttributeNS + hasAttributeNS + hasPointerCapture + insertAdjacentElement + insertAdjacentElement + insertAdjacentHTML + insertAdjacentHTML + insertAdjacentText + insertAdjacentText + matches + querySelector + querySelectorAll + releasePointerCapture + removeAttribute + removeAttributeNS + removeAttributeNS + removeAttributeNode + scroll + scroll + scroll + scrollBy + scrollBy + scrollBy + scrollIntoView + scrollTo + scrollTo + scrollTo + setAttribute + setAttribute + setAttributeNS + setAttributeNS + setAttributeNS + setAttributeNode + setAttributeNodeNS + setCapture + setPointerCapture + toggleAttribute + toggleAttribute + webkitMatchesSelector + after + before + replaceWith + convertPointFromNode + convertPointFromNode + convertPointFromNode + convertQuadFromNode + convertQuadFromNode + convertQuadFromNode + convertRectFromNode + convertRectFromNode + convertRectFromNode + getBoxQuads + append + prepend + initEvent + initEvent + initEvent + addEventListener + addEventListener + addEventListener + addEventListener + dispatchEvent + removeEventListener + removeEventListener + removeEventListener + waitUntil + respondWith + item + readAsArrayBuffer + readAsBinaryString + readAsDataURL + readAsText + readAsText + readAsArrayBuffer + readAsBinaryString + readAsDataURL + readAsText + readAsText + getDirectory + getDirectory + getDirectory + getDirectory + getFile + getFile + getFile + getFile + readEntries + readEntries + getParent + getParent + file + file + add + check + check + delete + forEach + forEach + has + load + load + append + append + append + append + append + delete + get + getAll + has + set + set + set + set + set + pulse + pulse + addGamepad + addGamepad + addGamepad + addGamepad + addGamepad + addGamepad + newAxisMoveEvent + newAxisMoveEvent + newAxisMoveEvent + newButtonEvent + newButtonEvent + newButtonEvent + newButtonEvent + newButtonValueEvent + newButtonValueEvent + newButtonValueEvent + newButtonValueEvent + newButtonValueEvent + newPoseMove + newPoseMove + newPoseMove + newPoseMove + newPoseMove + newPoseMove + newPoseMove + removeGamepad + item + item + namedItem + setCustomValidity + getContext + getContext + toBlob + toBlob + toBlob + toDataURL + toDataURL + item + namedItem + close + execCommand + execCommand + execCommand + open + open + open + open + open + open + queryCommandEnabled + queryCommandIndeterm + queryCommandState + queryCommandSupported + queryCommandValue + write + writeln + setCustomValidity + namedItem + setCustomValidity + setRangeText + setRangeText + setRangeText + setRangeText + setRangeText + setSelectionRange + setSelectionRange + setSelectionRange + addTextTrack + addTextTrack + addTextTrack + canPlayType + fastSeek + setMediaKeys + setVisible + setCustomValidity + add + add + remove + setCustomValidity + add + add + item + namedItem + remove + setCustomValidity + assignedNodes + deleteRow + insertRow + deleteCell + insertCell + deleteRow + insertRow + setCustomValidity + setRangeText + setRangeText + setRangeText + setRangeText + setRangeText + setSelectionRange + setSelectionRange + setSelectionRange + initHashChangeEvent + initHashChangeEvent + initHashChangeEvent + initHashChangeEvent + initHashChangeEvent + append + append + delete + get + has + set + set + go + pushState + pushState + pushState + replaceState + replaceState + replaceState + advance + continue + continuePrimaryKey + continuePrimaryKey + update + createMutableFile + createMutableFile + createObjectStore + createObjectStore + deleteObjectStore + transaction + transaction + cmp + cmp + deleteDatabase + deleteDatabase + open + open + open + open + append + getMetadata + readAsArrayBuffer + readAsText + readAsText + truncate + write + count + get + getAll + getAll + getAllKeys + getAllKeys + getKey + openCursor + openCursor + openKeyCursor + openKeyCursor + bound + bound + bound + bound + includes + lowerBound + lowerBound + only + upperBound + upperBound + bound + bound + bound + bound + open + add + add + count + createIndex + createIndex + createIndex + delete + deleteIndex + get + getAll + getAll + getAllKeys + getAllKeys + getKey + index + openCursor + openCursor + openKeyCursor + openKeyCursor + put + put + objectStore + getFrequencyResponse + getFrequencyResponse + getFrequencyResponse + findOptimalFormat + mapDataInto + mapDataInto + mapDataInto + mappedDataLength + transferFromImageBitmap + transferImageBitmap + observe + unobserve + initKeyEvent + initKeyEvent + initKeyEvent + initKeyEvent + initKeyEvent + initKeyEvent + initKeyEvent + initKeyEvent + initKeyEvent + initKeyEvent + getModifierState + initKeyboardEvent + initKeyboardEvent + initKeyboardEvent + initKeyboardEvent + initKeyboardEvent + initKeyboardEvent + initKeyboardEvent + initKeyboardEvent + initKeyboardEvent + initKeyboardEvent + setKeyframes + assign + reload + replace + send + send + decodingInfo + encodingInfo + getUserMedia + generateRequest + generateRequest + load + update + get + has + createSession + getStatusForPolicy + setServerCertificate + appendMedium + deleteMedium + item + addListener + removeListener + isTypeSupported + start + addSourceBuffer + endOfStream + isTypeSupported + removeSourceBuffer + setLiveSeekableRange + setLiveSeekableRange + addTrack + getTrackById + removeTrack + applyConstraints + initMessageEvent + initMessageEvent + initMessageEvent + initMessageEvent + initMessageEvent + initMessageEvent + initMessageEvent + initMessageEvent + postMessage + postMessage + item + namedItem + getModifierState + initMouseEvent + initMouseEvent + initMouseEvent + initMouseEvent + initMouseEvent + initMouseEvent + initMouseEvent + initMouseEvent + initMouseEvent + initMouseEvent + initMouseEvent + initMouseEvent + initMouseEvent + initMouseEvent + initMouseEvent + initMouseScrollEvent + initMouseScrollEvent + initMouseScrollEvent + initMouseScrollEvent + initMouseScrollEvent + initMouseScrollEvent + initMouseScrollEvent + initMouseScrollEvent + initMouseScrollEvent + initMouseScrollEvent + initMouseScrollEvent + initMouseScrollEvent + initMouseScrollEvent + initMouseScrollEvent + initMouseScrollEvent + initMouseScrollEvent + initMutationEvent + initMutationEvent + initMutationEvent + initMutationEvent + initMutationEvent + initMutationEvent + initMutationEvent + initMutationEvent + observe + observe + getNamedItem + getNamedItemNS + getNamedItemNS + item + removeNamedItem + removeNamedItemNS + removeNamedItemNS + setNamedItem + setNamedItemNS + requestMIDIAccess + requestMediaKeySystemAccess + requestMediaKeySystemAccess + sendBeacon + sendBeacon + vibrate + vibrate + registerContentHandler + registerContentHandler + registerContentHandler + registerProtocolHandler + registerProtocolHandler + registerProtocolHandler + appendChild + cloneNode + compareDocumentPosition + contains + getRootNode + insertBefore + insertBefore + isDefaultNamespace + isEqualNode + isSameNode + lookupNamespaceURI + lookupPrefix + removeChild + replaceChild + replaceChild + item + get + requestPermission + createBuffer + createBuffer + createBuffer + createChannelMerger + createChannelSplitter + createDelay + createIIRFilter + createIIRFilter + createPeriodicWave + createPeriodicWave + createPeriodicWave + createScriptProcessor + createScriptProcessor + createScriptProcessor + decodeAudioData + decodeAudioData + decodeAudioData + getContext + getContext + toBlob + toBlob + setPeriodicWave + start + stop + item + registerPaint + registerPaint + setOrientation + setOrientation + setOrientation + setPosition + setPosition + setPosition + setVelocity + setVelocity + setVelocity + addPath + addPath + arc + arc + arc + arc + arc + arc + arcTo + arcTo + arcTo + arcTo + arcTo + bezierCurveTo + bezierCurveTo + bezierCurveTo + bezierCurveTo + bezierCurveTo + bezierCurveTo + ellipse + ellipse + ellipse + ellipse + ellipse + ellipse + ellipse + ellipse + lineTo + lineTo + moveTo + moveTo + quadraticCurveTo + quadraticCurveTo + quadraticCurveTo + quadraticCurveTo + rect + rect + rect + rect + updateWith + complete + clearMarks + clearMeasures + getEntriesByName + getEntriesByName + getEntriesByType + mark + measure + measure + measure + setResourceTimingBufferSize + observe + getEntries + getEntriesByName + getEntriesByName + getEntriesByType + query + revoke + item + namedItem + item + namedItem + refresh + send + send + send + send + reconnect + permissionState + subscribe + getKey + insertDTMF + insertDTMF + insertDTMF + send + send + send + send + addIceCandidate + addIceCandidate + addIceCandidate + addIceCandidate + addStream + addTrack + addTrack + addTrack + addTransceiver + addTransceiver + createAnswer + createAnswer + createAnswer + createDataChannel + createDataChannel + createOffer + createOffer + createOffer + createOffer + generateCertificate + getStats + getStats + getStats + getStats + removeTrack + setIdentityProvider + setIdentityProvider + setLocalDescription + setLocalDescription + setLocalDescription + setLocalDescription + setRemoteDescription + setRemoteDescription + setRemoteDescription + setRemoteDescription + replaceTrack + setParameters + collapse + compareBoundaryPoints + compareBoundaryPoints + comparePoint + comparePoint + createContextualFragment + insertNode + intersectsNode + isPointInRange + isPointInRange + selectNode + selectNodeContents + setEnd + setEnd + setEndAfter + setEndBefore + setStart + setStart + setStartAfter + setStartBefore + surroundContents + redirect + redirect + convertToSpecifiedUnits + newValueSpecifiedUnits + newValueSpecifiedUnits + beginElementAt + endElementAt + hasExtension + setStdDeviation + setStdDeviation + setStdDeviation + setStdDeviation + getPointAtLength + getBBox + getTransformToElement + hasExtension + convertToSpecifiedUnits + newValueSpecifiedUnits + newValueSpecifiedUnits + appendItem + getItem + initialize + insertItemBefore + insertItemBefore + removeItem + replaceItem + replaceItem + setOrientToAngle + multiply + rotate + rotateFromVector + rotateFromVector + scale + scaleNonUniform + scaleNonUniform + skewX + skewY + translate + translate + appendItem + getItem + initialize + insertItemBefore + insertItemBefore + removeItem + replaceItem + replaceItem + getPathSegAtLength + getItem + matrixTransform + appendItem + getItem + initialize + insertItemBefore + insertItemBefore + removeItem + replaceItem + replaceItem + createSVGTransformFromMatrix + getElementById + setCurrentTime + suspendRedraw + unsuspendRedraw + appendItem + getItem + initialize + insertItemBefore + insertItemBefore + removeItem + replaceItem + replaceItem + hasExtension + getCharNumAtPosition + getEndPositionOfChar + getExtentOfChar + getRotationOfChar + getStartPositionOfChar + getSubStringLength + getSubStringLength + selectSubString + selectSubString + setMatrix + setRotate + setRotate + setRotate + setScale + setScale + setSkewX + setSkewY + setTranslate + setTranslate + appendItem + createSVGTransformFromMatrix + getItem + initialize + insertItemBefore + insertItemBefore + removeItem + replaceItem + replaceItem + lock + initScrollAreaEvent + initScrollAreaEvent + initScrollAreaEvent + initScrollAreaEvent + initScrollAreaEvent + initScrollAreaEvent + initScrollAreaEvent + initScrollAreaEvent + initScrollAreaEvent + addRange + collapse + collapse + containsNode + containsNode + extend + extend + getRangeAt + modify + modify + modify + removeRange + selectAllChildren + setBaseAndExtent + setBaseAndExtent + setBaseAndExtent + setBaseAndExtent + setPosition + setPosition + postMessage + postMessage + getRegistration + getScopeForUrl + register + register + getNotifications + showNotification + showNotification + getElementById + getElementsByClassName + getElementsByTagName + getElementsByTagNameNS + getElementsByTagNameNS + elementFromPoint + elementFromPoint + elementsFromPoint + elementsFromPoint + appendBuffer + appendBuffer + appendBufferAsync + appendBufferAsync + changeType + remove + remove + removeAsync + removeAsync + addFromString + addFromString + addFromURI + addFromURI + item + start + item + item + speak + getItem + key + removeItem + setItem + setItem + initStorageEvent + initStorageEvent + initStorageEvent + initStorageEvent + initStorageEvent + initStorageEvent + initStorageEvent + initStorageEvent + item + decrypt + decrypt + decrypt + deriveBits + deriveBits + deriveBits + deriveKey + deriveKey + deriveKey + deriveKey + deriveKey + digest + digest + encrypt + encrypt + encrypt + exportKey + exportKey + generateKey + generateKey + generateKey + importKey + importKey + importKey + importKey + importKey + sign + sign + sign + unwrapKey + unwrapKey + unwrapKey + unwrapKey + unwrapKey + unwrapKey + unwrapKey + verify + verify + verify + verify + wrapKey + wrapKey + wrapKey + wrapKey + send + send + send + send + splitText + convertPointFromNode + convertPointFromNode + convertPointFromNode + convertQuadFromNode + convertQuadFromNode + convertQuadFromNode + convertRectFromNode + convertRectFromNode + convertRectFromNode + getBoxQuads + decode + decode + encode + addCue + removeCue + getCueById + getTrackById + initTimeEvent + initTimeEvent + initTimeEvent + end + start + initTouchEvent + initTouchEvent + initTouchEvent + initTouchEvent + initTouchEvent + initTouchEvent + initTouchEvent + initTouchEvent + initTouchEvent + initTouchEvent + initTouchEvent + initTouchEvent + item + register + register + register + register + register + sign + sign + sign + sign + sign + initUIEvent + initUIEvent + initUIEvent + initUIEvent + initUIEvent + createObjectURL + createObjectURL + revokeObjectURL + append + append + delete + get + getAll + has + set + set + cancelAnimationFrame + getEyeParameters + getFrameData + getSubmitFrameResult + requestAnimationFrame + requestPresent + newAxisMoveEvent + newAxisMoveEvent + newButtonEvent + newButtonEvent + newPoseMove + newPoseMove + newPoseMove + newPoseMove + newPoseMove + newPoseMove + setEyeParameter + setEyeParameter + setEyeParameter + setEyeParameter + setEyeParameter + setEyeParameter + setEyeParameter + setEyeParameter + setEyeResolution + setEyeResolution + setMountState + setPose + setPose + setPose + setPose + setPose + setPose + attachVRController + attachVRDisplay + getTrackById + beginQuery + beginQuery + beginTransformFeedback + bindBufferBase + bindBufferBase + bindBufferBase + bindBufferRange + bindBufferRange + bindBufferRange + bindBufferRange + bindBufferRange + bindSampler + bindSampler + bindTransformFeedback + bindTransformFeedback + bindVertexArray + blitFramebuffer + blitFramebuffer + blitFramebuffer + blitFramebuffer + blitFramebuffer + blitFramebuffer + blitFramebuffer + blitFramebuffer + blitFramebuffer + blitFramebuffer + bufferData + bufferData + bufferData + bufferData + bufferData + bufferData + bufferData + bufferData + bufferData + bufferData + bufferData + bufferData + bufferData + bufferData + bufferSubData + bufferSubData + bufferSubData + bufferSubData + bufferSubData + bufferSubData + bufferSubData + bufferSubData + bufferSubData + bufferSubData + bufferSubData + clearBufferfi + clearBufferfi + clearBufferfi + clearBufferfi + clearBufferfv + clearBufferfv + clearBufferfv + clearBufferfv + clearBufferiv + clearBufferiv + clearBufferiv + clearBufferiv + clearBufferuiv + clearBufferuiv + clearBufferuiv + clearBufferuiv + clientWaitSync + clientWaitSync + clientWaitSync + compressedTexImage2D + compressedTexImage2D + compressedTexImage2D + compressedTexImage2D + compressedTexImage2D + compressedTexImage2D + compressedTexImage2D + compressedTexImage2D + compressedTexImage2D + compressedTexImage2D + compressedTexImage2D + compressedTexImage2D + compressedTexImage2D + compressedTexImage2D + compressedTexImage2D + compressedTexImage2D + compressedTexImage2D + compressedTexImage3D + compressedTexImage3D + compressedTexImage3D + compressedTexImage3D + compressedTexImage3D + compressedTexImage3D + compressedTexImage3D + compressedTexImage3D + compressedTexImage3D + compressedTexImage3D + compressedTexImage3D + compressedTexImage3D + compressedTexImage3D + compressedTexImage3D + compressedTexImage3D + compressedTexImage3D + compressedTexImage3D + compressedTexImage3D + compressedTexImage3D + compressedTexSubImage2D + compressedTexSubImage2D + compressedTexSubImage2D + compressedTexSubImage2D + compressedTexSubImage2D + compressedTexSubImage2D + compressedTexSubImage2D + compressedTexSubImage2D + compressedTexSubImage2D + compressedTexSubImage2D + compressedTexSubImage2D + compressedTexSubImage2D + compressedTexSubImage2D + compressedTexSubImage2D + compressedTexSubImage2D + compressedTexSubImage2D + compressedTexSubImage2D + compressedTexSubImage2D + compressedTexSubImage2D + compressedTexSubImage3D + compressedTexSubImage3D + compressedTexSubImage3D + compressedTexSubImage3D + compressedTexSubImage3D + compressedTexSubImage3D + compressedTexSubImage3D + compressedTexSubImage3D + compressedTexSubImage3D + compressedTexSubImage3D + compressedTexSubImage3D + compressedTexSubImage3D + compressedTexSubImage3D + compressedTexSubImage3D + compressedTexSubImage3D + compressedTexSubImage3D + compressedTexSubImage3D + compressedTexSubImage3D + compressedTexSubImage3D + compressedTexSubImage3D + compressedTexSubImage3D + compressedTexSubImage3D + compressedTexSubImage3D + copyBufferSubData + copyBufferSubData + copyBufferSubData + copyBufferSubData + copyBufferSubData + copyTexSubImage3D + copyTexSubImage3D + copyTexSubImage3D + copyTexSubImage3D + copyTexSubImage3D + copyTexSubImage3D + copyTexSubImage3D + copyTexSubImage3D + copyTexSubImage3D + deleteQuery + deleteSampler + deleteSync + deleteTransformFeedback + deleteVertexArray + drawArraysInstanced + drawArraysInstanced + drawArraysInstanced + drawArraysInstanced + drawBuffers + drawElementsInstanced + drawElementsInstanced + drawElementsInstanced + drawElementsInstanced + drawElementsInstanced + drawRangeElements + drawRangeElements + drawRangeElements + drawRangeElements + drawRangeElements + drawRangeElements + endQuery + fenceSync + fenceSync + framebufferTextureLayer + framebufferTextureLayer + framebufferTextureLayer + framebufferTextureLayer + framebufferTextureLayer + getActiveUniformBlockName + getActiveUniformBlockName + getActiveUniformBlockParameter + getActiveUniformBlockParameter + getActiveUniformBlockParameter + getActiveUniforms + getActiveUniforms + getActiveUniforms + getBufferSubData + getBufferSubData + getBufferSubData + getBufferSubData + getBufferSubData + getFragDataLocation + getFragDataLocation + getIndexedParameter + getIndexedParameter + getInternalformatParameter + getInternalformatParameter + getInternalformatParameter + getQuery + getQuery + getQueryParameter + getQueryParameter + getSamplerParameter + getSamplerParameter + getSyncParameter + getSyncParameter + getTransformFeedbackVarying + getTransformFeedbackVarying + getUniformBlockIndex + getUniformBlockIndex + getUniformIndices + getUniformIndices + invalidateFramebuffer + invalidateFramebuffer + invalidateSubFramebuffer + invalidateSubFramebuffer + invalidateSubFramebuffer + invalidateSubFramebuffer + invalidateSubFramebuffer + invalidateSubFramebuffer + isQuery + isSampler + isSync + isTransformFeedback + isVertexArray + readBuffer + readPixels + readPixels + readPixels + readPixels + readPixels + readPixels + readPixels + readPixels + readPixels + readPixels + readPixels + readPixels + readPixels + readPixels + readPixels + readPixels + readPixels + readPixels + readPixels + readPixels + readPixels + readPixels + renderbufferStorageMultisample + renderbufferStorageMultisample + renderbufferStorageMultisample + renderbufferStorageMultisample + renderbufferStorageMultisample + samplerParameterf + samplerParameterf + samplerParameterf + samplerParameteri + samplerParameteri + samplerParameteri + texImage2D + texImage2D + texImage2D + texImage2D + texImage2D + texImage2D + texImage2D + texImage2D + texImage2D + texImage2D + texImage2D + texImage2D + texImage2D + texImage2D + texImage2D + texImage2D + texImage2D + texImage2D + texImage2D + texImage2D + texImage2D + texImage2D + texImage2D + texImage2D + texImage2D + texImage2D + texImage2D + texImage2D + texImage2D + texImage2D + texImage2D + texImage2D + texImage2D + texImage2D + texImage2D + texImage2D + texImage2D + texImage2D + texImage2D + texImage2D + texImage2D + texImage2D + texImage2D + texImage2D + texImage2D + texImage2D + texImage2D + texImage2D + texImage2D + texImage2D + texImage2D + texImage2D + texImage2D + texImage2D + texImage2D + texImage2D + texImage2D + texImage2D + texImage2D + texImage2D + texImage2D + texImage2D + texImage2D + texImage2D + texImage2D + texImage2D + texImage2D + texImage2D + texImage2D + texImage2D + texImage2D + texImage2D + texImage2D + texImage2D + texImage2D + texImage2D + texImage2D + texImage2D + texImage2D + texImage2D + texImage2D + texImage2D + texImage2D + texImage2D + texImage2D + texImage2D + texImage2D + texImage2D + texImage2D + texImage2D + texImage2D + texImage2D + texImage2D + texImage2D + texImage2D + texImage2D + texImage2D + texImage2D + texImage2D + texImage2D + texImage2D + texImage2D + texImage2D + texImage3D + texImage3D + texImage3D + texImage3D + texImage3D + texImage3D + texImage3D + texImage3D + texImage3D + texImage3D + texImage3D + texImage3D + texImage3D + texImage3D + texImage3D + texImage3D + texImage3D + texImage3D + texImage3D + texImage3D + texImage3D + texImage3D + texImage3D + texImage3D + texImage3D + texImage3D + texImage3D + texImage3D + texImage3D + texImage3D + texImage3D + texImage3D + texImage3D + texImage3D + texImage3D + texImage3D + texImage3D + texImage3D + texImage3D + texImage3D + texImage3D + texImage3D + texImage3D + texImage3D + texImage3D + texImage3D + texImage3D + texImage3D + texImage3D + texImage3D + texImage3D + texImage3D + texImage3D + texImage3D + texImage3D + texImage3D + texImage3D + texImage3D + texImage3D + texImage3D + texImage3D + texImage3D + texImage3D + texImage3D + texImage3D + texImage3D + texImage3D + texImage3D + texImage3D + texImage3D + texImage3D + texImage3D + texImage3D + texImage3D + texImage3D + texImage3D + texImage3D + texImage3D + texImage3D + texImage3D + texImage3D + texStorage2D + texStorage2D + texStorage2D + texStorage2D + texStorage2D + texStorage3D + texStorage3D + texStorage3D + texStorage3D + texStorage3D + texStorage3D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage3D + texSubImage3D + texSubImage3D + texSubImage3D + texSubImage3D + texSubImage3D + texSubImage3D + texSubImage3D + texSubImage3D + texSubImage3D + texSubImage3D + texSubImage3D + texSubImage3D + texSubImage3D + texSubImage3D + texSubImage3D + texSubImage3D + texSubImage3D + texSubImage3D + texSubImage3D + texSubImage3D + texSubImage3D + texSubImage3D + texSubImage3D + texSubImage3D + texSubImage3D + texSubImage3D + texSubImage3D + texSubImage3D + texSubImage3D + texSubImage3D + texSubImage3D + texSubImage3D + texSubImage3D + texSubImage3D + texSubImage3D + texSubImage3D + texSubImage3D + texSubImage3D + texSubImage3D + texSubImage3D + texSubImage3D + texSubImage3D + texSubImage3D + texSubImage3D + texSubImage3D + texSubImage3D + texSubImage3D + texSubImage3D + texSubImage3D + texSubImage3D + texSubImage3D + texSubImage3D + texSubImage3D + texSubImage3D + texSubImage3D + texSubImage3D + texSubImage3D + texSubImage3D + texSubImage3D + texSubImage3D + texSubImage3D + texSubImage3D + texSubImage3D + texSubImage3D + texSubImage3D + texSubImage3D + texSubImage3D + texSubImage3D + texSubImage3D + texSubImage3D + texSubImage3D + texSubImage3D + texSubImage3D + texSubImage3D + texSubImage3D + texSubImage3D + texSubImage3D + transformFeedbackVaryings + transformFeedbackVaryings + transformFeedbackVaryings + uniform1fv + uniform1fv + uniform1fv + uniform1fv + uniform1iv + uniform1iv + uniform1iv + uniform1iv + uniform1ui + uniform1ui + uniform1uiv + uniform1uiv + uniform1uiv + uniform1uiv + uniform2fv + uniform2fv + uniform2fv + uniform2fv + uniform2iv + uniform2iv + uniform2iv + uniform2iv + uniform2ui + uniform2ui + uniform2ui + uniform2uiv + uniform2uiv + uniform2uiv + uniform2uiv + uniform3fv + uniform3fv + uniform3fv + uniform3fv + uniform3iv + uniform3iv + uniform3iv + uniform3iv + uniform3ui + uniform3ui + uniform3ui + uniform3ui + uniform3uiv + uniform3uiv + uniform3uiv + uniform3uiv + uniform4fv + uniform4fv + uniform4fv + uniform4fv + uniform4iv + uniform4iv + uniform4iv + uniform4iv + uniform4ui + uniform4ui + uniform4ui + uniform4ui + uniform4ui + uniform4uiv + uniform4uiv + uniform4uiv + uniform4uiv + uniformBlockBinding + uniformBlockBinding + uniformBlockBinding + uniformMatrix2fv + uniformMatrix2fv + uniformMatrix2fv + uniformMatrix2fv + uniformMatrix2fv + uniformMatrix2x3fv + uniformMatrix2x3fv + uniformMatrix2x3fv + uniformMatrix2x3fv + uniformMatrix2x3fv + uniformMatrix2x4fv + uniformMatrix2x4fv + uniformMatrix2x4fv + uniformMatrix2x4fv + uniformMatrix2x4fv + uniformMatrix3fv + uniformMatrix3fv + uniformMatrix3fv + uniformMatrix3fv + uniformMatrix3fv + uniformMatrix3x2fv + uniformMatrix3x2fv + uniformMatrix3x2fv + uniformMatrix3x2fv + uniformMatrix3x2fv + uniformMatrix3x4fv + uniformMatrix3x4fv + uniformMatrix3x4fv + uniformMatrix3x4fv + uniformMatrix3x4fv + uniformMatrix4fv + uniformMatrix4fv + uniformMatrix4fv + uniformMatrix4fv + uniformMatrix4fv + uniformMatrix4x2fv + uniformMatrix4x2fv + uniformMatrix4x2fv + uniformMatrix4x2fv + uniformMatrix4x2fv + uniformMatrix4x3fv + uniformMatrix4x3fv + uniformMatrix4x3fv + uniformMatrix4x3fv + uniformMatrix4x3fv + vertexAttribDivisor + vertexAttribDivisor + vertexAttribI4i + vertexAttribI4i + vertexAttribI4i + vertexAttribI4i + vertexAttribI4i + vertexAttribI4iv + vertexAttribI4iv + vertexAttribI4ui + vertexAttribI4ui + vertexAttribI4ui + vertexAttribI4ui + vertexAttribI4ui + vertexAttribI4uiv + vertexAttribI4uiv + vertexAttribIPointer + vertexAttribIPointer + vertexAttribIPointer + vertexAttribIPointer + vertexAttribIPointer + waitSync + waitSync + waitSync + activeTexture + attachShader + attachShader + bindAttribLocation + bindAttribLocation + bindAttribLocation + bindBuffer + bindBuffer + bindFramebuffer + bindFramebuffer + bindRenderbuffer + bindRenderbuffer + bindTexture + bindTexture + blendColor + blendColor + blendColor + blendColor + blendEquation + blendEquationSeparate + blendEquationSeparate + blendFunc + blendFunc + blendFuncSeparate + blendFuncSeparate + blendFuncSeparate + blendFuncSeparate + checkFramebufferStatus + clear + clearColor + clearColor + clearColor + clearColor + clearDepth + clearStencil + colorMask + colorMask + colorMask + colorMask + compileShader + copyTexImage2D + copyTexImage2D + copyTexImage2D + copyTexImage2D + copyTexImage2D + copyTexImage2D + copyTexImage2D + copyTexImage2D + copyTexSubImage2D + copyTexSubImage2D + copyTexSubImage2D + copyTexSubImage2D + copyTexSubImage2D + copyTexSubImage2D + copyTexSubImage2D + copyTexSubImage2D + createShader + cullFace + deleteBuffer + deleteFramebuffer + deleteProgram + deleteRenderbuffer + deleteShader + deleteTexture + depthFunc + depthMask + depthRange + depthRange + detachShader + detachShader + disable + disableVertexAttribArray + drawArrays + drawArrays + drawArrays + drawElements + drawElements + drawElements + drawElements + enable + enableVertexAttribArray + framebufferRenderbuffer + framebufferRenderbuffer + framebufferRenderbuffer + framebufferRenderbuffer + framebufferTexture2D + framebufferTexture2D + framebufferTexture2D + framebufferTexture2D + framebufferTexture2D + frontFace + generateMipmap + getActiveAttrib + getActiveAttrib + getActiveUniform + getActiveUniform + getAttachedShaders + getAttribLocation + getAttribLocation + getBufferParameter + getBufferParameter + getExtension + getFramebufferAttachmentParameter + getFramebufferAttachmentParameter + getFramebufferAttachmentParameter + getParameter + getProgramInfoLog + getProgramParameter + getProgramParameter + getRenderbufferParameter + getRenderbufferParameter + getShaderInfoLog + getShaderParameter + getShaderParameter + getShaderPrecisionFormat + getShaderPrecisionFormat + getShaderSource + getTexParameter + getTexParameter + getUniform + getUniform + getUniformLocation + getUniformLocation + getVertexAttrib + getVertexAttrib + getVertexAttribOffset + getVertexAttribOffset + hint + hint + isBuffer + isEnabled + isFramebuffer + isProgram + isRenderbuffer + isShader + isTexture + lineWidth + linkProgram + pixelStorei + pixelStorei + polygonOffset + polygonOffset + renderbufferStorage + renderbufferStorage + renderbufferStorage + renderbufferStorage + sampleCoverage + sampleCoverage + scissor + scissor + scissor + scissor + shaderSource + shaderSource + stencilFunc + stencilFunc + stencilFunc + stencilFuncSeparate + stencilFuncSeparate + stencilFuncSeparate + stencilFuncSeparate + stencilMask + stencilMaskSeparate + stencilMaskSeparate + stencilOp + stencilOp + stencilOp + stencilOpSeparate + stencilOpSeparate + stencilOpSeparate + stencilOpSeparate + texParameterf + texParameterf + texParameterf + texParameteri + texParameteri + texParameteri + uniform1f + uniform1f + uniform1i + uniform1i + uniform2f + uniform2f + uniform2f + uniform2i + uniform2i + uniform2i + uniform3f + uniform3f + uniform3f + uniform3f + uniform3i + uniform3i + uniform3i + uniform3i + uniform4f + uniform4f + uniform4f + uniform4f + uniform4f + uniform4i + uniform4i + uniform4i + uniform4i + uniform4i + useProgram + validateProgram + vertexAttrib1f + vertexAttrib1f + vertexAttrib1fv + vertexAttrib1fv + vertexAttrib2f + vertexAttrib2f + vertexAttrib2f + vertexAttrib2fv + vertexAttrib2fv + vertexAttrib3f + vertexAttrib3f + vertexAttrib3f + vertexAttrib3f + vertexAttrib3fv + vertexAttrib3fv + vertexAttrib4f + vertexAttrib4f + vertexAttrib4f + vertexAttrib4f + vertexAttrib4f + vertexAttrib4fv + vertexAttrib4fv + vertexAttribPointer + vertexAttribPointer + vertexAttribPointer + vertexAttribPointer + vertexAttribPointer + vertexAttribPointer + viewport + viewport + viewport + viewport + bufferData + bufferData + bufferData + bufferData + bufferData + bufferData + bufferData + bufferData + bufferData + bufferSubData + bufferSubData + bufferSubData + bufferSubData + bufferSubData + bufferSubData + compressedTexImage2D + compressedTexImage2D + compressedTexImage2D + compressedTexImage2D + compressedTexImage2D + compressedTexImage2D + compressedTexImage2D + compressedTexSubImage2D + compressedTexSubImage2D + compressedTexSubImage2D + compressedTexSubImage2D + compressedTexSubImage2D + compressedTexSubImage2D + compressedTexSubImage2D + compressedTexSubImage2D + readPixels + readPixels + readPixels + readPixels + readPixels + readPixels + readPixels + texImage2D + texImage2D + texImage2D + texImage2D + texImage2D + texImage2D + texImage2D + texImage2D + texImage2D + texImage2D + texImage2D + texImage2D + texImage2D + texImage2D + texImage2D + texImage2D + texImage2D + texImage2D + texImage2D + texImage2D + texImage2D + texImage2D + texImage2D + texImage2D + texImage2D + texImage2D + texImage2D + texImage2D + texImage2D + texImage2D + texImage2D + texImage2D + texImage2D + texImage2D + texImage2D + texImage2D + texImage2D + texImage2D + texImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + texSubImage2D + uniform1fv + uniform1fv + uniform1iv + uniform1iv + uniform2fv + uniform2fv + uniform2iv + uniform2iv + uniform3fv + uniform3fv + uniform3iv + uniform3iv + uniform4fv + uniform4fv + uniform4iv + uniform4iv + uniformMatrix2fv + uniformMatrix2fv + uniformMatrix2fv + uniformMatrix3fv + uniformMatrix3fv + uniformMatrix3fv + uniformMatrix4fv + uniformMatrix4fv + uniformMatrix4fv + activeTexture + attachShader + attachShader + bindAttribLocation + bindAttribLocation + bindAttribLocation + bindBuffer + bindBuffer + bindFramebuffer + bindFramebuffer + bindRenderbuffer + bindRenderbuffer + bindTexture + bindTexture + blendColor + blendColor + blendColor + blendColor + blendEquation + blendEquationSeparate + blendEquationSeparate + blendFunc + blendFunc + blendFuncSeparate + blendFuncSeparate + blendFuncSeparate + blendFuncSeparate + checkFramebufferStatus + clear + clearColor + clearColor + clearColor + clearColor + clearDepth + clearStencil + colorMask + colorMask + colorMask + colorMask + compileShader + copyTexImage2D + copyTexImage2D + copyTexImage2D + copyTexImage2D + copyTexImage2D + copyTexImage2D + copyTexImage2D + copyTexImage2D + copyTexSubImage2D + copyTexSubImage2D + copyTexSubImage2D + copyTexSubImage2D + copyTexSubImage2D + copyTexSubImage2D + copyTexSubImage2D + copyTexSubImage2D + createShader + cullFace + deleteBuffer + deleteFramebuffer + deleteProgram + deleteRenderbuffer + deleteShader + deleteTexture + depthFunc + depthMask + depthRange + depthRange + detachShader + detachShader + disable + disableVertexAttribArray + drawArrays + drawArrays + drawArrays + drawElements + drawElements + drawElements + drawElements + enable + enableVertexAttribArray + framebufferRenderbuffer + framebufferRenderbuffer + framebufferRenderbuffer + framebufferRenderbuffer + framebufferTexture2D + framebufferTexture2D + framebufferTexture2D + framebufferTexture2D + framebufferTexture2D + frontFace + generateMipmap + getActiveAttrib + getActiveAttrib + getActiveUniform + getActiveUniform + getAttachedShaders + getAttribLocation + getAttribLocation + getBufferParameter + getBufferParameter + getExtension + getFramebufferAttachmentParameter + getFramebufferAttachmentParameter + getFramebufferAttachmentParameter + getParameter + getProgramInfoLog + getProgramParameter + getProgramParameter + getRenderbufferParameter + getRenderbufferParameter + getShaderInfoLog + getShaderParameter + getShaderParameter + getShaderPrecisionFormat + getShaderPrecisionFormat + getShaderSource + getTexParameter + getTexParameter + getUniform + getUniform + getUniformLocation + getUniformLocation + getVertexAttrib + getVertexAttrib + getVertexAttribOffset + getVertexAttribOffset + hint + hint + isBuffer + isEnabled + isFramebuffer + isProgram + isRenderbuffer + isShader + isTexture + lineWidth + linkProgram + pixelStorei + pixelStorei + polygonOffset + polygonOffset + renderbufferStorage + renderbufferStorage + renderbufferStorage + renderbufferStorage + sampleCoverage + sampleCoverage + scissor + scissor + scissor + scissor + shaderSource + shaderSource + stencilFunc + stencilFunc + stencilFunc + stencilFuncSeparate + stencilFuncSeparate + stencilFuncSeparate + stencilFuncSeparate + stencilMask + stencilMaskSeparate + stencilMaskSeparate + stencilOp + stencilOp + stencilOp + stencilOpSeparate + stencilOpSeparate + stencilOpSeparate + stencilOpSeparate + texParameterf + texParameterf + texParameterf + texParameteri + texParameteri + texParameteri + uniform1f + uniform1f + uniform1i + uniform1i + uniform2f + uniform2f + uniform2f + uniform2i + uniform2i + uniform2i + uniform3f + uniform3f + uniform3f + uniform3f + uniform3i + uniform3i + uniform3i + uniform3i + uniform4f + uniform4f + uniform4f + uniform4f + uniform4f + uniform4i + uniform4i + uniform4i + uniform4i + uniform4i + useProgram + validateProgram + vertexAttrib1f + vertexAttrib1f + vertexAttrib1fv + vertexAttrib1fv + vertexAttrib2f + vertexAttrib2f + vertexAttrib2f + vertexAttrib2fv + vertexAttrib2fv + vertexAttrib3f + vertexAttrib3f + vertexAttrib3f + vertexAttrib3f + vertexAttrib3fv + vertexAttrib3fv + vertexAttrib4f + vertexAttrib4f + vertexAttrib4f + vertexAttrib4f + vertexAttrib4f + vertexAttrib4fv + vertexAttrib4fv + vertexAttribPointer + vertexAttribPointer + vertexAttribPointer + vertexAttribPointer + vertexAttribPointer + vertexAttribPointer + viewport + viewport + viewport + viewport + getAdapter + createDevice + beginRenderPass + copyBufferToBuffer + copyBufferToBuffer + copyBufferToBuffer + copyBufferToBuffer + copyBufferToBuffer + dispatch + dispatch + dispatch + draw + draw + draw + draw + drawIndexed + drawIndexed + drawIndexed + drawIndexed + drawIndexed + setBindGroup + setBindGroup + setBlendColor + setBlendColor + setBlendColor + setBlendColor + setIndexBuffer + setIndexBuffer + setPipeline + setPushConstants + setPushConstants + setPushConstants + setPushConstants + setVertexBuffers + setVertexBuffers + setVertexBuffers + transitionBuffer + transitionBuffer + createAttachmentState + createBindGroup + createBindGroupLayout + createBlendState + createBuffer + createCommandEncoder + createComputePipeline + createDepthStencilState + createInputState + createPipelineLayout + createRenderPipeline + createSampler + createShaderModule + createTexture + getObjectStatus + wait + submit + configure + createTextureView + multiply + rotate + rotate + rotate + rotateAxisAngle + rotateAxisAngle + rotateAxisAngle + rotateAxisAngle + scale + scale + scale + setMatrixValue + skewX + skewY + translate + translate + translate + close + close + send + send + send + send + alert + cancelAnimationFrame + cancelIdleCallback + confirm + getComputedStyle + getComputedStyle + matchMedia + moveBy + moveBy + moveTo + moveTo + open + open + open + postMessage + postMessage + postMessage + prompt + prompt + requestAnimationFrame + requestIdleCallback + requestIdleCallback + resizeBy + resizeBy + resizeTo + resizeTo + scroll + scroll + scroll + scrollBy + scrollBy + scrollBy + scrollTo + scrollTo + scrollTo + atob + btoa + clearInterval + clearTimeout + createImageBitmap + createImageBitmap + createImageBitmap + createImageBitmap + createImageBitmap + createImageBitmap + fetch + fetch + setInterval + setInterval + setInterval + setInterval + setInterval + setInterval + setTimeout + setTimeout + setTimeout + setTimeout + setTimeout + setTimeout + navigate + postMessage + postMessage + createSandbox + createSandbox + dump + loadSubScript + loadSubScript + postMessage + reportError + setConsoleEventHandler + setImmediate + importScripts + atob + btoa + clearInterval + clearTimeout + createImageBitmap + createImageBitmap + createImageBitmap + createImageBitmap + createImageBitmap + createImageBitmap + fetch + fetch + setInterval + setInterval + setInterval + setInterval + setInterval + setInterval + setTimeout + setTimeout + setTimeout + setTimeout + setTimeout + setTimeout + import + load + getResponseHeader + open + open + open + open + open + open + open + overrideMimeType + send + setRequestHeader + setRequestHeader + serializeToString + evaluate + evaluate + evaluate + snapshotItem + getParameter + getParameter + importStylesheet + removeParameter + removeParameter + setParameter + setParameter + setParameter + transformToDocument + transformToFragment + transformToFragment + \ No newline at end of file diff --git a/crates/web-sys/tests/wasm/immutable_slices.rs b/crates/web-sys/tests/wasm/immutable_slices.rs deleted file mode 100644 index 92b4cbd3..00000000 --- a/crates/web-sys/tests/wasm/immutable_slices.rs +++ /dev/null @@ -1,26 +0,0 @@ -//! When generating our web_sys APIs we default to setting slice references that -//! get passed to JS as mutable in case they get mutated in JS. -//! -//! In certain cases we know for sure that the slice will not get mutated - for -//! example when working with the WebGlRenderingContext APIs. -//! -//! These tests ensure that whitelisted methods do indeed accept mutable slices. -//! -//! @see https://github.com/rustwasm/wasm-bindgen/issues/1005 - -use wasm_bindgen::prelude::*; -use wasm_bindgen_test::*; -use web_sys::WebGlRenderingContext; - -#[wasm_bindgen(module = "./tests/wasm/element.js")] -extern "C" { - fn new_webgl_rendering_context() -> WebGlRenderingContext; -} - -// Ensure that our whitelisted WebGlRenderingContext methods work -#[wasm_bindgen_test] -fn test_webgl_rendering_context_immutable_slices() { - let gl = new_webgl_rendering_context(); - - gl.vertex_attrib1fv_with_f32_array(0, &[5000.]); -} diff --git a/crates/web-sys/tests/wasm/main.rs b/crates/web-sys/tests/wasm/main.rs index 3b57604a..e3d3b48a 100644 --- a/crates/web-sys/tests/wasm/main.rs +++ b/crates/web-sys/tests/wasm/main.rs @@ -56,7 +56,7 @@ pub mod style_element; pub mod table_element; pub mod title_element; pub mod xpath_result; -pub mod immutable_slices; +pub mod whitelisted_immutable_slices; #[wasm_bindgen_test] fn deref_works() { diff --git a/crates/web-sys/tests/wasm/whitelisted_immutable_slices.rs b/crates/web-sys/tests/wasm/whitelisted_immutable_slices.rs index 92b4cbd3..59c60eb7 100644 --- a/crates/web-sys/tests/wasm/whitelisted_immutable_slices.rs +++ b/crates/web-sys/tests/wasm/whitelisted_immutable_slices.rs @@ -22,5 +22,5 @@ extern "C" { fn test_webgl_rendering_context_immutable_slices() { let gl = new_webgl_rendering_context(); - gl.vertex_attrib1fv_with_f32_array(0, &[5000.]); + gl.vertex_attrib1fv_with_f32_array(0, &[5000.]); } diff --git a/crates/webidl/src/first_pass.rs b/crates/webidl/src/first_pass.rs index 79b5a2da..c3454c1e 100644 --- a/crates/webidl/src/first_pass.rs +++ b/crates/webidl/src/first_pass.rs @@ -83,6 +83,9 @@ pub(crate) struct CallbackInterfaceData<'src> { #[derive(PartialEq, Eq, PartialOrd, Ord, Debug, Clone, Copy)] pub(crate) enum OperationId<'src> { Constructor(IgnoreTraits<&'src str>), + /// The name of a function in crates/web-sys/webidls/enabled/*.webidl + /// + /// ex: Operation(Some("vertexAttrib1fv")) Operation(Option<&'src str>), IndexingGetter, IndexingSetter, diff --git a/crates/webidl/src/idl_type.rs b/crates/webidl/src/idl_type.rs index d2dd3e8b..3d24a18d 100644 --- a/crates/webidl/src/idl_type.rs +++ b/crates/webidl/src/idl_type.rs @@ -41,7 +41,10 @@ pub(crate) enum IdlType<'a> { Uint16Array, Int32Array, Uint32Array, - Float32Array, + Float32Array { + /// Whether or not the generated web-sys function should use an immutable slice + immutable: bool + }, Float64Array, ArrayBufferView, BufferSource, @@ -324,14 +327,26 @@ impl<'a> ToIdlType<'a> for Identifier<'a> { } } +// We default to Float32Array's being mutable, but in certain cases where we're certain that +// slices won't get mutated on the JS side (such as the WebGL APIs) we might, later in the flow, +// instead use the immutable version. +impl<'a> ToIdlType<'a> for term::Float32Array { + fn to_idl_type(&self, _record: &FirstPassRecord<'a>) -> IdlType<'a> { + IdlType::Float32Array {immutable: false} + } +} + macro_rules! terms_to_idl_type { ($($t:tt => $r:tt)*) => ($( impl<'a> ToIdlType<'a> for term::$t { fn to_idl_type(&self, _record: &FirstPassRecord<'a>) -> IdlType<'a> { - IdlType::$r + match IdlType::$r { + IdlType::Callback => IdlType::Float32Array { immutable: false }, + _ => IdlType::$r + } } } - )*) + )*); } terms_to_idl_type! { @@ -358,7 +373,6 @@ terms_to_idl_type! { Uint16Array => Uint16Array Uint32Array => Uint32Array Uint8ClampedArray => Uint8ClampedArray - Float32Array => Float32Array Float64Array => Float64Array ArrayBufferView => ArrayBufferView BufferSource => BufferSource @@ -396,7 +410,7 @@ impl<'a> IdlType<'a> { IdlType::Uint16Array => dst.push_str("u16_array"), IdlType::Int32Array => dst.push_str("i32_array"), IdlType::Uint32Array => dst.push_str("u32_array"), - IdlType::Float32Array => dst.push_str("f32_array"), + IdlType::Float32Array { .. } => dst.push_str("f32_array"), IdlType::Float64Array => dst.push_str("f64_array"), IdlType::ArrayBufferView => dst.push_str("array_buffer_view"), IdlType::BufferSource => dst.push_str("buffer_source"), @@ -501,16 +515,16 @@ impl<'a> IdlType<'a> { IdlType::ArrayBuffer => js_sys("ArrayBuffer"), IdlType::DataView => None, - IdlType::Int8Array => Some(array("i8", pos)), - IdlType::Uint8Array => Some(array("u8", pos)), - IdlType::Uint8ArrayMut => Some(array("u8", pos)), - IdlType::Uint8ClampedArray => Some(clamped(array("u8", pos))), - IdlType::Int16Array => Some(array("i16", pos)), - IdlType::Uint16Array => Some(array("u16", pos)), - IdlType::Int32Array => Some(array("i32", pos)), - IdlType::Uint32Array => Some(array("u32", pos)), - IdlType::Float32Array => Some(array("f32", pos)), - IdlType::Float64Array => Some(array("f64", pos)), + IdlType::Int8Array => Some(array("i8", pos, false)), + IdlType::Uint8Array => Some(array("u8", pos, false)), + IdlType::Uint8ArrayMut => Some(array("u8", pos, false)), + IdlType::Uint8ClampedArray => Some(clamped(array("u8", pos, false))), + IdlType::Int16Array => Some(array("i16", pos, false)), + IdlType::Uint16Array => Some(array("u16", pos, false)), + IdlType::Int32Array => Some(array("i32", pos, false)), + IdlType::Uint32Array => Some(array("u32", pos, false)), + IdlType::Float32Array {immutable} => Some(array("f32", pos, *immutable)), + IdlType::Float64Array => Some(array("f64", pos, false)), IdlType::ArrayBufferView | IdlType::BufferSource => js_sys("Object"), IdlType::Interface(name) diff --git a/crates/webidl/src/util.rs b/crates/webidl/src/util.rs index 629b94e8..56f8cf26 100644 --- a/crates/webidl/src/util.rs +++ b/crates/webidl/src/util.rs @@ -67,13 +67,13 @@ pub fn mdn_doc(class: &str, method: Option<&str>) -> String { format!("[MDN Documentation]({})", link).into() } -// Array type is borrowed for arguments (`&[T]`) and owned for return value (`Vec`). -pub(crate) fn array(base_ty: &str, pos: TypePosition) -> syn::Type { +// Array type is borrowed for arguments (`&mut [T]` or `&[T]`) and owned for return value (`Vec`). +pub(crate) fn array(base_ty: &str, pos: TypePosition, immutable: bool) -> syn::Type { match pos { TypePosition::Argument => { shared_ref( slice_ty(ident_ty(raw_ident(base_ty))), - /*mutable =*/ true, + /*mutable =*/ !immutable, ) } TypePosition::Return => vec_ty(ident_ty(raw_ident(base_ty))), @@ -721,9 +721,14 @@ pub fn public() -> syn::Visibility { /// maintained by hand. fn maybe_adjust<'a> (idl_type: IdlType<'a>, id: &'a OperationId) -> IdlType<'a> { match id { + // TODO: `match op` and return an adjusted idl_type if necessary OperationId::Operation(Some(op)) => { - // TODO: `match op` and return an adjusted idl_type if necessary - idl_type + match *op { +// "vertexAttrib1fv" => { +// IdlType::Float32Array { immutable: true} +// } + _ => idl_type + } } _ => idl_type }