diff options
author | Andreu Botella <abb@randomunok.com> | 2021-10-28 14:17:27 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-10-28 23:17:27 +0200 |
commit | 74a93fdf63a17de990954399b10eb6dfe7dd1973 (patch) | |
tree | a1b0d8c48d6ad375100dd0bd8723f8910af47165 /ext/webidl/00_webidl.js | |
parent | 507ab50e0f33f0b4264c68179055ad8a7dc60320 (diff) |
fix(webidl): Don't throw when converting a detached buffer source (#12585)
The Web IDL conversion to `BufferSource` and similar types shouldn't
check whether the buffer is detached.
In the case of `TextDecoder`, our implementation would still throw after
the Web IDL conversions because we're creating a new `Uint8Array` from
the buffer source's buffer, which throws if it's detached. This change
also fixes this bug.
Diffstat (limited to 'ext/webidl/00_webidl.js')
-rw-r--r-- | ext/webidl/00_webidl.js | 43 |
1 files changed, 0 insertions, 43 deletions
diff --git a/ext/webidl/00_webidl.js b/ext/webidl/00_webidl.js index fa9d14e65..4cbba195c 100644 --- a/ext/webidl/00_webidl.js +++ b/ext/webidl/00_webidl.js @@ -441,15 +441,6 @@ return V instanceof SharedArrayBuffer; } - function isArrayBufferDetached(V) { - try { - new Uint8Array(V); - return false; - } catch { - return true; - } - } - converters.ArrayBuffer = (V, opts = {}) => { if (!isNonSharedArrayBuffer(V)) { if (opts.allowShared && !isSharedArrayBuffer(V)) { @@ -461,9 +452,6 @@ } throw makeException(TypeError, "is not an ArrayBuffer", opts); } - if (isArrayBufferDetached(V)) { - throw makeException(TypeError, "is a detached ArrayBuffer", opts); - } return V; }; @@ -480,13 +468,6 @@ opts, ); } - if (isArrayBufferDetached(V.buffer)) { - throw makeException( - TypeError, - "is backed by a detached ArrayBuffer", - opts, - ); - } return V; }; @@ -529,13 +510,6 @@ opts, ); } - if (isArrayBufferDetached(V.buffer)) { - throw makeException( - TypeError, - "is a view on a detached ArrayBuffer", - opts, - ); - } return V; }; @@ -561,13 +535,6 @@ ); } - if (isArrayBufferDetached(V.buffer)) { - throw makeException( - TypeError, - "is a view on a detached ArrayBuffer", - opts, - ); - } return V; }; @@ -581,13 +548,6 @@ ); } - if (isArrayBufferDetached(V.buffer)) { - throw makeException( - TypeError, - "is a view on a detached ArrayBuffer", - opts, - ); - } return V; } @@ -609,9 +569,6 @@ opts, ); } - if (isArrayBufferDetached(V)) { - throw makeException(TypeError, "is a detached ArrayBuffer", opts); - } return V; }; |